(完整版)51单片机汇编指令(全)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指令中常用符号说明
Rn当前寄存器区的8个工作寄存器R0~R7(n=0~7)
Ri当前寄存器区可作为地址寄存器的2个工作寄存器R0和R1(i=0,1)
Direct8位内部数据寄存器单元的地址及特殊功能寄存器的地址
#data表示8位常数(立即数)
#data16表示16位常数
Add16表示16位地址
Addr11表示11位地址
Rel8位代符号的地址偏移量
Bit表示位地址
@间接寻址寄存器或基址寄存器的前缀
( )表示括号中单元的内容
(( ))表示间接寻址的内容
指令系统
数据传送指令(8个助记符)
助记符中英文注释
MOV Move 移动
MOV A , Rn;Rn→A,寄存器Rn的内容送到累加器A
MOV A , Direct;(direct)→A,直接地址的内容送A
MOV A ,@ Ri;(Ri)→A,RI间址的内容送A
MOV A , #data;data→A,立即数送A
MOV Rn , A;A→Rn,累加器A的内容送寄存器Rn
MOV Rn ,direct;(direct)→Rn,直接地址中的内容送Rn
MOV Rn , #data;data→Rn,立即数送Rn
MOV direct , A;A→(direct),累加器A中的内容送直接地址中
MOV direct , Rn;(Rn)→direct,寄存器的内容送到直接地址
MOV direct , direct;(direct)→direct,直接地址的内容送到直接地址
MOV direct , @Ri;((Ri))→direct,间址的内容送到直接地址
MOV direct , #data;8位立即数送到直接地址中
MOV @Ri , A;(A)→@Ri,累加器的内容送到间址中
MOV @Ri , direct;direct→@Ri,直接地址中的内容送到间址中
MOV @Ri , #data; data→@Ri ,8位立即数送到间址中
MOV DPTR , #data16;data16→DPTR,16位常数送入数据指针寄存器,高8位送入DPH,低8位送入DPL中(单片机中唯一一条16位数据传送指令)
(MOV类指令共16条)
MOVC Move Cod 查表指令
MOVC A , @A+PC;PC+1→PC,(A+PC)→A
MOVC A , @A+DPTR;(A+DPTR) →A
(MOVC类指令共两条)
MOVX Move External 与外部数据寄存区传送数据
MOVX A , @DPTR;(DPTR)→A,DPTR间址单元内容送A
MOVX @DPTR , A;A→(DPTR),A中内容送入DPTR间址单元
MOVX A , @Ri;(Ri)→A,Ri间址单元内容送A
MOVX @Ri , A;A→(Ri),A中内容送Ri间址单元
(MOVX类指令4条)
XCH Exchange 交换指令
XCH A , Rn;Rn←→A , Rn的内容与A的内容交换
XCH A , Direct; Direct ←→A ,直接地址的内容与A的内容交换
XCH A , @Ri;(Ri)←→A ,间址的内容与A的内容交换
XCHD Exchange Decimal十进制交换
XCHD A , @Ri;(Ri.3~Ri.0) ←→A.3~A.0,间址内容低四位与A中内容低四位交换
SWAP Swap 交换
SWAP A;A.3~A.0←→ A.7~A.4 , A中低四位与高四位内容交换
PUSH Push 入栈
PUSH direct;SP+1→SP , (direct)→(SP)
;直接地址内容压入堆栈顶
POP Pop 出栈
POP direct;(SP)→(direct) , SP-1→SP
;堆栈内容弹出到直接地址
●算术运算类指令(7个助记符)
ADD Add 加法运算
ADD A , Rn;A + Rn→A , A与Rn的内容相加,结果送到A中
ADD A , direct;(direct)+A→A,A与直接地址的内容相加,结果送到A中
ADD A , @Ri;((Ri))+A→A, A与间址中的内容相加,结果送到A中
ADD A , #data;data+A→A,A与立即数相加,和送入A
ADDC ADD with Carry 带进位加法
ADDC A , Rn;A + Rn+CY→A , A与Rn的内容、进位状态相加,结果送到A中ADDC A , direct;(direct)+A+CY→A,A与直接地址的内容、进位状态相加,结果送到A中ADDC A , @Ri;((Ri))+A+CY→A, A与间址中的内容、进位状态相加,结果送到A中ADDC A , #data;data+A+CY→A,A与立即数、进位状态相加,和送入A
SUBB Subbtract with Borrow 带进位减法
SUBB A , Rn;A-Rn-CY→A,A减寄存器Rn的内容及进位标志,结果送A
SUBB A , direct; A-(direct)-CY→A,A直接地址的内容及进位标志,结果送A
SUBB A , @Ri; A-((Ri))-CY→A,A间址的内容及进位标志,结果送A
SUBB A , #data; A-data-CY→A,A立即数及进位标志,结果送A
MUL Multiply 乘法指令
MUL AB;A x B→B和A,结果16位,高8位存入B,低8位存入A
;若结果大于FFH,则将溢出标志OV置1