欢迎来到天天文库
浏览记录
ID:33829048
大小:3.11 MB
页数:305页
时间:2019-03-01
《《微型计算机原理》(王忠民版)ppt电子课件教案第4章80x86指令系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章80x86指令系统4.18086/8088指令系统4.280x86/Pentium指令系统4.18086/8088指令系统4.1.18086/8088指令格式用汇编语言编写的汇编语言程序输入计算机后,必须由“汇编程序”将它翻译成由机器指令(指令码)组成的机器语言程序,才能由计算机识别并执行。因此汇编语言程序需由汇编程序翻译成可执行的机器语言程序,一般来说,这一过程不必由人来干预。我们这里只介绍一下基本原理,以便在必要时也可以手工完成类似的工作。8086/8088指令系统的指令类型较多,功能很强。各种指令由于功能不同,需要指令码提供的
2、信息也不同。为了满足不同功能的要求又要尽量减少指令所占的空间,8086/8088指令系统采用了一种灵活的、由1~6个字节组成的变字长的指令格式,包括操作码、寻址方式以及操作数三个部分,如图4.1所示。通常指令的第一字节为操作码字节(OPCODE),规定指令的操作类型;第二字节为寻址方式字节(MOD),规定操作数的寻址方式;接着以后的3~6字节依据指令的不同而取舍,可变字长的指令主要体现在这里,一般由它指出存储器操作数地址的位移量或立即数。图4.18086/8088不同字长的指令码格式操作码/寻址方式字节格式如下:第一字节中,W指示操作数类
3、型:W=0为字节,W=1为字;D指示操作数的传送方向:D=0表示寄存器操作数为源操作数,D=1表示寄存器操作数为目的操作数。第二字节指出所用的两个操作数存放的位置,以及存储器中操作数偏移地址的计算方法。其中:REG字段规定一个寄存器操作数,它作为源操作数还是目的操作数已由第一字节中的D位规定。由REG字段选择寄存器的具体规定如表4.1所示。表4.1REG字段编码表REGW=1(字操作)W=0(字节操作)000AXAL001CXCL010DXDL011BXBL100SPAH101BPCH110SIDH111DIBHMOD字段用来区分另一个操
4、作数在寄存器中(寄存器寻址)还是在存储器中(存储器寻址),在存储器寻址的情况下,还用来指出该字节后面有无位移量,有多少位位移量。MOD字段的编码如表4.2所示。表4.2MOD字段编码表MOD寻址方式00存储器寻址,没有位移量01存储器寻址,有8位位移10存储器寻址,有16位位移11寄存器寻址,没有位移量R/M字段受MOD字段控制。MOD=11为寄存器方式,R/M字段将指出第二操作数所在的寄存器编号;MOD=00,01,10为存储器方式,R/M则指出如何计算存储器中操作数的偏移地址。MOD与R/M字段组合的寻址方式见表4.3。表4.3MOD
5、与R/M字段组合的寻址方式例4.1MOVAH,[BX+DI+50H]代码格式:100010100110000101010000OPCODEDWMODREGR/Mdisp–8指令码为:8A6150H例4.2ADDdisp[BX][DI],DX;disp=2345H代码格式:00000001100100010101000000100011OPCODEDWMODREGR/Mdisp–Hidisp-Hi指令码为:01914523H4.1.28086/8088指令系统的寻址方式1.操作数的种类1)数据操作数这类操作数是与数据有关的操作数,即指令中操
6、作的对象是数据。数据操作数又可分为:(1)立即数操作数。指令中要操作的数据包含在指令中。(2)寄存器操作数。指令中要操作的数据存放在指定的寄存器中。(3)存储器操作数。指令中要操作的数据存放在指定的存储单元中。(4)I/O操作数。指令中要操作的数据来自或送到I/O端口。2)地址操作数这类操作数是与程序转移地址有关的操作数,即指令中操作的对象不是数据,而是要转移的目标地址。它也可以分为立即数操作数、寄存器操作数和存储器操作数,即要转移的目标地址包含在指令中,或存放在寄存器中,或存放在存储单元之中。对于数据操作数,有的指令有两个操作数:一个称
7、为源操作数,在操作过程中其值不改变;另一个称为目的操作数,操作后一般被操作结果代替。有的指令只有一个操作数,或没有(或隐含)操作数。对于地址操作数,指令只有一个目的操作数,它是一个供程序转移的目标地址。2.寻址方式所谓寻址方式,就是指指令中给出的寻找操作数(包括数据操作数和地址操作数)的方法。根据操作数的种类,8086/8088指令系统的寻址方式分为两大类:数据寻址方式和地址寻址方式。1)数据寻址方式数据寻址方式可分为立即数寻址方式、寄存器寻址方式、存储器寻址方式和I/O端口寻址方式四种类型。(1)立即数寻址方式(ImmediateAdd
8、ressing)。立即数寻址方式所提供的操作数直接包含在指令中,紧跟在操作码之后,它作为指令的一部分,这种操作数称为立即数。立即数可以是8位的,也可以是16位的。如果是16位数,则高位字节存放
此文档下载收益归作者所有