Trích:
Nguyên văn bởi hahahaa3pro
Cho mình hỏi chỗ khai báo biến trong ASM. Chương trình mình viết sử dụng ngắt timer. Khi nào có ngắt thì tăng PORTB lên 1
Sau đây là 2 cách khai báo biến
;(1)
org 0x20
delay res 1
i res 1
********************
;(2)
delay equ 20h
i equ 21h
********************
; trong ham ngat
incf i
movff i, PORTB
*******************
Khi mình khai báo biến theo cách 1 thì PORTB ko tăng
Khi khai báo biến theo cách 2 thì chương trình chạy đúng ( PORTB tăng)
Mình thắc mắc ko thể hiểu được là tại sao khai báo biến theo cách 1 thì chương trình lại chạy sai?
Thêm mỗi chỗ nữa là khi mình khai báo mảng " buffer res 8" thì lại ko build được.
Hiện mình đang dùng MPLAB IDE 8v36
Ai bít thì chỉ giúp mình nhe 
Thanks các bạn nhìu
|
Với cách 1, viết đúng quy tắc phải là như sau:
Code:
udata
delay res 1
i res 1
Bạn hãy đọc tài liệu hướng dẫn của MPASM, phần dành cho hai directive equ và res để hiểu rõ sự khác biệt.
Bạn chưa cho biết bạn đang biên dịch chỉ một tập tin .asm hay là biên dịch một project có liên kết (linked).
Thân,