P1 EQU 8200H
P0 EQU 8300H
org 0000H
SJMP STAR
ORG 0040H
。。。。。
。。。。
。。。这个是我用74LS138与AT89S52连接,把138当作数据分配器来使用。把整个P1、P0共16个地址全部定义到138的分配的空间上。
然后编译后
P1 EQU 8200H
P0 EQU 8300H 这两句显示的错误是:
error A10:ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL.
error A10:ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL.
中文意思是:试图确定一个已经定义的符号。
请问这个要如何解决。
知道138译码器当作数据分配使用时,三个选通端G1、G2A、G2B怎么接的也可以回答。非常感谢啦。。谢谢啦。谢谢啦。非常感谢。
单机片中EQU指令是伪指令,作用是用赋值伪操作给重复出现的数值或寄存器赋予一个名字,即把一个符号名称与一个整数表达式或一个任意文本连接起来,方便操作。
在单片机中用EQU指令来赋值以后数据或者寄存器的字符名,可以用来代表数据地址、代码地址、或者用来当做立即数进行使用。
扩展资料:
在同一源代码文件中,用EQU定义的符号不能被重新定义,这与=伪指令不同,这个限制可以防止现有符号在无意中被赋予新值。其中,EQU有3种格式,分别是:
1、name EQU expression。这种格式中,EQU中的expression必须是一个有效整数表达式。
2、name EQU symbol。这种格式中,EQU中symbol是一个已存在的符号名称,已经用=或EQU定义过了。
3、name EQU <text>。这种格式中,EQU中任何文本都可以岀现在<…>内。当汇编器在程序后面遇到 name 时,它就用整数值或文本来代替符号。
参考资料来源:百度百科-equ
参考资料来源:百度百科-伪指令
单机片中EQU指令是伪指令,作用是用赋值伪操作给重复出现的数值或寄存器赋予一个名字,即把一个符号名称与一个整数表达式或一个任意文本连接起来,方便操作。
在单片机中用EQU指令来赋值以后数据或者寄存器的字符名,可以用来代表数据地址、代码地址、或者用来当做立即数进行使用。
扩展资料:
EQU 指令格式: 符号名 EQU 表达式
符号名:EQU 寄存器名
表达式必须是一个简单再定位表达式。
用 EQU 指令赋值以后的字符名,可以用作数据地址、代码地址、位地址或者直接当做一个立即数使用。
比如:
s equ bx+si
mov cx,[s]
那么上面两句代码相当于如下指令:
mov cx,[bx+si]
参考资料来源:百度百科-伪指令
本回答被网友采纳