MCS51单片机指令系统复习
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SUBB SUBB SUBB SUBB
A, Rn ;A ←(A)-(Rn)-(CY) A, data ;A ←(A)-(data)-(CY) A, @Ri ;A ←(A)-((Ri))-(CY) A, #data ;A ←(A)-data-(CY)
这些指令的功能均是从累加器A中减去不同寻址方式得到 的操作数及进位位CY,差送入A中。
1、整字节交换指令:
XCH A, Rn
; (A) ← (Rn)
XCH A, data ; (A) ← (data)
XCH A, @Ri ; (A) ← ((Ri))
A
内Fra Baidu bibliotekRAM单元
2、半字节交换指令 XCHD A, @Ri ; (A) 3~0 ← →((Ri))3~0
执行指令前 A A7 A6 A5 A4 A3 A2 A1 A0 (Ri) D7 D6 D5 D4 D3 D2 D1 D0
➢ 3.内部RAM单元之间的数据传送指令:( 5条)
MOV data,data ; (data目) ← (data源 ) MOV data,@Ri ; (data)←((Ri)) MOV data,Rn ; (data) ←(Rn) MOV Rn,data ; (Rn) ←(data) MOV @Ri,data ; ((Ri))←(data)
三、程序存储器数据传送指令
(ROM数据传送指令)2条
指令格式: MOVC A, MOVC A,
@A+DPTR ;A ←((A)+(DPTR)) @A+PC ;A ←((A)+(PC))
四、数据交换指令
字节交换指令指内部RAM中的某个单元和累加器A之间进行 数据交换,可以是整个字节,也可以是半个字节。包含3种交换 方式:
➢ 2.通过累加器A的数据传送指令:( 6条)
MOV A,data ; A ← (data) MOV data, A ; (data) ← A
MOV A,@Ri ; A←((Ri))
MOV @Ri,A ; ((Ri)) ← A
MOV A,Rn ; A← (Rn)
MOV Rn, A ; (Rn) ← A
算术运算类指令
常用助记符: ADD 加法 ADDC 带进位加法 SUBB 带借位减法 MUL 乘法 DIV 除法 INC 加1/增量 DEC 减1/减量 DA 十进制调整
一、不带进位的加法指令
ADD A,Rn ;A ←(A)+(Rn) ADD A, data ;A ←(A)+(data) ADD A, @Ri ;A ←(A)+((Ri)) ADD A, #data ;A ←(A)+data
一、内部RAM数据传送指令组
➢ 1.立即数传送指令 ( 4条+1条) MOV A,#data ; (A )← data MOV data , #data ; (data) ← data MOV @Ri, #data ; ((Ri)) ←data MOV Rn,#data; (Rn) ←data MOV DPTR,#data16; (DPTR) ←data
二、外部RAM数据传递指令 (4条)
使用DPTR和Ri进行间接寻址 MOVX A, @DPTR ;A ←((DPTR))片外 MOVX @DPTR,A ;((DPTR))片外←(A) 注意: 该指令用于在单片机和外部RAM、扩展I/O的数据 传送; 使用Ri时,只能访问低8位地址为00H~FFH地址段; 使用DPTR时,能访问0000H ~ FFFFH地址段。
二、带进位的加法运算
ADDC ADDC ADDC ADDC
A,Rn ; A←(A)+(Rn)+(CY) A, data ; A ←(A)+(data)+(CY) A, @Ri ; A ←(A)+((Ri))+(CY) A, #data ;A ←(A)+data+(CY)
三、减法指令
该类指令特点:进位标志位参加运算
减法指令只有带借位的指令,而没有不带借位的指令。
减法指令对PSW的影响与加法指令相同,只要把加法中的 进位改为借位即可。
四、乘法运算
MUL AB 指令含义:将(A) ×(B),乘积的低位字节放 在A中,高位字节放在寄存器B中。 对PSW状态位的影响: Cy位被清0 乘积大于FFH时,OV位为1。
3.2 MCS-51单片机指令系统
MCS-51单片机指令系统包括111条指令 按功能可以划分为以下5类:
1. 数据传送和交换指令(28条) 2. 算术运算指令(24条) 3. 逻辑运算指令(25条) 4. 控制转移指令(17条) 5. 位操作指令(17条)
3.2.1 数据传送和交换类指令
常用助记符: MOV 单片机内部RAM中的数据传递 MOVX 累加器和单片机外部数据存储器间数据传递 MOVC 累加器和程序存储器之间的数据传递 XCH 累加器和某个内部RAM单元进行数据交换 XCHD 累加器和某个内部RAM单元进行低半字节数据交换 PUSH 将某个内部RAM单元的数据压入堆栈 POP 将堆栈内的数据弹出
注意:先入后出原则 程序举例:
MOV SP , #30H PUSH SBUF; SP ← (SP)+1, 31H←(SBUF) PUSH 60H ; SP ← (SP)+1, 32H←(60H) …… POP 60H ; 60H ←( 32H), SP ← (SP)-1 POP SBUF;SBUF ←(31H), SP ←(SP)-1
3-2-2 算术运算指令
算术运算指令有加法、减法、乘法和除法四类,除加1和 减1指令,其他所有的指令都将影响PSW的标志位。
程序状态字PSW
D7 D6 D5 D4 D3 D2 D1 D0
CY AC F0 RS1 RS0 OV
P
进位 辅助 自定 通用寄存器 溢出 借位 进位 标志 选择位 标志
奇偶 校验
指令执行后 A A7 A6 A5 A4 D3 D2 D1 D0
(Ri) D7 D6 D5 D4 A3 A2 A1 A0
五、堆栈操作指令
堆栈操作指令包含入栈(PUSH)和出栈(POP)。在使用堆栈 之前要首先给堆栈指针SP赋值。
指令格式:PUSH data ; SP ← (SP)+1, ((SP))←(data) POP data ; (data)← ((SP)) ,SP ← (SP)-1