单片机里EQU是什么指令?作用?

2025-01-06 05:31:53
推荐回答(5个)
回答1:

单机片中EQU指令是伪指令,作用是用赋值伪操作给重复出现的数值或寄存器赋予一个名字,即把一个符号名称与一个整数表达式或一个任意文本连接起来,方便操作。

在单片机中用EQU指令来赋值以后数据或者寄存器的字符名,可以用来代表数据地址、代码地址、或者用来当做立即数进行使用。  

扩展资料:

在同一源代码文件中,用EQU定义的符号不能被重新定义,这与=伪指令不同,这个限制可以防止现有符号在无意中被赋予新值。其中,EQU有3种格式,分别是:

1、name EQU expression。这种格式中,EQU中的expression必须是一个有效整数表达式。

2、name EQU symbol。这种格式中,EQU中symbol是一个已存在的符号名称,已经用=或EQU定义过了。

3、name EQU 。这种格式中,EQU中任何文本都可以岀现在<…>内。当汇编器在程序后面遇到 name 时,它就用整数值或文本来代替符号。

参考资料来源:百度百科-equ

参考资料来源:百度百科-伪指令

回答2:

单机片中EQU指令是伪指令,作用是用赋值伪操作给重复出现的数值或寄存器赋予一个名字,即把一个符号名称与一个整数表达式或一个任意文本连接起来,方便操作。

在单片机中用EQU指令来赋值以后数据或者寄存器的字符名,可以用来代表数据地址、代码地址、或者用来当做立即数进行使用。

扩展资料:

EQU 指令格式: 符号名 EQU 表达式

符号名:EQU 寄存器名

表达式必须是一个简单再定位表达式。

用 EQU 指令赋值以后的字符名,可以用作数据地址、代码地址、位地址或者直接当做一个立即数使用。

比如:

s equ bx+si

mov cx,[s]

那么上面两句代码相当于如下指令:

mov cx,[bx+si]

参考资料来源:百度百科-伪指令

回答3:

我来回答吧。
EQU其实就是为了书写的方便,用EQU左边的来等价右边的,不参与编译的。
比如PPP EQU 20H,在编译之前,会将你程序里出现的所有的PPP,都用20H替换。

你程序里用到的P1和P0是系统已经定义的P口,这样你程序里出现P0、P1系统就不知道是8200H还是真正的P口了,所以这样的定义是不符合要求的,改个名字就可以了。

第三个问题:138的G1是接高电平的,G2A、G2B是接低电平的,这样138才会有输出。
输出的就是CBA对应的译码值,比如CBA是001,那么Y1输出低电平,其他都为高。

回答4:

EQU 的意思就是 给地址定义一个标识。相当于别称。 比如:P1 EQU 8200H 的意思就是 P1相当于8200H单元 很久没碰汇编,不知道说的对不对

回答5:

EQU 是一条伪指令,是在你程序被编译时,就将P0指向8300H。P1同理。

但是P0/P1这在头文件里(regXX.h)已经定义过了,指向了SFR中的P0和P1口。

所以你这里定义,要将P0,P1改成别的头文件里没有的,当然程序的P0和P1,也要相应的改动。

根据74LS138的规格书(网上搜“74ls138 pdf”),可以知道G1接高电平;G2A、G2B接低电平有效。