华中科技大学微机原理 第三章 mcs-51的指令系统 (pp117)

上传人:子 文档编号:46992349 上传时间:2018-06-29 格式:PDF 页数:117 大小:1.74MB
返回 下载 相关 举报
华中科技大学微机原理 第三章 mcs-51的指令系统 (pp117)_第1页
第1页 / 共117页
华中科技大学微机原理 第三章 mcs-51的指令系统 (pp117)_第2页
第2页 / 共117页
华中科技大学微机原理 第三章 mcs-51的指令系统 (pp117)_第3页
第3页 / 共117页
华中科技大学微机原理 第三章 mcs-51的指令系统 (pp117)_第4页
第4页 / 共117页
华中科技大学微机原理 第三章 mcs-51的指令系统 (pp117)_第5页
第5页 / 共117页
点击查看更多>>
资源描述

《华中科技大学微机原理 第三章 mcs-51的指令系统 (pp117)》由会员分享,可在线阅读,更多相关《华中科技大学微机原理 第三章 mcs-51的指令系统 (pp117)(117页珍藏版)》请在金锄头文库上搜索。

1、第三章 MCS51的指令系统? 指令及其表示方法指令及其表示方法? 寻址方式寻址方式? 指令系统指令系统概述基本概念基本概念?指令:是计算机执行某种操作的命令。指令:是计算机执行某种操作的命令。?指令系统:指令系统:CPU所具有的全部指令的集合。所具有的全部指令的集合。?寻址方式:在指令中给出操作数地址或其他指令地址的方式。寻址方式:在指令中给出操作数地址或其他指令地址的方式。如果指令越丰富,寻址方式越多,指令执行速度越快,那么功能就越强。所以,寻址方式和指令系统是衡量微型机的重要指标。如果指令越丰富,寻址方式越多,指令执行速度越快,那么功能就越强。所以,寻址方式和指令系统是衡量微型机的重要指

2、标。指令及其表示方法? 指令:是计算机执行某种操作的命令。一般来说,指令由操作码和操作数两部分组成。指令:是计算机执行某种操作的命令。一般来说,指令由操作码和操作数两部分组成。? 操作码:指明执行什么样的操作。如数的传送、加法等。操作码:指明执行什么样的操作。如数的传送、加法等。? 操作数:表示参加操作的数,或操作数的地址。操作数:表示参加操作的数,或操作数的地址。? 指令格式:指令格式:? 单字节指令:单字节指令:操作码操作码? 双字节指令:双字节指令:操作码操作码操作数操作数? 三字节指令:三字节指令:操作码操作码第一操作数 第二操作数第一操作数 第二操作数指令及其表示方法指令的表示:指令

3、的表示:汇编语言汇编语言机器语言机器语言(16进制)进制)MOV A,R0MOV 40H,#100HMOV R6,#32HE8H7EH 32H75H 40H 64H111010000011001001111110011101010110010001000000机器语言机器语言(2进制)进制)第三章 MCS51的指令系统? 指令及其表示方法指令及其表示方法? 寻址方式寻址方式? 指令系统指令系统寻址方式:概述寻址方式:寻址方式:给出操作数地址或其他指令地址的方式。? 指令的一个重要组成部分是操作数,它指明了参与操作的数或数所在的地址,也就是要指出操作数的来源,这就是对操作数进行寻址。指令的一个重

4、要组成部分是操作数,它指明了参与操作的数或数所在的地址,也就是要指出操作数的来源,这就是对操作数进行寻址。? 对于相对转移指令,操作数则要指出下一条要执行的指令的地址,这就是对指令进行寻址。对于相对转移指令,操作数则要指出下一条要执行的指令的地址,这就是对指令进行寻址。寻址方式:概述寻址空间:寻址空间:? 程序存储器:片内外统一编址,程序存储器:片内外统一编址,64K? 片内数据存储器:工作寄存器、特殊功能寄存器片内数据存储器:工作寄存器、特殊功能寄存器? 片外数据存储器 :片外数据存储器 :64K? 具有地址的位具有地址的位MCS51单片机有七种寻址方式单片机有七种寻址方式:? 立即寻址;立

5、即寻址;? 直接寻址;直接寻址;? 寄存器寻址;寄存器寻址;? 寄存器间接寻址;寄存器间接寻址;? 变址寻址;变址寻址;? 相对寻址;相对寻址;? 位寻址。位寻址。寻址方式:概述寻址方式:立即寻址?立即寻址:指令中给出常数,又称“立即数”,用立即寻址:指令中给出常数,又称“立即数”,用#号表示,立即数只能作为源操作数。号表示,立即数只能作为源操作数。? MOV A,MOV A,#45H#45H;A45H;A45H这条指令的功能是把常数45H送入累加器A;指令执行完后,A中的内容为45H。这条指令的功能是把常数45H送入累加器A;指令执行完后,A中的内容为45H。? MOV DPTR,MOV D

6、PTR,#3456H#3456H;DPH34H,DPL56H;DPH34H,DPL56H这条指令的功能是把常数这条指令的功能是把常数3456H3456H送入数据指针DPTR;指令执行完后,DPTR的高字节DPH的内容为34H,低字节DPL的内容为56H。送入数据指针DPTR;指令执行完后,DPTR的高字节DPH的内容为34H,低字节DPL的内容为56H。例如例如:寻址方式:直接寻址? 直接寻址:给出操作数的地址。这种寻址方式可访问的存储空间有:直接寻址:给出操作数的地址。这种寻址方式可访问的存储空间有:?特殊功能寄存器特殊功能寄存器(只能用直接寻址方式)(只能用直接寻址方式)?内部数据存储器的

7、低内部数据存储器的低128字节字节例:指令例:指令MOV A, 45H (指令代码:指令代码:E5 45,两字节指令),两字节指令)把片内RAM中地址是45H的这个字节中的内容送入累加器A。把片内RAM中地址是45H的这个字节中的内容送入累加器A。寻址方式:直接寻址? 对内部RAM的低128字节寻址时,使用存储单元的地址。 如:对内部RAM的低128字节寻址时,使用存储单元的地址。 如:MOV A,78H ;A(78H) MOV30H, 40H ;(30H)(40H)? 对特殊功能寄存器寻址时,即可使用地址,也可使用对特殊功能寄存器寻址时,即可使用地址,也可使用 SFR的名字。 如:的名字。

8、如:MOV DPH,A ;DPHA MOV 83H,A ;83HA,以上两条指令功能相同,以上两条指令功能相同要注意的地方:要注意的地方:? 用直接寻址方式访问累加器用直接寻址方式访问累加器A时,应该用时,应该用ACC表示累加器 (而不是表示累加器 (而不是A),以便与寄存器寻址方式相区别。 如:),以便与寄存器寻址方式相区别。 如:PUSH ACC 正确正确 将累加器将累加器A中的内容压入堆栈中的内容压入堆栈 PUSH A 错误错误寻址方式:寄存器寻址? 寄存器寻址:寄存器寻址:? 操作数存放在某一寄存器中,指令中指出相应的寄存器名。操作数存放在某一寄存器中,指令中指出相应的寄存器名。? 这

9、种寻址方式可以对这种寻址方式可以对R0R7、A、B、CY(位位)、DPTR进 行操作。例:进 行操作。例:MOV A, R3这条指令把当前工作寄存器组中(当前工作寄存器组由PSW中的RS0和RS1位选定)R3单元的内容送入累加器A,执行完后R3中的内容不变。这条指令把当前工作寄存器组中(当前工作寄存器组由PSW中的RS0和RS1位选定)R3单元的内容送入累加器A,执行完后R3中的内容不变。寻址方式:寄存器间接寻址? 寄存器间接寻址寄存器中的内容不是操作数本身,而是操作数的地址。寄存器间接寻址寄存器中的内容不是操作数本身,而是操作数的地址。?可用于寄存器间接寻址的寄存器有:可用于寄存器间接寻址的

10、寄存器有:工作寄存器工作寄存器R0和和R1、堆栈指针、堆栈指针SP、数据指针、数据指针DPTR?寻址空间:寻址空间: R0和和R1寻址片内低寻址片内低128个字节或片外低个字节或片外低256个字节;个字节; 堆栈指针堆栈指针SP寻址堆栈;寻址堆栈; 数据指针数据指针DPTR寻址片外寻址片外64K数据存储器数据存储器寻址方式:寄存器间接寻址例:指令例:指令 MOVA, R0假设当前工作寄存器中的假设当前工作寄存器中的R0单元的内容为单元的内容为5EH,5EH是片内是片内RAM的一个存储单元的地址,其中的内容为的一个存储单元的地址,其中的内容为78H。指令执行完后,。指令执行完后,78H被送入累加

11、器;被送入累加器;R0和和5EH中内容不变。中内容不变。R0 表示把表示把R0中的内容看作是地址中的内容看作是地址不同的寻址空间使用不同的寄存器不同的寻址空间使用不同的寄存器? 寻址片内寻址片内RAM的低的低128个字节,外部个字节,外部RAM的低的低256个字节:使用的寄存器为个字节:使用的寄存器为R0、R1、SP。? 寻址片外寻址片外RAM的整个的整个64K的存储空间:使用的存储空间:使用DPTR作为间接寄存器。作为间接寄存器。寻址方式:寄存器间接寻址寻址方式:小结立即寻址操作数直接寻址地址? 操作数寄存器寻址寄存器 ? 操作数寄存器间接寻址寄存器 ? 地址 ? 操作数寻址方式:变址寻址?

12、 变址寻址变址寻址? 以程序计数器以程序计数器PC或数据指针或数据指针DPTR作为基址寄存器,存放操作数的作为基址寄存器,存放操作数的基地址基地址;? 累加器累加器A作为变址寄存器,存放操作数地址相对于基地址的作为变址寄存器,存放操作数地址相对于基地址的偏移量偏移量;操作的数的地址:操作数地址;操作的数的地址:操作数地址 =(基址寄存器)(基址寄存器)+A操作数操作数PCDPTR偏移量偏移量操作数 地址操作数 地址寻址方式:变址寻址? 这种寻址方式仅适用于访问程序存储器。这种寻址方式仅适用于访问程序存储器。? 当以当以DPTR作为基址时,可指向作为基址时,可指向64K程序存储器中的任何单元。程

13、序存储器中的任何单元。? 当以当以PC作为基址时,只可指向从作为基址时,只可指向从PC开始的开始的256个字节范围内的任一单元。要注意的地方:个字节范围内的任一单元。要注意的地方:寻址方式:变址寻址例:指令例:指令 MOVCA,A+DPTR设累加器设累加器 A=47H,DPTR=2000H,2047H单元中的内容为单元中的内容为5CH,指令执行后,指令执行后,A=5CH寻址方式:相对寻址? 相对寻址相对寻址? 寻找下一条要执行的寻找下一条要执行的指令的地址指令的地址。? 相对寻址的目的地址为:相对寻址的目的地址为:D = PC + relD是相对转移指令执行后,应转移到的是相对转移指令执行后,

14、应转移到的目的地址目的地址;PC为当前执行的指令的地址,称为为当前执行的指令的地址,称为源地址源地址;rel是是相对地址相对地址,它是目的地址与源地址的差值;,它是目的地址与源地址的差值;相对地址的机器码称为相对地址的机器码称为偏移量偏移量,记为,记为disp,它是一字节二进制补码数,取值范围为,它是一字节二进制补码数,取值范围为128+127。寻址方式:相对寻址例:指令例:指令JC 18H机器码机器码 40 16? 这是一个二字节指令,是以进位标志这是一个二字节指令,是以进位标志CY为条件的相对转移指令。为条件的相对转移指令。? 若若CY=0,则不转移,顺序往下执行,则不转移,顺序往下执行,

15、PC=PC+2;? 若若CY=1,则以源地址加上指令长度,则以源地址加上指令长度2再加上即偏移量,得到目的地址。再加上即偏移量,得到目的地址。目的指令目的指令PC偏移量偏移量指令 地址指令 地址4016PC现假设现假设CY=1寻址方式:相对寻址例:假设当前执行的指令的源地址为例:假设当前执行的指令的源地址为011BH,当前指令是二字节指令,转移的目的地址是,当前指令是二字节指令,转移的目的地址是D=0110H,所以,所以Rel = D PC = 0110H 011BH = 0BH变为补码得到变为补码得到rel = 0BH补补 = F5H偏移量为偏移量为disp = rel 2 = F5H 2

16、= F3H相对地址rel与偏移量disp的关系:disp = rel b若转移指令为2字节,则b=2;若转移指令为3字节,则b=3相对地址rel与偏移量disp的关系:disp = rel b若转移指令为2字节,则b=2;若转移指令为3字节,则b=3寻址方式:位寻址? 位寻址位寻址?操作对象是位,指令中直接给出位地址。操作对象是位,指令中直接给出位地址。?这种寻址方式也可以归并于直接寻址方式,但它提供的是直接的位地址。这种寻址方式也可以归并于直接寻址方式,但它提供的是直接的位地址。例如:指令例如:指令SETB 3AH机器代码机器代码D2 3A位地址位地址3AH是片内是片内RAM中中27H单元的第单元的第2位,指令执行后,位,指令执行后,3AH这一位被置为这一位被置为1。若。若(27H)=00000000B,则指令执行后,则指令执行后(27H)=00000100

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号