常见汇编语言指令及解释#1常见汇编语言指令解释:
1.Rn表示R0~R7中的一个
2.#data表示8位的数值00H~FFH
3.direct表示8位的地址00H~FFH
4.#data1616位立即数
5.@Ri表示寄存器间接寻址只能是R0或者R1
6.@DPTR表示数据指针间接寻址,用于外部64k的RAM/ROM寻址
7.bit表示位地址
8.$表示当前地址
寄存器寻址MOV A,R1将R1中的数值赋予A
直接寻址MOV A,3AH将地址3AH中的数值赋予A
立即寻址MOV A,#3AH将3AH数值赋予A
mov dptr,#1828h
寄存器间址MOV A,@Ri将Ri中地址的数值赋予A,Ri或是R0或是R1
MOV A,@DPTR
变址寻址MOVC A,@A+DPTR以A中的数值为地址偏移量进行查表;变址寻址区是程序存储器ROM,而不是数据存储器RAM
相对寻址AJMP MAIN跳转到行号为MAIN处
位寻址MOV C,7FH将位地址7FH的数值赋予C
MOV C,2FH.7;
MOV C,ACC.7
MOV A,#3AH数据传输、赋值命令
PUSH direct将direct为地址的数值压入堆栈中
POP direct将direct为地址的数值弹出堆栈
XCH A,direct将direct中的数值与A进行交换
ADD A,direct将direct中的数值与A中的数值相加
INC direct将direct中的数值加1
SUBB A,direct将A中的数值减去direct中的数值和Cy值,并保存在A中,如果想使用不带Cy减法,可以在运算前对Cy清零CLR C
DEC direct将direct中的数值减1
DA A用于对BCD码加减法后进行10进制调整
MUL AB将A和B相乘,并把高八位放在B中,低八位放在A中
DIV AB将A和B相除,并把商的整数部分放在A中,余数放在B中
ANL A,direct将A与direct中的数值进行与运算,结果保留在A中(与运算规律:有0出0,全1出1)
ORL A,direct将A与direct中的数值进行或运算,结果保留在A中(或运算规律:有1出1,全0出0)
XRL A,direct将A与direct中的数值进行异或运算,结果保留在A中(异或运算规律:全0出0,全1出0,01、10出1)
CLR A对A清零
CPL A对A取反
RL A对A中数左移RR A对A中数右移
RLC A对A中数带Cy左移
RRC A对A中数带Cy右移
SWAP A对A中的数高4位低4位互相交换
LJMP长跳转指令,64K地址范围
AJMP短跳转指令,2K地址范围
JZ rel如果A为0就跳转到rel行号处
JNZ rel如果A不为0就跳转到rel行号处
CJNE A,#data,rel如果A不等于data就跳转到rel行号处
DJNZ R1,rel如果R1减1后不为0就跳转到rel行号处ACALL rel调用rel子程序,2K地址以内
LCALL rel调用rel子程序,64K地址以内
RET子程序返回指令
RETI中断程序返回指令
NOP空操作指令
MOV C,bit将位地址bit中的值赋予C
CLR bit将bit位地址清0
SETB bit将bit位地址置1
CPL bit将bit位地址取反
ANL C,bit将地址bit中的值和C做与运算,结果存放在C中
ORL C,bit将地址bit中的值和C做或运算,结果存放在C中
JC rel如果Cy为1,就跳转到rel行号处
JNC rel如果Cy为0,就跳转到rel行号处
JB bit,rel;若BIT=1则转移
JNB bit,rel;若BIT=0则转移
JBC bit,reL;若BIT=1则转移,且BIT置1
1加法指令:
ADD A,Rn;ADD A,direct;ADD A,@Ri;ADD A,#DATA
2带CY的加法指令:
ADDC A,Rn;ADDC A,direct;ADDC A,@Ri;ADDC A,#DATA
汇编语言结束指令3加一指令:
INC A;INC Rn;INC direct;INC@Ri;INC DPTR
4减法指令:
SUBB A,Rn;SUBB A,direct;SUBB A,@Ri;SUBB A,#data
5减一指令:DEC A;DEC Rn;DEC direct;DEC@Ri
6十进制调整指令:DA A
7乘法和除法指令:MUL AB;乘积高八位放在B中,低八位放在A中
DIV AB;商的整数放在A中,余数放在B中
8逻辑异或:XRL A,Rn
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论