第3章MCS-51指令系统3.1 简介.ppt
《第3章MCS-51指令系统3.1 简介.ppt》由会员分享,可在线阅读,更多相关《第3章MCS-51指令系统3.1 简介.ppt(101页珍藏版)》请在麦多课文档分享上搜索。
1、第3章 MCS-51指令系统 3.1 简 介,3.1.1 指令概述 一台微机所具有的所有指令的集合,就构成了指令系统。指令系统越丰富,说明CPU的功能越强。例如,Z80 CPU中,没有乘法和除法指令,乘法和除法运算必须用软件来实现,因此执行速度相对较慢;而MCS-51单片机提供了乘法和除法指令,实现乘法和除法运算时就要快得多。,一台微机能执行什么样的操作,是在微机设计时确定的。一条指令对应着一种基本操作。由于计算机只能识别二进制数,所以指令也必须用二进制形式来表示,称为指令的机器码或机器指令。MCS-51单片机指令系统共有33种功能,42种助记符,111条指令。,3.1.2 指令格式在实训中看
2、到,不同指令翻译成机器码后字节数也不一定相同。按照机器码个数,指令可以分为以下三种:,MCS-51单片机指令系统包括49条单字节指令、46条双字节指令和16条三字节指令。采用助记符表示的汇编语言指令格式如下:,标号是程序员根据编程需要给指令设定的符号地址,可有可无;标号由18个字符组成,第一个字符必须是英文字,不能是数字或其它符号;标号后必须用冒号。,操作码表示指令的操作种类,如MOV表示数据传送操作,ADD表示加法操作等。操作数或操作数地址表示参加运算的数据或数据的有效地址。操作数一般有以下几种形式:没有操作数项,操作数隐含在操作码中,如RET指令;只有一个操作数,如CPL A指令;有两个操
3、作数,如MOV A,#00H指令,操作数之间以逗号相隔;有三个操作数,如CJNE A,#00H,NEXT指令,操作数之间也以逗号相隔。注释是对指令的解释说明,用以提高程序的可读性;注释前必须加分号。,操作数是指令的重要组成部分,指出了参与操作的数据或数据的地址。寻找操作数地址的方式称为寻址方式。一条指令采用什么样的寻址方式,是由指令的功能决定的。寻址方式越多,指令功能就越强。MCS-51指令系统共使用了7种寻址方式,包括寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址等。实训中,我们初步接触了寄存器寻址、立即数寻址、直接寻址和寄存器间接寻址等4种寻址方式。,3.2
4、寻 址 方 式,1. 寄存器寻址寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR等。例如,指令MOV R1,A的操作是把累加器A中的数据传送到寄存器R1中,其操作数存放在累加器A中,所以寻址方式为寄存器寻址。如果程序状态寄存器PSW的RS1RS0=01(选中第二组工作寄存器,对应地址为08H0FH),设累加器A的内容为20H,则执行MOV R1,A指令后,内部RAM 09H单元的值就变为20H,如图3.1所示。,实训3中,采用寄存器寻址的指令如下:MOV P1,A ;将累加器A的内容送 到P1口MOV P1,R4 ;将寄存器R4的内
5、容送到P1口CLR A ;将累加器A清0CPL A ;将累加器A中的内容取反RL A ;将累加器A的内容循环左移,图3.1 寄存器寻址示意图,图3.2 直接寻址示意图,2. 直接寻址直接寻址是指把存放操作数的内存单元的地址直接写在指令中。在MCS-51单片机中,可以直接寻址的存储器主要有内部RAM区和特殊功能寄存器SFR区。例如,指令MOV A,3AH执行的操作是将内部RAM 中地址为3AH的单元内容传送到累加器A中,其操作数3AH就是存放数据的单元地址,因此该指令是直接寻址。设内部RAM 3AH单元的内容是88H,那么指令MOV A,3AH的执行过程如图3.2所示。,实训3中,采用直接寻址的
6、指令如下:MOV P1,20H ;将20H单元的内容传送到P1口3. 立即数寻址立即数寻址是指将操作数直接写在指令中。例如,指令MOV A,#3AH执行的操作是将立即数3AH送到累加器A中,该指令就是立即数寻址。注意:立即数前面必须加“#”号,以区别立即数和直接地址。该指令的执行过程如图3.3所示。,图3.3 立即数寻址示意图,实训3中,采用立即数寻址的指令如下:MOV P1,#55H ;将立即数55H送P1口MOV 20H,#55 ;将立即数55H送20H 单元MOV A,#0F0H ;将立即数0F0H送累加器AMOV R4,#0FH ;将立即数0FH送寄存器R4中MOV R0,#20H ;
7、将立即数20H送寄存器R0口,AND A,#0FH ;累加器A的内容与立即数0FH进行逻辑与操作OR A,#0F0H ;累加器A的内容与立即数0F0H进行逻辑或操作MOV A,#01H ;将立即数01H送累加器A中MOV A,#55H ;将立即数55H送累加器A中,4. 寄存器间接寻址寄存器间接寻址是指将存放操作数的内存单元的地址放在寄存器中,指令中只给出该寄存器。执行指令时,首先根据寄存器的内容,找到所需要的操作数地址,再由该地址找到操作数并完成相应操作。在MCS-51指令系统中,用于寄存器间接寻址的寄存器有R0、R1和DPTR,称为寄存器间接寻址寄存器。注意:间接寻址寄存器前面必须加上符号
8、“”。例如,指令MOV A,R0执行的操作是将R0的内容作为内部RAM的地址,再将该地址单元中的内容取出来送到累加器A中。,设R0=3AH,内部RAM 3AH中的值是65H,则指令 MOV A,R0的执行结果是累加器A的值为65H,该指令的执 行过程如图3.4所示。实训3中,采用寄存器间接寻址的指令如下:MOV P1,R0 ;将R0所指的存 储 单元的内容送P1口,图3.4 寄存器间接寻址示意图,5. 变址寻址变址寻址是指将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址。DPTR或PC是基址寄存器,累加器A是变址寄存器。该类寻址方式主要用于查表操作。例如,指令MOVC A,A+DPTR
9、执行的操作是将累加器A和基址寄存器DPTR的内容相加,相加结果作为操作数存放的地址,再将操作数取出来送到累加器A中。设累加器A=02H,DPTR=0300H,外部ROM中,0302H单元的内容是55H,则指令MOVC A,A+DPTR的执行结果是累加器A的内容为55H。该指令的执行过程如图3.5所示。,图3.5 变址寻址示意图,6. 相对寻址相对寻址是指程序计数器PC的当前内容与指令中的操作数相加,其结果作为跳转指令的转移地址(也称目的地址)。该类寻址方式主要用于跳转指令。例如,指令SJMP 54H执行的操作是将PC当前的内容与54H相加,结果再送回PC中,成为下一条将要执行指令的地址。设指令
10、SJMP 54H的机器码80H 54H存放在2000H处,当执行到该指令时,先从2000H和2001H单元取出指令,PC自动变为2002H;再把PC的内容与操作数54H相加,形成目标地址2056H,再送回PC,使得程序跳转到2056H单元继续执行。该指令的执行过程如图3.6所示。,图3.6 相对寻址示意图,7. 位寻址位寻址是指按位进行的寻址操作,而上述介绍的指令都是按字节进行的寻址操作。MCS-51单片机中,操作数不仅可以按字节为单位进行操作,也可以按位进行操作。当我们把某一位作为操作数时,这个操作数的地址称为位地址。 位寻址区包括专门安排在内部RAM中的两个区域:一是内部RAM的位寻址区,
11、地址范围是20H2FH,共16个RAM单元,位地址为00H7FH;二是特殊功能寄存器SFR中有11个寄存器可以位寻址,参见有关章节中位地址定义。,例如,指令SETB 3DH执行的操作是将内部RAM位寻址区中的3DH位置1。设内部RAM 27H单元的内容是00H,执行SETB 3DH后,由于3DH对应内部RAM 27H的第5位,因此该位变为1,也就是27H单元的内容变为20H。该指令的执行过程如图3.7所示。,图3.7 位寻址示意图,3.3 指 令 系 统MCS-51单片机指令系统包括111条指令,按功能可以划分为以下5类数据传送指令(29条) 算术运算指令(24条)逻辑运算指令(24条)控制转
12、移指令(17条)位操作指令(17条),3.3.1 指令系统中的符号说明指令的书写必须遵守一定的规则,为了叙述方便,我们采用表3.2的约定。,表3.2 指令描述约定,3.3.2 数据传送类指令数据传送指令是MCS-51单片机汇编语言程序设计中使用最频繁的指令,包括内部 RAM、寄存器、外部RAM以及程序存储器之间的数据传送。数据传送操作是指把数据从源地址传送到目的地址,源地址内容不变。,数 据,目的地址 源地址,1. 内部8位数据传送指令(15条)内部8位数据传送指令共15条,主要用于MCS-51单片机内部RAM与寄存器之间的数据传送。指令基本格式: MOV ,1) 以累加器A为目的地址的传送指
13、令(4条),注意:以上传送指令的结果均影响程序状态字寄存器PSW的P标志。例3.1 已知相应单元的内容如下,请指出每条指令执行后相应单元内容的变化。,(1) MOV A,#20H (2) MOV A,40H(3) MOV A,R0(4) MOV A,R0 解:(1) MOV A,#20H执行后A=20H。(2) MOV A,40H执行后A=30H。(3) MOV A,R0执行后A=50H。(4) MOV A,R0执行后A=10H。,2) 以Rn为目的地址的传送指令(3条),注意:以上传送指令的结果不影响程序状态字寄存器PSW标志。 3) 以直接地址为目的地址的传送指令(5条),注意:以上传送指
14、令的结果不影响程序状态字寄存器PSW标志。4) 以寄存器间接地址为目的地址的传送指令(3条),注意:以上传送指令的结果不影响程序状态字寄存器PSW标志。例3.2 已知相应单元的内容如下,请指出下列指令执行后各单元内容相应的变化。,(1) MOV A,R6 (2) MOV R6,70H (3) MOV 70H,50H (4) MOV 40H,R0 (5) MOV R1,#88H 解:(1) MOV A,R6执行后A=30H。 (2) MOV R6,70H执行后R6=40H。 (3) MOV 70H,50H执行后(70H)=60H。 (4) MOV 40H,R0执行后(40H)=60H。 (5)
15、MOV R1,#88H执行后(66H)=88H。,2. 16位 数据传送指令(1条),注意:以上指令结果不影响程序状态字寄存器PSW标志。3. 外部数据传送指令(4条),注意: 外部RAM只能通过累加器A进行数据传送。 累加器A与外部RAM之间传送数据时只能间接寻址方式,间接寻址寄存器为DPTR,R0,R1。 以上传送指令结果通常影响程序状态字寄存器PSW的P标志。例3.3 把外部数据存储器2040H单元中的数据传送到外部数据存储器2560H单元中去。,解:MOV DPTR,#2040HMOVX A,DPTR ;先将2040H单元的内容传送到累加器A中MOV DPTR,#2560HMOVX D
16、PTR,A ;再将累加器A中的内容传送到2560H单元中,4. 交换和查表类指令(9条) 1) 字节交换指令(3条),注意:以上指令结果影响程序状态字寄存器PSW的P标志。 2) 半字节交换指令(1条),注意:上面指令结果影响程序状态字寄存器PSW的P标志。,3) 累加器A中高4位和低4位交换(1条),注意:上面指令结果不影响程序状态字寄存器PSW标志。例3.4 设内部数据存储区2AH、2BH单元中连续存放有4个BCD码(1个BCD码占,2AH 2BH 2AH 2BH,解:MOV R0,#2AH ;将立即数2AH传送到寄存器R0中MOV A,R0 ;将2AH单元的内容传送到累加器A中SWAP
17、A ;将累加器A中的高4位与 低4位交换MOV R0,A ;将累加器A的内容传送到2AH单元中MOV R1,#2BH,MOV A,R1 ;将2BH单元的内容传送到累加器A中SWAP A ;将累加器A中的高4位与低4位交换XCH A,R0 ;将累加器A中的内容与2AH单元的内容交换MOV R1,A ;累加器A的内容传送到2BH单元,4) 查表指令(2条),注意: 以上指令结果影响程序状态字寄存器PSW的P标志。 查表指令用于查找存放在程序存储器中的表格。,5) 堆栈操作指令(2条),注意: 堆栈是用户自己设定的内部RAM中的一块专用存储区,使用时一定先设堆栈指针,堆栈指针缺省为SP=07H。,
18、堆栈遵循后进先出的原则安排数据。 堆栈操作必须是字节操作,且只能直接寻址。将累加器A入栈、出栈指令可以写成:PUSH/POP ACC 或 PUSH/POP 0E0H 而不能写成:PUSH/POP A 堆栈通常用于临时保护数据及子程序调用时保护现场和恢复现场。 以上指令结果不影响程序状态字寄存器PSW标志。,例3.5 设堆栈指针为30H,把累加器A和DPTR中的内容压入,然后根据需要再把它们弹出,编写实现该功能的程序段。解:MOV SP,#30H ;设置堆栈指针,SP=30H为栈底地址PUSH ACC ;SP+1SP,SP=31H,ACC (SP)PUSH DPH ;SP+1SP,SP=32H,
19、DPH (SP),PUSH DPL ;SP+1SP,SP=33H,DPL (SP) POP DPL ;(SP)DPL,SP-SP,SP=32H POP DPH ;(SP)DPH,SP-SP,SP=31H POP ACC ;(SP)ACC,SP-SP,SP=30H,3.3.3 算术运算类指令1. 加、减法指令(22条)1) 加法指令(8条),注意: ADD与ADDC的区别为是否加进位位CY。 指令执行结果均在累加器A中。 以上指令结果均影响程序状态字寄存器PSW的CY、OV、AC和P标志。2) 减法指令(4条),注意: 减法指令中没有不带借位的减法指令,所以在需要时,必须先将CY清0。 指令执行
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 指令系统 31 简介 PPT
