MCS-51的指令系统
- 格式:doc
- 大小:33.50 KB
- 文档页数:3
第3章MCS-51单片机指令系统3.1概述3.1.1指令格式3.1.2指令的三种表示形式3.1.3指令的字节数1. 单字节指令(49条)图3-1 MOVA,Rn指令的格式2单片机原理及其接口技术(第2版)2. 双字节指令(46条)3. 三字节指令(16条)3.1.4指令的分类1. 数据传送指令(28条)2. 算术运算指令(24条)3. 逻辑操作和环移指令(25条)4. 控制转移指令(17条)5. 位操作指令(17条)3.1.5指令系统综述1. 指令系统中所用符号的说明2. 指令对标志位的影响3.2寻址方式3.2.1寄存器寻址图3-2寄存器寻址示意图单片机原理及其接口技术(第2版) 3 3.2.2直接寻址图3-3直接寻址示意图3.2.3立即寻址3.2.4寄存器间址图3-4寄存器间址寻址示意图3.2.5变址寻址图3-5变址寻址示意图4单片机原理及其接口技术(第2版)3.2.6相对寻址图3-6相对寻址示意图3.2.7位寻址3.3数据传送指令3.3.1内部数据传送指令(15条)1. 立即寻址型传送指令2. 直接寻址型传送指令3. 寄存器寻址型传送指令4. 寄存器间址型传送指令5. 内部数据传送指令的使用图3-7 8×C552/8051指令的数据传送方式单片机原理及其接口技术(第2版) 5 3.3.2外部数据传送指令(7条)1. 16位数传送指令2. 外部ROM的字节传送指令图3-8 0~9平方值表3. 外部RAM的字节传送指令3.3.3堆栈操作指令(2条)图3-9例3.8的堆栈变化示意图6单片机原理及其接口技术(第2版)3.3.4数据交换指令(4条)3.4算术与逻辑运算和移位指令3.4.1算术运算指令(24条)1. 加法指令2. 减法指令3. 十进制调整指令4. 乘法和除法指令3.4.2逻辑运算指令(20条)1. 逻辑与运算指令2. 逻辑或指令3. 逻辑异或指令4. 累加器清零和取反指令3.4.3移位指令(5条)单片机原理及其接口技术(第2版)7图3-10例3.26附图3.5控制转移和位操作指令3.5.1控制转移指令(17条)1. 无条件转移指令图3-11 AJMP指令转移范围8单片机原理及其接口技术(第2版)图3-12例3.29附图图3-13带符号数的比较方法3. 子程序调用和返回指令图3-14二级子程序嵌套及断点地址存放单片机原理及其接口技术(第2版)9图3-15例3.33附图10单片机原理及其接口技术(第2版)4. 空操作指令3.5.2位操作指令(17条)1. 位传送指令2. 位置位和位清零指令3. 位运算指令4. 位控制转移指令习题与思考题3.1指令通常有哪三种表示形式?各有什么特点?3. 2 MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?3. 3 MCS-51共有哪七种寻址方式?各有什么特点?3. 4指出下列每条指令源操作数的寻址方式和功能。
MCS-51指令系统概述1. 引言MCS-51指令系统是一种被广泛使用的8位微控制器指令集架构。
它是Intel公司于1980年代开发的,旨在满足各种嵌入式系统的需求。
MCS-51指令系统提供了丰富的指令集,包括数据操作、控制流程和I/O操作等指令,可用于开发各种应用。
2. 指令格式MCS-51指令系统的指令由不同长度的操作码组成,通常包括一个或多个操作数。
以下是MCS-51指令系统的指令格式:[操作码] [操作数1] [操作数2]其中,操作码表示要执行的操作,操作数用于指定相关数据或地址。
3. 数据操作指令MCS-51指令系统提供了丰富的数据操作指令,方便对数据进行加载、存储和处理。
以下是一些常用的数据操作指令:•MOV:将一个操作数的值复制到另一个操作数。
•ADD:将两个操作数相加,并将结果存储在目标操作数中。
•SUB:将第二个操作数从第一个操作数中减去,并将结果存储在目标操作数中。
•INC:将操作数的值加1。
•DEC:将操作数的值减1。
4. 控制流程指令MCS-51指令系统提供了各种控制流程指令,用于实现条件和无条件的控制流程。
以下是一些常用的控制流程指令:•JMP:无条件跳转到指定的地址。
•JZ:如果零标志位被设置,那么跳转到指定的地址。
•JC:如果进位标志位被设置,那么跳转到指定的地址。
•CALL:调用一个子程序,并将返回地址存储在堆栈中。
5. I/O操作指令MCS-51指令系统提供了丰富的I/O操作指令,用于控制外设设备的输入和输出。
以下是一些常用的I/O操作指令:•MOV:将一个操作数的值复制到特殊功能存放器或外设设备存放器。
•IN:将外设设备的数据读取到存放器中。
•OUT:将存放器的值输出到外设设备。
6. 中断处理MCS-51指令系统支持中断处理,用于实现实时响应和异步事件的处理。
中断处理机制允许在程序的任意位置响应外部或内部的中断请求。
通过使用中断向量表和相关中断效劳程序,可以在发生中断时自动跳转到指定的中断处理程序。
MCS-51指令系统MCS-51单片机指令系统共有指令111条,分为五大类:一、数据传送类指令(29条)1.内部RAM数据传送指令组①立即数传送指令(共有8位立即数传送指令四条,16位立即数传送指令一条。
)MOV A , #data;A ← dataMOV direct , #data ;direct ← dataMOV Rn , #data;Rn ← dataMOV @ Ri , #data;(Ri) ← dataMOV DPTR , #data16;DPTR ← data16②内部RAM单元之间的数据传送(共有五条)MOV direct2 , direct1;direct2 ← (direct1)MOV direct , Rn;direct ← (Rn)MOV Rn , direct;Rn ← (direct)MOV direct ,@ Ri;direct ← ((Ri))MOV @ Ri , direct;(Ri) ← (direct)③累加器的数据传送指令(共有六条)MOV A , Rn ;A ← (Rn)MOV Rn , A;Rn ← (A)MOV A , direct;A ← (direct)MOV direct , A;direct ← (A)MOV A , @ Ri ;A ← ((Ri))MOV @ Ri , A;(Ri) ← (A)2.外部RAM数据传送指令组①使用Ri的间接寻址传送指令(由于Ri是8位地址指针,因此这两条指令和寻址范围只限于外部RAM的250个单元。
)MOVX A , @ Ri;A ← ((Ri))MOVX @ Ri , A;(Ri) ← (A)②使用DPTR的间接寻址传送指令(由于DPTR是16位地址指针,因此这两条指令的寻址范围为64K单元,要和P2配合寻址外部RAM空间。
)MOVX A , @ DPTR ;A ← ((DPTR))MOVX @ DPTR , AP;(DPTR) ← (A)对外部RAM的数据传送作如下几点说明:⑴MCS-51指令系统中没有其它专用的存储器读写指令,这里所讲的外部RAM数据传送指令实际上就是单片机外部数据存储器的读写指令。
1.判断以下指令的正误:
(1)MOV 28H,@R2 (2)DEC DPTR (3)INC DPTR (4)CLR R0
(5)CPL R5 (6)MOV R0,R1 (7)PHSH DPTR (8)MOV F0,C (9)MOV F0,Acc.3 (10)MOVX A,@R1 (11)MOV C,30H (12)RLC R0
2.判断下列说法是否正确。
(A)立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。
(B)指令周期是执行一条指令的时间。
(C)指令中直接给出的操作数称为直接寻址。
3.在基址加变址寻址方式中,以()作变址寄存器,以()或()作基址寄存器。
4.MCS-51共有哪几种寻址方式?各有什么特点?
5.MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?6.访问SFR,可使用哪些寻址方式?
7.指令格式是由()和()所组成,也可能仅由()组成。
8. 假定累加器A中的内容为30H,执行指令:
1000H:MOVC A,@A+PC
后,把程序存储器()单元的内容送入累加器A 中。
9.在MCS-51中,PC和DPTR都用于提供地址,但PC是为访问()存储器提供地址,而DPTR是为访问()存储器提供地址。
10.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的()。
11.下列程序段的功能是什么?
PUSH Acc
PUSH B
POP Acc
POP B
12. 已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)
=FFH。
下述程序执行后:
POP DPH
POP DPL
MOV DPTR,#4000H
RL A
MOV B,A
MOVC A,@A+DPTR
PUSH Acc
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH Acc
RET
ORG 4000H
DB 10H,80H,30H,50H,30H,50H
请问:A=(),SP=(),(51H)=(),(52H)=(),PC=()。
13.写出完成如下要求的指令,但是不能改变未涉及位的内容。
(A)把A CC.3,A CC.4,A CC.5和A CC.6清“0”。
(B)把累加器A的中间4位清“0”。
(C)使A CC.2和A CC.3置“1”。
14.假定A=83H,(R0)=17H,(17H)=34H,执行以下指令:
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A
后,A的内容为()。
15.假设A=55H,R3=0AAH,在执行指令ANL A,R5后,A=(),R3=()。
16.如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:
POP DPH
POP DPL
POP SP
则:DPH=(),DPL=(),SP=()17.假定,SP=60H,A=30H,B=70H,执行下列指令:
PUSH Acc
PUSH B
后,SP的内容为(),61H单元的内容为(),62H单元的内容为()。