MCS-51指令系统
- 格式:doc
- 大小:49.50 KB
- 文档页数:8
第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数据传送指令实际上就是单片机外部数据存储器的读写指令。
第三章 MCS-51指令系统一、单选题1.在相对寻址方式中,寻址的结果体现在(A)PC中(B)累加器A中(C)DPTR中(D)某个存储单元中2.在相对寻址方式中,“相对”两字是指相对于(A)地址偏移量rel (B)当前指令的首地址(C)当前指令的末地址(D)DPTR值3.在寄存器间接寻址方式中,指定寄存器中存放的是(A)操作数(B)操作数地址(C)转移地址(D)地址偏移量4.对程序存储器的读操作,只能使用(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令5.必须进行十进制调整的十进制运算(A)有加法和减法(B)有乘法和除法(C)只有加法(D)只有减法6.执行返回指令时,返回的断点是(A)调用指令的首地址(B)调用指令的末地址(C)调用指令下一条指令的首地址(D)返回指令的末地址7.下列指令中与进位标志位 CY 无关的指令有( A )移位指令( B )位操作指令( C )十进制调整指令( D )条件转移指令8.可以为访问程序存储器提供或构成地址的有( A )只有程序计数器 PC( B )只有 PC 和累加器 A ( C )只有 PC , A 和数据指针 DPTR( D ) PC , A , DPTR 和堆栈指针 SP9.以下各项中不能用来对内部数据存储器进行访问的是( A )数据指针 DPTR ( B )按存储单元地址或名称1( C )堆栈指针 SP ( D )由 R0 或 R1 作间址寄存器10.若原来工作寄存器0组为当前寄存器组,现要改1组为当前寄存器组,不能使用指令( A ) SETB PSW 。
3 ( B ) SETB DOH 。
3 ( C ) MOV PSW 。
3 , 1 ( D ) CPL PSW 。
3 11.不能为程序存储器提供或构成地址的有( A ) PC ( B ) A ( C ) DPTR ( D ) PSW12.执行以下程序段MOV SP , #3AHMOV A , #20HMOV B , #30HPUSH ACCPUSH BPOP ACCPOP B后, A 和 B 的内容为( A ) 20H , 30H ( B ) 30H , 20H( C ) 3AH , 30H ( D ) 3AH , 3AH13.假定( A ) =83H ,( R0 ) =17H ,( 17H ) =34H ,执行以下程序段ANL A , #17HORL 17H , AXRL A ,· R0CPL A后, A 的内容为( A ) CBH ( B ) 03H ( C ) EBH ( D ) C8H14.执行以下程序段MOV R0 , #dataMOV A ,· R0RL A2MOV R1 , ARL ARL AADD A , R1MOV · R0 , A后,实现的功能是( A )把立即数 data 循环左移 3 次( B )把立即数 data 乘以 10( C )把 data 单元的内容循环左移 3 次( D )把 data 单元的内容乘以 10 15. 以下的4条指令中,错误的指令是( A )INC A ( B )DEC A ( C )INC DPTR ( D )DEC DPTR 16. 指令MOV 30H,C 的寻址方式是( A )寄存器寻址( B )位寻址( C )直接寻址( D )间接寻址17. 指令MOV A,@A+DPTR的寻址方式是( A )寄存器寻址( B )立即寻址( C )直接寻址( D )变址寻址18. 指令JC 80H 的寻址方式是( A )相对寻址( B )立即寻址( C )直接寻址( D )变址寻址19. 指令MOV A,#50H 的寻址方式是( A )寄存器寻址( B )立即寻址( C )直接寻址( D )变址寻址20. 指令MOV A,R0 的寻址方式是( A )寄存器寻址( B )立即寻址( C )直接寻址( D )变址寻址21. 指令MOV A,@R0 的寻址方式是( A )寄存器寻址( B )立即寻址3( C )直接寻址( D )寄存器间接寻址22. 指令MOVX A,@DPTR 产生的信号是( A )ALE ( B )RD( C )WR( D )PSEN23. 指令MOV A,P1的寻址方式是( A )寄存器寻址( B )立即寻址( C )直接寻址( D )间接寻址24. 指令MOVX @DPTR,A 产生的信号是( A )ALE ( B )RD( C )WR( D )PSEN25. 以下的4条指令中,既完成判位转移又完成清位的指令是( A )JNC rel ( B )JB bit,rel( C )JBC bit,rel ( D )JNB bit,rel26. 以下的4条指令中,错误的指令是( A )ADD A,R0 ( B )ADDC A,R0( C )SUB A,R0 ( D )SUBB A,R027. 以下的4条指令中,错误的指令是。
( A )MUL A,B ( B )MUL AB( C )ADD A,B ( D )SUBB A,B28. 若(A)=C3H,(R0)=AAH,指令XRL A,R0执行后,A的内容是。
( A )52H ( B )69H ( C )EBH ( D )6CH29. 以下的4条指令中,“不带进位循环左移”指的是。
( A )RL A ( B )RLC A( C )RR A( D )RRC A 30. 指令DJNZ Rn,rel 指的是。
( A )比较不等转移( B )减1不为0转移( C )散转移( D )长跳转31. 以下的4条指令中,错误的指令是。
( A )XCH A,R0 ( B )XCH A ,@R0( C )XCHD A,R0 ( D )XCHD A,@R032. 若(CY)=1,P1.0为0,执行指令ANL C,P1.0后。
( A )P1.0为1 ( B )(CY)不变4( C )(CY)=1 ( D )(CY)=033. 以下的4条指令中,既有堆栈操作又影响中断触发器的指令是。
( A )ACALL ( B )LCALL( C )RET ( D )RETI二、填空题1.一台计算机的指令系统就是它所能执行的()集合。
2.以助记符形式表示的计算机指令就是它的()语言。
3.按长度分, MCS — 51 指令有()字节的,()字节的和()字节的。
4.在寄存器寻址方式中,指令中指定寄存器的内容就是()。
5.在寻址方式中,只能使用()位二进制数作为直接地址,因此其寻址对象只限于()。
6.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而操作数的()。
7.在变址寻址方式中,以()作变址寄存器,以()或()作基址寄存器。
8.在相对寻址方式中,寻址得到的结果是()。
9.长转移指令LJMP addr16 使用的是()寻址方式。
10.假定外部数据存储器 2000H 单元的内容为 80H ,执行下列指令后,累加器 A 中的内容为()。
MOV P2 , #20HMOV R0 , #00HMOVX A ,· R011.假定累加器 A 的内容为 30H ,执行指令:1000H : MOVC A ,· A+PC后,把程序存储器()单元的内容送累加器 A 中。
12.假定 DPTR 的内容为 8100H ,累加器的内容为 40H ,执行下列指令:MOVC A ,· A+DPTR5后,送入的是程序存储器()单元的内容。
13.假定( SP ) =60H ,( ACC ) =30H ,( B ) =70H ,执行下列指令:PUSH ACCPOP B 后, SP 的内容为(), 61H 单元的内容为(), 62H单元的内容为()。
14.假定( SP ) =62H ,( 61H ) =30H ,( 62H ) =70H 。
执行指令:POP DPHPOP DPL 后, DPTR 的内容为(), SP 的内容为()。
15.假定( A ) =85H ,( R0 ) =20H ,( 20H ) =0AFH 。
执行指令:ADD A , R0 后,累加器 A 的内容为(), CY 的内容为(),AC 的内容为(), OV 的内容为()。
16.假定( A )=85H ,( 20H )=0FFH ,( CY )=1 ,执行指令:ADDC A , 20H 后,累加器 A 的内容为(), CY 的内容为(), AC 的内容为(), OV 的内容为()。
17.假定( A ) =0FFH ,( 30H ) =0F0H ,( R0 ) =40H ,( 40H )=00H 。
执行指令:INC AINC R3INC 30HINC · R0后,累加器 A 的内容为(), R3 的内容为(), 30H 的内容为(), 40H 的内容为()。
18.假定( A ) =56H ,( R5 ) =67H 。
执行指令:ADD A , R6DA后,累加器 A 的内容为(), CY 的内容为()。
19.假定( A ) =0FH ,( R7 ) =19H ,( 30H ) =00H ,( R1 )6=40H ,( 40H ) =0FFH 。
执行指令: DEC ADEC R7DEC 30HDEC R1后,累加器 A 的内容为(), R7 的内容为(), 30H 的内容为(), 40H 的内容为()。
20.假定( A ) =50H ,( B ) =0A0H 。
执行指令:MUL AB后,寄存器 B 的内容为(),累加器 A 的内容为(), CY 的内容为(), OV 的内容为()。
21.假定( A ) =0FBH ,( B ) =12H 。
执行指令:DIV AB后,累加器 A 的内容为(),寄存器 B 的内容为(), CY 的内容为(), OV 的内容为()。
22.假定( A ) =0CFH ,执行指令:SWAP A后,累加器 A 的内容为()。
23.执行如下指令序列:MOV C , P1 。
0ANL C , P1 。
1ANL C , /P1 。
2MOV P3 。
0 , C后,所实现的逻辑运算式为()。
24.假定 addr11=00100000000B ,标号 qaz 的地址为 1030H 。
执行指令:qaz : AJMP addr11后,程序转移到地址()去执行。
25.假定标号 qaz 的地址为 0100H ,标号 qwe 值为 0123H (即跳转的目标地址为 0123H )。
应执行指令: qaz ; SJMP qwe 该指令的相对偏移量(即指令的第二字节)为()。
726 DPTR 是 MCS — 51 中唯一一个十六位寄存器,在程序中常用来作为 MOVC 指令的访问程序存储器的()使用。