![]() |
Khai báo biến với res và equ
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 |
Trích:
Code:
udata 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, |
Theo mình hiểu thì khai báo kiểu res như vd trên thì delay có địa chỉ là 0x20, tiếp theo i có địa chỉ là 0x21 ... Nhưng ko hiểu tại sao như vậy lại sai :D
Mình biên dịch 1 project có link. Khi biên dịch thì nó ko báo error nhưng hình như build ko đc là do link j đó "Error - section '.org_2' can not fit the absolute section. Section '.org_2' start=0x00000018, length=0x00000256 Errors : 1 Link step failed." Đây là lỗi khi mà mình khai bảo mảng "buffer res 8" Mong bạn hướng dẫn Thanks nhìu |
Trích:
Thân, |
Múi giờ GMT. Hiện tại là 10:14 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam