汇编数据传送指令助记符
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Rn 8个工作寄存器R0-R7
Ri 4个工作寄存器区R0-R3 PSW.4 PSW.3 / RS1 RS0
Dircet 8位内部RAM单元地址
#data 8位常数
#data16 16位常数
addr16 16的目的地址;用LJMP\LCALL,指向64KB ROM空间地址
addr11 11的目的地址;用AJMP\ACALL,指向2KB ROM空间地址
Rel 8位带符号的偏移量;用SJMP和所有的条件转移指令指向-128到+127范围bit 位地址;内部RAM可直接寻址位
DPTR 数据指针;16位地址寄存器
rrr 3位二进制数:000-111
A 累加器
B 寄存器,可用于MUL/DIV指令中
C 进位位或者进位标志
@ 间接寄存器或者基址寄存器的前缀,@Ri,@DPTR
/ 位操作的前缀,把该位取反
(X) X中的内容
((X)) 由X寻址的单元中的内容
8位数据传送指令:
MOV A,Rn/direct/@Ri/#data 将Rn/direct/@Ri/#data的数据放到A中
MOV Rn,A/direct/#data
MOV direct1,A/Rn/direct2/@Ri/#data
MOV Ri,A/direct/#date
16位数据传送指令:
MOV DPTR,#date16 将16位立即数传送到16位的指令和数据
外部数据传送指令:
MOVX A,@Ri/@DPTR 将Ri、DPTR所指外部RAM单元的数据送与A MOVX @Ri,A
MOVX @DPTR,A
查表指令:
MOVC A,@A+DPTR
MOVC A,@A+PC
数据交换指令:
SWAP A A的低半字节与高半字节互换
XCHD A,@Ri Ri的低四位与A的低四位互换
XCH A,Rn/@Ri/direct Rn的内容与A的内容互换
ADD A,Rn/direct/@Ri/#date 将A与Rn/direct/@Ri/#date的内容相加,结果放入A中
ADDC A,Rn/direct/@Ri/#date 将A与Rn/direct/@Ri/#date的内容相加,再加上C,结果放入A中
INC A/Rn/direct/@Ri/DPTR 将A/Rn/direct/@Ri/DPTR单元的内容自动加1
DA A 将A中BCD码调整
SUBB A,Rn/direct/@Ri/#date 将A的内容减去Rn/direct/@Ri/#date的内容,再减去C的内容,结果放入A中
DEC A/Rn/direct/@Ri 将A/Rn/direct/@Ri单元的内容自动减1
MUL AB 将A和B的内容相乘,结果中高8位放在B中,低8位放在A中
DIV AB 将A和B的内容相除,结果余数放在B中,商放在A中
逻辑运算类指令:
CLR A 将ACC清零
SETB A 将ACC置1
CPL A 将ACC中的每一位进行取反
ANL A,Rn/direct/@Ri/#data 将Rn/direct/@Ri/#data单元的值与A逻辑与运算,结果放入A 中
ANL direct,A/#data 将A/#data与直接地址direct逻辑与运算,结果放在direct
ORL A,Rn/direct/@Ri/#data 将Rn/direct/@Ri/#data单元的值与A逻辑或运算,结果放入A 中
ORL direct,A/#data 将A/#data与直接地址direct逻辑或运算,结果放在direct
XRL A,Rn/direct/@Ri/#data 将Rn/direct/@Ri/#data单元的值与A逻辑异或运算,结果放入A 中
XRL direct,A/#data 将A/#data与直接地址direct逻辑异或运算,结果放在direct
循环/移位类指令:
RL A 将A的内容左循环一位
RLC A 将A的内容带进位左移一位
RR A 将A的内容右移一位
RRC A 将A的内容带进位右移一位
调用/返回类指令:
LCALL addr16 调用64KB范围内的子程序
ACALL addr11 调用2KB范围内的子程序
RET 子程序返回
RETI 中断返回
无条件转移类指令:
LJMP addr16 程序无条件转移到16位目标地址,转移的范围为64KB地址空间
AJMP addr11 程序无条件转移到11位目标地址,转移的范围为2KB地址空间
SJMP rel 程序无条件转移到标号REL处,转移的范围为-128——+127地址空间
JMP @A+DPTR 程序无条件转移到某个地址,该地址为@A+DPTR之和
JZ rel 通过判定A的内容是否为0,再确定是否转移。若A=0,则跳转,若为1,则顺序执行程序
JNZ rel 通过判定A的内容是否为0,再确定是否转移。若A=1,则跳转,若为0,则顺序执行程序
JC rel 如果C=1,则跳转;否则顺序执行
JNC rel 如果C=0,则跳转;否则顺序执行
JB bit,rel 如果bit=1,则跳转;否则顺序执行
JNB bit,rel 如果bit=0,则跳转;否则顺序执行
JBC bit,rel 如果bit=1,则跳转,同时将bit清零;否则顺序执行
CJNE A/Rn/@Ri,#data,rel 如果A/Rn/@Ri内容不等于#data立即数,跳转到rel;否则就顺序执行.如果第一个数大于第二个数,C=0;否则C=1
CJNE A,direct,rel 如果A内容不等于direct,跳转到rel;否则就顺序执行.如果第一个数大于第二个数,C=0;否则C=1
DJNZ Rn/direct,rel 先将Rn/direct减1,再判断Rn/direct是否为零,如果Rn/direct不为零,跳转到rel行;否则顺序执行。
堆栈操作类指令:
PUSH direct 将直接地址direct的内容压入到堆栈中,执行前SP+1
POP direct 从堆栈中弹出数据到直接地址direct中,执行后SP-1
空操作类指令:
NOP 啥都不做
位操作类指令:
MOV C,bit bit位的值传送至C
MOV bit,C C传送至bit位
CLR C/bit 清零
SETB C/bit 置1
CPL C/bit 位取反
ANL C,bit C与bit的值逻辑与,结果放在C中
ANL C,/bit C与bit位的反相值逻辑与,结果放在C中
ORL C,bit C与bit的值逻辑或,结果放在C中
ORL C,/bit C与bit位的反相值逻辑或,结果放在C中