BeHappy 发表于 2025-11-22 23:24:50

8051U在汇编编程时,如何正确使用EBIT

问题描述:

我们知道,8051U的各个端口寄存器都是可位寻址的,对不?
现,假设想给P3.2起另外一个符号名,便于在多个文件之间引用它。定义如下:
?EB?VARSEBITS    SEGMENT   EBIT
    RSEG    ?EB?VARSEBITS
DEEP   BIT   P1.2build时,以上语法遇到错误:
error A21: EXPRESSION WITH FORWARD REFERENCE NOT PERMITTED
经查,可以在EBIT段定义可位寻址的寄存器bit位:

[*]SFR bits which are in the bit-addressable space. For example, P3.3, or PSW.7.
如果定义的时候,直接指定bit位的寄存器地址,又会报告定义了一个空的EBIT段。不知道如何是好了 :-(
问题:
为什么我在EBIT段,给P1.2重新分配一个符号名,会遇到以上错误?
谢谢先 :-)

BeHappy 发表于 2025-11-23 11:05:55

有熟悉汇编的大佬,帮忙分析一下原因喽,感谢先。

ercircle 发表于 2025-11-24 21:45:41

这个感觉就像C语言里的宏定义和变量定义:宏定义只是替换,变量定义要分配空间。



报错是因为要变量定义:






BeHappy 发表于 2025-11-25 12:15:17

ercircle 发表于 2025-11-24 21:45
这个感觉就像C语言里的宏定义和变量定义:宏定义只是替换,变量定义要分配空间。




非常感谢,respect送上 :-)

Ayb_ice 发表于 2025-11-25 13:59:27

P1DATA080H
P10EQU    P1.0
页: [1]
查看完整版本: 8051U在汇编编程时,如何正确使用EBIT