MOTOR_BUFF EQU 2FH ;电机/继电器/喇叭缓存 ,可寻址位定义
RELAY EQU 2FH.4 ;继电器
MOTOR EQU 2FH.5 ;直流电机
SPEAKER EQU 2FH.6 ;喇叭
wufei608说的有些不准确。
EQU的作用相当于C的#define,即要求编译器在编译时把下面出现的MOTOR_BUFF、RELAY 、MOTOR 、SPEAKER 这四个助记符自动替换成2FH、2FH.4、2FH.5、2FH.6来编译,并非赋值给变量。因为给变量赋值的实质是把值存放在内存的特定地址,但是像这段汇编代码里给出的,只是给那几个值命了名,然后直接用这几个“名字”来代替这几个值然后直接使用,没有存到内存里。追问
EQU的作用相当于C的#define,即要求编译器在编译时把下面出现的MOTOR_BUFF、RELAY 、MOTOR 、SPEAKER 这四个助记符自动替换成2FH、2FH.4、2FH.5、2FH.6来编译,并非赋值给变量。因为给变量赋值的实质是把值存放在内存的特定地址,但是像这段汇编代码里给出的,只是给那几个值命了名,然后直接用这几个“名字”来代替这几个值然后直接使用,没有存到内存里。追问
如果我用#define MOTOR_BUFF 2FH定义,我接下来定义RELAY、MOTOR、SPEAKER时是用sbit 吗?比如sbit RELAY = MOTOR_BUFF^4
追答Cx51的话是可以的。另外还有一种方法是用位域。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-03-29
EQU是赋值运算符,
RELAY EQU 2FH.4
相当于 RELAY=2FH.4
RELAY EQU 2FH.4
相当于 RELAY=2FH.4