Tôi thấy hai bạn trao đổi từ luồng "kỹ thuật bảng pic" sang luồng này mà cảm thấy buồn vì các bạn đọc đi đọc lại mà vẫn không hiểu tài liệu viết cái gì. Tôi lược dịch hai phần liên quan trong tài liệu "MPASM Assembler; MPLINK Object Linker; MPLIB Object Librarian User's Guide" (DS33014J) để hai bạn đọc thêm:
Trích:
equ - DEFINE AN ASSEMBLER CONSTANT
Cú pháp: label equ expr
Mô tả: giá trị của expr được gán cho label.
Cách dùng: Trong một tập tin chương trình hợp ngữ, equ thường được dùng để gán một địa chỉ trong RAM cho một tên biến. Đừng dùng phương pháp này để gán các biến khi xây dựng một project có liên kết; hãy dùng res trong một section dữ liệu (idata, udata).
set - DEFINE AN ASSEMBLER VARIABLE
Cú pháp: label set expr
Mô tả: label được gán giá trị của biểu thức MPASM hợp lệ biểu diễn bởi expr. Dẫn hướng set về chức năng tương đương với dẫn hướng equ, ngoại trừ rằng các giá trị được thiết lập có thể được thay đổi bởi các dẫn hướng set khác.
Cách dùng: Vì các giá trị thiết lập bởi set có thể được thay đổi bởi các dẫn hướng set sau đó, set đặc biệt hữu dụng khi định nghĩa một biến trong một vòng lặp (chẳng hạn, một vòng lặp while).
|
Các bạn chú ý rằng hằng hay biến được đề cập ở đây là đối với trình hợp dịch, chứ không phải đối với PIC. Do đó, label đã được gán giá trị bởi EQU sẽ không được trình hợp dịch chấp nhận bị thay đổi sau đó, còn label đã được gán giá trị bởi SET sẽ được trình hợp dịch cho phép bị thay đổi giá trị sau đó bởi một dẫn hướng SET khác. Hy vọng mọi việc đã rõ.
Thân,