欢迎来到天天文库
浏览记录
ID:50044451
大小:135.00 KB
页数:41页
时间:2020-03-08
《微机原理与接口技术 第二版 教学课件 作者 郑博仁 邹纯递 第4章 指 令 系 统.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第4章指令系统指令格式4.1寻址方式4.2指令系统4.3前面几章介绍了CPU的基本知识,本章主要介绍80x86的寻址方式和指令系统。本章是学习汇编程序设计语言的基础。只有学好了寻址方式和指令系统,才能够真正了解汇编程序的含义,读懂别人写的汇编程序,进而写出自己的汇编语言程序。【学习目标】掌握80x86常见的寻址方式。掌握80x86指令的基本格式。掌握80x86的指令系统。4.1指令格式4.1.1指令格式4.1.2指令编码格式计算机是通过指令来工作的,不同的计算机有不同的指令,80x86与早期8位的CPU相比,指令更
2、丰富、功能更强大。为了减少指令所占的存储空间,提高指令执行速度,每条指令应尽量简短,80x86采用最多5字节的指令格式。本节主要介绍80x86的指令格式和指令编码格式。4.1.1指令格式指令格式是指指令在源程序中的书写格式,指令的基本格式为:[标号:]助记符操作数;注释下面对格式中的各部分作简单的解释。1.标号标号是某条指令所存单元的符号地址,其后要跟冒号。标号一般是由字母开头,允许使用字母、数字及特殊字符(?、@、*、_、$);不允许使用保留字(关键字),例如ADD、MOV、EDN等。2.助记符助记符指令的操作码,即指
3、示要发生什么动作。例如“MOVAL,12H”中的助记符是MOV,是动词MOVE的简写,意思是将12H送到AL中。3.操作数指令中可以无操作数,也可以有1~3个操作数,操作数之间用逗号隔开,例如:MOVDEST,SRC为数据传送指令。SRC表示源操作数,DEST表示目的操作数。数据流动的方向是由源操作数传送到目的操作数。操作数可以是寄存器操作数或存储器操作数。有关操作数的说明如下。通用寄存器操作数(REG):包括8位寄存器AL、AH、BL、BH、CL、CH、DL、DH;16位寄存器AX、BX、CX、DX、SI、DI、SP
4、、BP;32位寄存器EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP。存储器操作数(MEM):间接寻址时16位寻址寄存器包括BX、BP、SI、DI;32位寻址寄存器包括EAX、EBX、ECX、EDX、ESI、EDI、EBP。其中BX、SI、DI、EAX、EBX、ECX、EDX、ESI、EDI对应的默认段寄存器为DS;BP、EBP对应的默认段寄存器为SS。存储器操作数默认的数据类型:在16位指令模式时为字类型,在32位指令模式时为双字类型。在使用中,如果要改变字类型,应使用伪指令PTR来定义,即:字节类型
5、BYTEPTR[REG]字类型WORDPTR[REG]双字类型DWORDPTR[REG]段寄存器操作数(SEG):为16位段寄存器,包括CS、DS、ES、SS、FS、GS。立即数(Imm):只允许作为源操作数,其数据类型由目的操作数决定。4.注释注释由分号(;)开始,用来对指令的功能加以说明,使程序便于阅读,汇编程序对它不进行处理。4.1.2指令编码格式1.前缀指令前缀为地址长度前缀和操作数长度前缀。为了实现80x86系列的兼容性,在实地址方式和保护方式下均可执行16位或32位指令。在汇编程序中,为某些指令附加指令前
6、缀可以将指令操作数或地址长度由16位转移到32位,也可以由32位转移到16位。2.操作码及寻址方式操作码及寻址方式属于指令中最基本的组成部分,指令编码的格式为:第一字节第二字节(1)操作码:规定处理器执行的操作。如传送、加、减等,具体操作采用编码表示。(2)D位:规定数据流的方向。为第二字节指定R/M域和REG域之间数据流动的方向。(3)W位:规定操作数长度是字节、字或双字。(4)MOD域:选择寻址类型,指定R/M域为寄存器还是存储器。如为存储器,还要指定是否有偏移量。MOD占两位,有以下4种情况。MOD=00为无相对
7、量字节的内存寻址方式。MOD=01为带一个字节相对量的内存寻址方式,在寻址方式字节后紧跟的是一字节的相对值。MOD=10为带两个字节相对量的内存寻址方式,在寻址方式字节后紧跟的是二字节的相对值。MOD=11为寄存器寻址,由R/M域确定选用哪个寄存器。(5)REG域:采用3位编码表示8个寄存器。它需要与指令操作码中的W位结合。(6)R/M域:表示寄存器或存储器,由MOD域指定。如为寄存器,则与REG域相同;如为存储器,则表示8种寻址方式。4.2寻址方式寻址方式是指指令中寻找操作数的方式,一般有3种寻址方式。与数据有
8、关的寻址方式。与转移指令或过程调用指令有关的寻址方式。与输入/输出(IN/OUT)指令有关的寻址方式。1.立即寻址操作数包含在指令中,作为指令的一部分存放在代码段中。操作数(又称立即数)的存放形式为:数据高位存放在地址高位存储单元,数据低位存放在地址低位存储单元。2.寄存器寻址操作数在CPU内部的寄存器中,操作数
此文档下载收益归作者所有