微型计算机原理及应用课件

上传人:桔**** 文档编号:588630790 上传时间:2024-09-08 格式:PPT 页数:147 大小:537KB
返回 下载 相关 举报
微型计算机原理及应用课件_第1页
第1页 / 共147页
微型计算机原理及应用课件_第2页
第2页 / 共147页
微型计算机原理及应用课件_第3页
第3页 / 共147页
微型计算机原理及应用课件_第4页
第4页 / 共147页
微型计算机原理及应用课件_第5页
第5页 / 共147页
点击查看更多>>
资源描述

《微型计算机原理及应用课件》由会员分享,可在线阅读,更多相关《微型计算机原理及应用课件(147页珍藏版)》请在金锄头文库上搜索。

1、第第3 3章章: :寻址方式与指令系统寻址方式与指令系统3.1 3.1 数据类型及其存储规则数据类型及其存储规则 3.2 3.2 计算机指令格式计算机指令格式3.3 8086CPU3.3 8086CPU的的寻址方式寻址方式3.4 80863.4 8086指令系统指令系统3.5 80X863.5 80X86的寻址方式及新增的指令的寻址方式及新增的指令微型计算机原理及应用微型计算机原理及应用第三章第三章: :寻址方式与指令系统寻址方式与指令系统3.13.1数据类型及其存储规则数据类型及其存储规则 3.1.13.1.1基本数据类型及存储基本数据类型及存储 一个存储单元一个存储单元一个字节占用内存的一

2、个地址。一个字节占用内存的一个地址。基本数据类型:基本数据类型:字、双字、四字、双四字字、双字、四字、双四字字字两个相邻字节组成的两个相邻字节组成的1616位二进制;位二进制;双字双字44个相邻字节组成的个相邻字节组成的3232位二进制数;位二进制数;四字四字88个相邻字节组成的个相邻字节组成的6464位二进制数;位二进制数;双四字双四字1616个相邻字节组成的个相邻字节组成的128128位二进制数。位二进制数。微型计算机原理及应用微型计算机原理及应用9CH48H2BH6AH7AH1AHC3H23H72H92H8BH3AHABHA2H12H45HNN1N2N3N4N5N6N7N8N9N10N1

3、1N12N13N14N+15N+15单元地址单元地址图3.2基本数据类型存储规律 地址为地址为N N的的字节数据:字节数据: 9C9CH H字数据字数据: : 489C 489CH H双字数据双字数据: : 6A2B489C 6A2B489CH H四字数据四字数据:双四字数据双四字数据: 微型计算机原理及应用微型计算机原理及应用3.1.2 3.1.2 数字数据类型数字数据类型数据类型包含:数据类型包含:无符号整数、带符号整数和浮点数。无符号整数、带符号整数和浮点数。无符号整数(范围:无符号整数(范围:0 02 2n n-1-1)带符号整数(范围:带符号整数(范围:2 2n-1n-1 +2+2n

4、-1n-1-1-1) 带符号整数是用带符号整数是用2 2的补码表示的二进制值。规定操作数的最高位为符号位。的补码表示的二进制值。规定操作数的最高位为符号位。浮点数浮点数浮点数据类型可分为三种:浮点数据类型可分为三种:单精度浮点单精度浮点、双精度浮点双精度浮点和和双扩展的精度浮点双扩展的精度浮点。3.1.33.1.3指针数据类型指针数据类型在实方式下有两种类型的指针:近指针(在实方式下有两种类型的指针:近指针(1616位)和远指针(位)和远指针(3232位)位)3.1.43.1.4字符串、位及位串数据类型字符串、位及位串数据类型字符串包括字节串、字串和双字串字符串包括字节串、字串和双字串, ,它

5、们分别是字节、字和双字的相邻序列。它们分别是字节、字和双字的相邻序列。微型计算机原理及应用微型计算机原理及应用3.23.2计算机指令格式计算机指令格式指令包括两部分:指令包括两部分:指令操作码部分和地址码部分。指令操作码部分和地址码部分。指令操作码部分是给出该指令应完成何种操作。指令操作码部分是给出该指令应完成何种操作。地址码部分是用来描述该指令的操作对象。地址码部分是用来描述该指令的操作对象。指令格式可分为:指令格式可分为:零地址指令、一地址指令、二地址指令和三地址指令。零地址指令、一地址指令、二地址指令和三地址指令。零地址指令:零地址指令:只有操作码只有操作码部分,而部分,而没有操作数没有

6、操作数的指令;的指令;一地址指令:一地址指令:只有目的操作数只有目的操作数的单操作数指令;的单操作数指令;二地址指令:有两个地址指出二地址指令:有两个地址指出两个操作数两个操作数的地址;的地址;三地址指令三地址指令微型计算机原理及应用微型计算机原理及应用 MOV MOV AXAX, BXBX操作码的助记符目的操作数源操作数操作码的助记符目的操作数源操作数3.2.13.2.1指令的助记符格式指令的助记符格式助记符格式可用以下通式表示:助记符格式可用以下通式表示: 名字名字 操作码项操作码项 操作数项操作数项 ;注释;注释 其中:其中:名字名字是一个符号,表示本条语句的符号地址。是一个符号,表示本

7、条语句的符号地址。操作码项操作码项指指出该语句的基本操作功能出该语句的基本操作功能。操操作作数数项项是是操操作作码码的的操操作作对对象象,有有两两个个或或两两个个以以上上的的操操作作数数,各各操操作作数数之之间用逗号隔开。间用逗号隔开。注释字段注释字段是以是以“;”开头的说明部分,注释字段是语句的非执行部分开头的说明部分,注释字段是语句的非执行部分 。 例如:例如:微型计算机原理及应用微型计算机原理及应用3.2.2 80x863.2.2 80x86指令编码格式指令编码格式指令编码格式包含操作码和操作数两部分。指令编码格式包含操作码和操作数两部分。操作码表示计算机执行什么操作。操作码表示计算机执

8、行什么操作。操作数指明参与操作的数的本身,或规定了操作数的地址。操作数指明参与操作的数的本身,或规定了操作数的地址。 图图3.5 8086 CPU3.5 8086 CPU指令编码的一般形式指令编码的一般形式1)1)操操作作码码字字节节 它它是是指指令令的的第第一一字字节节,规规定定指指令令的的操操作作类类型型,是是指令的必选字节,字节内容如下:指令的必选字节,字节内容如下: D D7 7 D D6 6 D D5 5 D D4 4 D D3 3 D D2 2 D D1 1 D D0 0 操作码字节操作码字节寻址方式字节寻址方式字节偏移量字节(偏移量字节(1/21/2)立即数字节(立即数字节(1/

9、21/2)OP D WOP D W微型计算机原理及应用微型计算机原理及应用OPOP:表示指令操作码,:表示指令操作码,D D:表示指令中数据传送的方向。:表示指令中数据传送的方向。W W:表示操作数类型。:表示操作数类型。2)2)寻寻址址方方式式字字节节。它它是是指指令令的的第第二二字字节节,规规定定操操作作数数的的寻寻址址方方式式。是是指指令令的的可选字节,字节内容如下:可选字节,字节内容如下:D D7 7 D D6 6 D D5 5 D D4 4 D D3 3 D D2 2 D D1 1 D D0 0 MODMOD:表示方式域,:表示方式域,D D7 7、D D6 6位能表示位能表示4 4

10、种不同的方式。种不同的方式。REGREG:表示寄存器域,:表示寄存器域,D D5 5、D D4 4、D D3 3位能表示位能表示8 8种不同的寄存器。种不同的寄存器。R/MR/M:表示寄存器存储器域,:表示寄存器存储器域,D D2 2、D D1 1、D D0 0位能表示位能表示8 8种不同的寄存器存储器。种不同的寄存器存储器。3 3)偏移量字节)偏移量字节 是指令的第三、四字节,是指令的可选字节,给出了存储器操作数的偏移量。是指令的第三、四字节,是指令的可选字节,给出了存储器操作数的偏移量。4 4)立即数字节)立即数字节 是指令的可选字节,给出了指令的立即数。是指令的可选字节,给出了指令的立即

11、数。MODMODREGREGR/MR/M微型计算机原理及应用微型计算机原理及应用表3-1 mod与rm域所组合的寻址方式 MOD MODR/MR/M存储器寻址存储器寻址寄存器寻址寄存器寻址逻辑地址的计算公式逻辑地址的计算公式W W0 0W W1 1MODMOD00B00BMODMOD01B01BMODMOD10B10BMODMOD11B11B000000001001010010011011100100101101110110111111DS:BX+SIDS:BX+SIDS:BX+DIDS:BX+DISS:BP+SISS:BP+SISS:BP+DISS:BP+DIDS:SIDS:SIDS:DID

12、S:DIDS:disp16DS:disp16 Ds:BXDs:BXDS:BX+SI+disp8DS:BX+SI+disp8DS:BX+DI +disp8DS:BX+DI +disp8SS:BP+SI +disp8SS:BP+SI +disp8SS:BP+DI +disp8SS:BP+DI +disp8DS:SI +disp8DS:SI +disp8DS:DI +disp8DS:DI +disp8DS:disp16 DS:disp16 +disp8+disp8Ds:BX +disp8Ds:BX +disp8DS:BX+SI+disp16DS:BX+SI+disp16DS:BX+DI +disp1

13、6DS:BX+DI +disp16SS:BP+SI +disp16SS:BP+SI +disp16SS:BP+DI +disp16SS:BP+DI +disp16DS:SI +disp16DS:SI +disp16DS:DI +disp16DS:DI +disp16DS:disp16 DS:disp16 +disp16+disp16Ds:BX +disp16Ds:BX +disp16ALALCLCLDLDLBLBLAHAHCHCHDHDHBHBHAXAXCXCXDXDXBXBXSPSPBPBPSISIDIDI微型计算机原理及应用微型计算机原理及应用3.3 8086CPU3.3 8086CPU的

14、寻址方式的寻址方式寻址方式寻址方式寻找指令或操作数存放地址的方法。寻找指令或操作数存放地址的方法。两种寻址方式:两种寻址方式:一种是用来对一种是用来对操作数操作数进行寻址;进行寻址;另一种是用来对转移地址或调用地址进行寻址,即对另一种是用来对转移地址或调用地址进行寻址,即对指令地址指令地址进行寻址。进行寻址。微型计算机原理及应用微型计算机原理及应用内容回顾内容回顾l通用寄存器通用寄存器uAXAX 累加器累加器 (Accumulator)-(Accumulator)-AXAX常用作累加器常用作累加器uBX BX 基址寄存器基址寄存器 (Base Register)-(Base Register)

15、-BXBX用作基址寄存器用作基址寄存器uCX CX 计数寄存器计数寄存器 (Counter Register)-(Counter Register)-CXCX用作计数寄存器用作计数寄存器uDXDX 数据寄存器数据寄存器 (Data Register)-(Data Register)-DXDX用作数据寄存器用作数据寄存器l8 8个个8 8位寄存器:位寄存器:AHAH、ALAL、BHBH、BLBL、CHCH、CLCL、DHDH、DLDL1616位寄存器主要用于存放数据,也可用来存放地址。位寄存器主要用于存放数据,也可用来存放地址。8 8位寄存器只能用于存放数据。位寄存器只能用于存放数据。 微型计算

16、机原理及应用微型计算机原理及应用l专用地址寄存器专用地址寄存器1616位,用于存放地址的偏移量。位,用于存放地址的偏移量。uSP SP 堆栈指针寄存器堆栈指针寄存器 (Stack Pointer Register)(Stack Pointer Register)uBP BP 基址指针寄存器基址指针寄存器 (Base Pointer Register)(Base Pointer Register)uSISI 源变址寄存器源变址寄存器 (Source Index Register)(Source Index Register)uDI DI 目的变址寄存器目的变址寄存器 (Destination I

17、ndex Register)(Destination Index Register)lSPSP:出入堆栈(:出入堆栈(PUSHPUSH和和POPPOP)用)用SPSP给出栈顶的偏移地址。给出栈顶的偏移地址。 lBPBP:存放位于堆栈段中的一个数据区的基地址的偏移地址。:存放位于堆栈段中的一个数据区的基地址的偏移地址。lSISI:在字符串操作指令中,源操作数的偏移地址存放于:在字符串操作指令中,源操作数的偏移地址存放于SISI中。中。lDIDI:在字符串操作指令中,目的操作数的偏移地址存放于:在字符串操作指令中,目的操作数的偏移地址存放于DIDI中。中。 微型计算机原理及应用微型计算机原理及应用

18、l段寄存器段寄存器uCSCS(Code Segment) Code Segment) 代码段寄存器代码段寄存器 存放当前程序代码段的段地址(段基址),控制程序区。存放当前程序代码段的段地址(段基址),控制程序区。uDSDS(Data Segment) Data Segment) 数据段寄存器数据段寄存器 存放当前数据段的段地址,控制数据区。存放当前数据段的段地址,控制数据区。uSSSS(Stack Segment) Stack Segment) 堆栈段寄存器堆栈段寄存器 存放当前堆栈段的段地址,控制堆栈区。存放当前堆栈段的段地址,控制堆栈区。uESES(Extra Segment) Extra

19、 Segment) 附加段寄存器附加段寄存器 存放当前附加段的段地址,控制数据区。存放当前附加段的段地址,控制数据区。微型计算机原理及应用微型计算机原理及应用l标志寄存器和指令指针标志寄存器和指令指针uIPIP 指令指针指令指针 1616位位寄寄存存器器,用用来来存存放放程程序序将将要要执执行行的的下下一一条条指指令令的的地地址址偏偏移移值值,和和CSCS一一起起形形成成了了下下一一条条指指令令的的物物理理地地址址(CS:IPCS:IP),类类似似于于8 8位位CPUCPU中中中的中的PCPC。uFLAGSFLAGS 标志寄存器(程序状态字寄存器标志寄存器(程序状态字寄存器PSWPSW) 16

20、16位位寄寄存存器器,用用来来存存放放8086CPU8086CPU在在工工作作过过程程中中的的运运算算结结果果中中的的状状态态标标志位和微处理器操作的控制标志。志位和微处理器操作的控制标志。微型计算机原理及应用微型计算机原理及应用图3-6立即数寻址过程代码段代码段12123434MOV AX, 3412HMOV AX, 3412H的指令代码的指令代码3434AXAXAHAHALAL操作码操作码12123.3.13.3.1操作数的寻址方式操作数的寻址方式1 1、立即寻址、立即寻址特点:特点:指令中含有立即数,执行速度快,立即数只能是整数,且只能作为指令中含有立即数,执行速度快,立即数只能是整数,

21、且只能作为源操作数源操作数。举例:举例:MOV AX,3412HMOV AX,3412H微型计算机原理及应用微型计算机原理及应用2 2、寄存器寻址方式、寄存器寻址方式特特点点:指指令令中中含含有有寄寄存存器器操操作作数数,不不但但可可以以减减少少指指令令码码的的长长度度,而而且且由由于于操操作数已存于寄存器中,执行速度较快,用于作数已存于寄存器中,执行速度较快,用于CPUCPU内部传送数据。内部传送数据。说明:说明:寄存器既能作为源操作数,又能作为目的操作数。寄存器既能作为源操作数,又能作为目的操作数。 8 8位寄存器:位寄存器: AH AL BH BL CH CL DH DL; AH AL

22、BH BL CH CL DH DL; 16 16位寄存器:位寄存器:AX BX CX DX SI DI SP BPAX BX CX DX SI DI SP BP。 例如:例如: MOV AXMOV AX,CXCX该指令将该指令将CXCX(源操作数)的内容传送到(源操作数)的内容传送到AXAX寄存器(目的操作数)中,寄存器(目的操作数)中,其中源操作数其中源操作数CXCX,目的操作数,目的操作数AXAX都是寄存器寻址方式。都是寄存器寻址方式。微型计算机原理及应用微型计算机原理及应用3 3、存储器寻址、存储器寻址指令给出了操作数在数据区中的地址信息,据此确定存放操作数的有效地址指令给出了操作数在数

23、据区中的地址信息,据此确定存放操作数的有效地址EAEA。有效地址有效地址EAEA:可由可由指令指令直接给出;直接给出;可由可由指令指定的寄存器指令指定的寄存器间接给出;间接给出;可由可由指令指定的寄存器和一个偏移量指令指定的寄存器和一个偏移量间接给出;间接给出;可由可由指令指定的两个寄存器之和指令指定的两个寄存器之和间接给出;间接给出;可由可由指令指定的两个寄存器和一个偏移量之和指令指定的两个寄存器和一个偏移量之和间接给出;间接给出;五种不同的存储器寻址方式:五种不同的存储器寻址方式:1 1)直接寻址方式)直接寻址方式2 2)寄存器间接寻址)寄存器间接寻址3 3)寄存器相对寻址)寄存器相对寻址

24、4 4)基址加变址寻址方式)基址加变址寻址方式5 5)相对的基址和变址寻址方式)相对的基址和变址寻址方式微型计算机原理及应用微型计算机原理及应用代码段代码段操作码操作码3434数据段数据段2 0 0 02 0 0 0DSDS2000020000+7834+783427834278343434 1212AXAXMOV MOV AX,7834HAX,7834H指指令代码令代码787812123434图3-7直接寻址方式寻址过程(1 1)直接寻址方式)直接寻址方式指令直接给出操作数的有效地址存放位置。指令直接给出操作数的有效地址存放位置。例如:例如:MOV AXMOV AX,7834H7834H该该

25、指指令令将将有有效效地地址址EA=7834HEA=7834H单单元元中中的的内内容容传传送送到到AXAX寄寄存存器器中中。若若(DSDS)=2000H=2000H,则则该该指指令令源源操操作作数数的的存存储储单单元元的的物物理理地地址址为为20000H20000H7834H=27834H7834H=27834H。微型计算机原理及应用微型计算机原理及应用(2 2)寄存器间接寻址)寄存器间接寻址指令中的寄存器给出操作数存放位置的有效地址。指令中的寄存器给出操作数存放位置的有效地址。注意两点:注意两点:一是寄存器中的内容是操作数的有效地址,而不是操作数本身;一是寄存器中的内容是操作数的有效地址,而不

26、是操作数本身;二是只能用二是只能用CPUCPU中的基址寄存器中的基址寄存器BXBX、BPBP或变址寄存器或变址寄存器DIDI、SISI来间接寻址。来间接寻址。如如果果指指令令前前面面没没有有用用前前缀缀指指令令指指明明操操作作数数在在哪哪一一段段,则则通通常常默默认认段段寄寄存器为存器为BP:BP:SSSS,BX,DI,SI:,BX,DI,SI:DSDS。即:。即:物理地址物理地址=DS10H+EA=DS10H+ =DS10H+EA=DS10H+ 或或 物理地址物理地址=SS10H+BP=SS10H+BP微型计算机原理及应用微型计算机原理及应用例如:例如: MOV AXMOV AX,BXBX该

27、指令将该指令将BXBX中的内容作为有效地址,对该有效地址进行字的读操作,送入中的内容作为有效地址,对该有效地址进行字的读操作,送入AXAX中。中。注意与寄存器寻址的区别,注意与寄存器寻址的区别, 表示寄存器间接寻址。表示寄存器间接寻址。代码段代码段操作码操作码数据段数据段121234341 12 23 34 4DSDS2 24 46 68 8BXBX1234012340+2468+2468147A8147A834 1234 12AXAXMOV MOV AX,BXAX,BX指指令代码令代码图3-8 寄存器间接寻址示意图微型计算机原理及应用微型计算机原理及应用(3(3)寄存器相对寻址)寄存器相对寻

28、址指指令令中中的的寄寄存存器器和和偏偏移移量量给给出出操操作作数数存存放位置的有效地址。放位置的有效地址。物理地址物理地址=DS10H+EA= DS10H+ =DS10H+EA= DS10H+ 或或 物理地址物理地址=SS10H+BP=SS10H+BP例如:例如: MOV BXMOV BX,DI+10HDI+10H该该指指令令将将DIDI中中的的内内容容加加上上偏偏移移量量10H10H后后作作为为有有效效地地址址,对对该该有有效效地地址址进进行行字字的的读读操操作作,送入送入BXBX中。中。 微型计算机原理及应用微型计算机原理及应用代码段代码段操作码操作码2424数据段数据段262678786

29、8681 12 23 34 4DSDS2 27 73 32 2BXBX1234012340273227321B2961B29678 2678 26AXAXMOVMOVAX,BXAX,BX6824H6824H指令代码指令代码+6824+6824图3-9 寄存器相对寻址操作过程基址寻址基址寻址用用BXBX、BPBP为基址寄存器进行寻址为基址寄存器进行寻址变址寻址变址寻址用用SISI、DIDI为变址寄存器进行寻址为变址寄存器进行寻址 微型计算机原理及应用微型计算机原理及应用(4(4)基址加变址寻址方式)基址加变址寻址方式指令中的两个寄存器给出操作数存放位置的有效地址。指令中的两个寄存器给出操作数存放

30、位置的有效地址。物理地址物理地址= DS10H+EA=DS10H+ = DS10H+EA=DS10H+ 或或 物理地址物理地址= SS10H+ = SS10H+ 例如:例如:ADD AXADD AX,BX+SIBX+SI 该该指指令令将将BXBX中中的的内内容容加加上上SISI中中的的内内容容作作为为有有效效地地址址,对对该该有有效效地地址址进进行字的读操作,读取结果与行字的读操作,读取结果与AXAX中内容相加,结果送到中内容相加,结果送到AXAX中。中。微型计算机原理及应用微型计算机原理及应用+1026+1026003400341234012340代码段代码段操作码操作码数据段数据段7878

31、56561 12 23 34 4DSDS1 10 02 26 6SISI1339A1339A56 7856 78AXAXMOV AX, BXMOV AX, BXSISI指令代码指令代码0 00 03 34 4BXBX图3-10 基址加变址寻址方式操作过程微型计算机原理及应用微型计算机原理及应用(5(5)相对的基址和变址寻址方式)相对的基址和变址寻址方式指令中的两个寄存器和一个偏移量给出操作数存放位置的有效地址。指令中的两个寄存器和一个偏移量给出操作数存放位置的有效地址。物理地址物理地址=DS10H+EA=DS10H+=DS10H+EA=DS10H+或或 物理地址物理地址=SS10H + =SS

32、10H + 例如:例如:MOV AHMOV AH,BXBXSISI2468H2468H该该指指令令将将BXBX中中的的内内容容加加上上SISI中中的的内内容容加加上上偏偏移移量量2468H2468H后后作作为为有有效效地地址,对该有效地址进行字节的读操作,读取结果送到址,对该有效地址进行字节的读操作,读取结果送到AHAH中。中。微型计算机原理及应用微型计算机原理及应用MOV AH,BXMOV AH,BXSISI2468H2468H指令代码指令代码01100110010001002000020000代码段代码段操作码操作码6868数据段数据段262623232 20 00 00 0DSDS0 0

33、1 11 10 0SISI22678226782626AHAH0 01 10 00 0BXBX+2468+24682424图3-11 相对的基址和变址寻址方式操作过程过程微型计算机原理及应用微型计算机原理及应用题题 目目 1 1: 已已 知知 当当 前前 BX=1200HBX=1200H, CS=1800HCS=1800H, IP=0500HIP=0500H,DS=3000HDS=3000H,则则执执行行指指令令MOV MOV BX+2000HBX+2000H,12ABH 12ABH 后后,12ABH12ABH放在哪两个存储单元放在哪两个存储单元( (物理地址物理地址) )?答答案案:12AB

34、H12ABH放放在在33200H33200H和和33201H33201H存存储储单单元元中中。其其中中12H12H放放在在33201H33201H单元中,而单元中,而0ABH0ABH放在放在3320033200单元中。单元中。微型计算机原理及应用微型计算机原理及应用4 4、I IO O端口寻址端口寻址操作数在操作数在I IO O端口中端口中, ,指令给出操作数在指令给出操作数在I IO O端口中的端口地址信息端口中的端口地址信息: :两种编址方式:两种编址方式:与存储器统一编址方式、独立的与存储器统一编址方式、独立的I IO O空间编址方式空间编址方式l与存储器统一编址方式,上述五种存储器寻址

35、方式均可采用。与存储器统一编址方式,上述五种存储器寻址方式均可采用。l独立的独立的I IO O空间编址方式则对空间编址方式则对I IO O端口有两种寻址方式:端口有两种寻址方式:直接端口寻址方式直接端口寻址方式间接端口寻址方式间接端口寻址方式微型计算机原理及应用微型计算机原理及应用(l(l)直接端口寻址方式)直接端口寻址方式端口地址的寻址范围是端口地址的寻址范围是 0-0FFH0-0FFH,端口地址直接由指令给出。,端口地址直接由指令给出。举例:举例:IN AL,27H IN AL,27H 表示从表示从I/OI/O地址号为地址号为27H27H的端口读取数据送到的端口读取数据送到ALAL中。中。

36、注意:注意:端口地址的寻址范围。端口地址的寻址范围。27H27H不是立即数也不是直接地址,是不是立即数也不是直接地址,是端口地址端口地址,不需要加方括号。,不需要加方括号。微型计算机原理及应用微型计算机原理及应用(2(2)间接端口寻址方式)间接端口寻址方式端口地址的寻址范围是端口地址的寻址范围是0-0FFFFH0-0FFFFH,端口地址由,端口地址由DXDX寄存器寄存器给出。给出。举例:举例:OUT DX,AL OUT DX,AL 表示将表示将ALAL中的内容输出到地址由中的内容输出到地址由DXDX寄存器内容所指定的端口中。寄存器内容所指定的端口中。注意:注意:使用专用寄存器使用专用寄存器DX

37、DX,不能使用其他寄存器。,不能使用其他寄存器。操操作作数数在在指指令令中中的的表表示示形形式式,DXDX不不是是寄寄存存器器直直接接寻寻址址,是是寄寄存存器器间间接寻址接寻址,但不需要加方括号。,但不需要加方括号。微型计算机原理及应用微型计算机原理及应用+2101+2101012101211234012340代码段代码段操作码操作码操作码操作码010121211 12 23 34 4CSCS1456214562段内直接转移段内直接转移指令代码指令代码0 01 12 21 1IPIP目标指令代码目标指令代码图3-12段内直接寻址方式过程3.3.2 3.3.2 指令地址的寻址方式指令地址的寻址方

38、式指令地址的寻址方式以下指令地址的寻址方式以下4 4种:种:(1) (1) 段内直接寻址方式段内直接寻址方式转移的指令地址是由转移的指令地址是由当前的当前的IPIP内容和指令中规定的内容和指令中规定的8 8位或位或1616位偏移量之和位偏移量之和给出。给出。微型计算机原理及应用微型计算机原理及应用代码段代码段操作码操作码操作码操作码数据寻数据寻址方式址方式CSCS段内间接转段内间接转移指令代码移指令代码根据数据寻址根据数据寻址方式计算方式计算EAEAIPIP目标指目标指令代码令代码图3-13段内间接寻址方式过程(2) (2) 段内间接寻址方式段内间接寻址方式转移的指令地址是由用转移的指令地址是

39、由用寄存器或一个字存储单元的内容寄存器或一个字存储单元的内容给出。给出。指令执行时用寄存器或存储单元的内容更新指令执行时用寄存器或存储单元的内容更新IPIP。微型计算机原理及应用微型计算机原理及应用34123412+78560+78560代码段代码段操作码操作码操作码操作码121234347 8 5 67 8 5 6CSCS7B9727B972段间直接段间直接转移代码转移代码3 4 1 23 4 1 2IPIP目标指目标指令代码令代码56567878图3-14段间直接寻址过程(3) (3) 段间直接寻址方式段间直接寻址方式转移的指令地址是由转移的指令地址是由指令码字节指令码字节直接给出。直接给

40、出。指令码中指令码中的的1616位段地址和位段地址和1616位地址分别更新位地址分别更新CSCS和和IPIP。微型计算机原理及应用微型计算机原理及应用图3-15段间间接寻址方式过程代码段代码段操作码操作码操作码操作码数据寻数据寻址方式址方式段间间接转段间间接转移指令代码移指令代码目标指目标指令代码令代码DSDSCSCSIPIP数据段数据段1212343456567878根据数据寻址根据数据寻址方式计算方式计算EAEA(4) (4) 段间间接寻址方式段间间接寻址方式转移的指令地址由一个转移的指令地址由一个双字存储单元的内容双字存储单元的内容给出。给出。指指令令地地址址存存放放在在存存储储单单元元

41、中中,低低位位字字地地址址单单元元中中存存放放的的是是偏偏移移地地址址,高高位字地址单元中存放的是位字地址单元中存放的是转移段地址转移段地址, ,分别用于更新分别用于更新IPIP和和CSCS。微型计算机原理及应用微型计算机原理及应用3.4 80863.4 8086指令系统指令系统指令系统按功能可分为指令系统按功能可分为6 6类:类: 数据传送类指令;数据传送类指令; 算术运算类指令;算术运算类指令; 逻辑运算与移位类指令;逻辑运算与移位类指令; 字符串指令;字符串指令; 控制转移类指令;控制转移类指令; 处理器控制类指令。处理器控制类指令。微型计算机原理及应用微型计算机原理及应用3.4.13.

42、4.1数据传送类指令数据传送类指令分为分为4 4种:种: 通用数据传送指令通用数据传送指令 累加器专用传送指令累加器专用传送指令 地址传送指令地址传送指令 标志传送指令。标志传送指令。微型计算机原理及应用微型计算机原理及应用通用数据传送指令有以下五条通用数据传送指令有以下五条MOVMOV 把源操作数传送到目的操作数把源操作数传送到目的操作数PUSHPUSH指针上移,源操作数进栈指针上移,源操作数进栈POPPOP 出栈到目的操作数,指针下移出栈到目的操作数,指针下移XCHGXCHG交换源,目的操作数交换源,目的操作数XLATXLAT代码转换代码转换 微型计算机原理及应用微型计算机原理及应用1 1

43、通用数据传送指令通用数据传送指令(1(1)最基本的传送指令)最基本的传送指令格式:格式:MOV MOV 目的操作数,源操作数目的操作数,源操作数功能:功能:把一个字节或字的源操作数送到目标操作数所在的单元。把一个字节或字的源操作数送到目标操作数所在的单元。举例:举例: MOV BLMOV BL,AL AL MOV DSMOV DS,AXAX MOV DLMOV DL,DIDI MOV MOV BXBX,AX AX MOV DXMOV DX,1000 1000 MOV BHMOV BH,120120 MOV DXMOV DX,1234H1234H微型计算机原理及应用微型计算机原理及应用注意:注意

44、:数据传送实质上是数据传送实质上是复制复制,对源操作数无影响。,对源操作数无影响。 源源操操作作数数和和目目的的操操作作数数之之间间的的位位数数必必须须一一致致 ,即即同同时时为为字字或或字字节节。1616位数据的传送遵循地址位数据的传送遵循地址“高对高,低对低高对高,低对低”的原则。的原则。立立即即数数、CSCS、IPIP不不能能为为目目的的操操作作数数,立立即即数数和和CSCS只只能能出出现现在在源源操操作作数位置。数位置。源源操操作作数数和和目目的的操操作作数数不不能能同同时时为为存存储储器器操操作作数数;两两个个存存储储单单元元之之间间不不能能用用一一条条MOVMOV指指令令直直接接完

45、完成成数数据据传传送送。存存储储器器操操作作数数可可用用任任何何一种存储器寻址方式。一种存储器寻址方式。立立即即数数不不能能直直接接传传给给段段寄寄存存器器;段段寄寄存存器器之之间间也也不不能能进进行行直直接接传传送送。( (这这2 2种情况通常要通过通用寄存器间接进行种情况通常要通过通用寄存器间接进行) )。用用BPBP进行间接寻址时默认段寄存器为进行间接寻址时默认段寄存器为SSSS,其他为,其他为DSDS。 通用传送指令通用传送指令不改变标志。不改变标志。 修改修改SSSS和和BPBP的两条指令中间必须连续,不插入其他任何指令。的两条指令中间必须连续,不插入其他任何指令。微型计算机原理及应

46、用微型计算机原理及应用立即数立即数存存储储器器通用寄存器通用寄存器AXBX CX DXBP SP SI DI段寄存器段寄存器CSCS DS ES SSMOV MOV 指令数据传送通道指令数据传送通道IPIP微型计算机原理及应用微型计算机原理及应用指令辩误:指令辩误: MOV AL, CX MOV AL, CX MOV 3000H, BX MOV 3000H, BX MOV AL, 1200H MOV AL, 1200H MOV CS, BX MOV CS, BX MOV DS, 1200H MOV DS, 1200H MOV ES, DS MOV ES, DS 微型计算机原理及应用微型计算机原

47、理及应用练习练习题目1:已知当前BX=1200H,CS=1800H,IP=0500H,DS=3000H,则执行指令MOV BX+2000H,12ABH 后,12ABH放在哪两个存储单元(物理地址)?答案:答案:12ABH12ABH放在放在33200H33200H和和33201H33201H存储单元中。其中存储单元中。其中12H12H放在放在33201H33201H单元单元中,而中,而0ABH0ABH放在放在3320033200单元中。单元中。题目2:将DS段中2000H单元与3000H单元的内容互换,请写出指令序列。MOV ALMOV AL,2000H2000HMOV BL, 3000HMOV

48、 BL, 3000HMOV 2000H, BLMOV 2000H, BLMOV 3000H, ALMOV 3000H, AL微型计算机原理及应用微型计算机原理及应用(2(2)堆栈操作指令)堆栈操作指令堆堆栈栈:是是一一种种数数据据结结构构,是是在在内内存存中中开开辟辟了了一一个个比比较较特特殊殊的的存存储储区区,这这个个区域中数据的存取采用区域中数据的存取采用“后进先出后进先出”的原则。的原则。堆栈段:堆栈段:8086CPU8086CPU在存储器分段管理时,划分了一个专门的堆栈在存储器分段管理时,划分了一个专门的堆栈区。区。微型计算机原理及应用微型计算机原理及应用10001000SSSS001

49、80018SPSP60605050404030302020101010018100181001A1001A栈顶栈顶栈底栈底10001000SSSS00160016SPSP606050504040303020201010ABABCDCD10018100181001A1001A栈顶栈顶栈底栈底10001000SSSS001A001ASPSP40403030202010101001A1001A栈顶栈顶栈底栈底1001610016图3.16 8086系统椎栈及其操作( (a)a)堆栈原始状态堆栈原始状态 ( (b)b)执行执行push AX (c)push AX (c)执行执行POP AXPOP AX

50、 ( (AX)=CDABH AX)=CDABH POP BX POP BX后的状态后的状态(a) (b) (c)(a) (b) (c)微型计算机原理及应用微型计算机原理及应用格式格式: :PUSH PUSH 源操作数源操作数 (SP)(SP)-2, (SP)+1,(SP)(SRC)(SP)(SP)-2, (SP)+1,(SP)(SRC) POP POP 目的操作数目的操作数 (DST)(SP)+1,(SP),(SP)(SP)+2(DST)(SP)+1,(SP),(SP)(SP)+2功能:功能:堆栈指针SP减2后,把一个字的源操作数传送到目的操作数所在的单元。把SP指出的栈顶中的一个字传送到目标

51、操作数所在的单元,然后加2。举例:举例: PUSH BX PUSH BX PUSH ES PUSH ES PUSH DS PUSH DS PUSH SI PUSH SI POP AX POP AX POP BX POP BX PUSH DI PUSH DI 微型计算机原理及应用微型计算机原理及应用注意:注意:操作数一律为操作数一律为1616位操作数,位操作数,字操作字操作。与各标志位无关,与各标志位无关,不影不影响标志位响标志位。PUSHPUSH时:时:SP-2SP-2,入栈,入栈;POPPOP时:时:出栈,出栈,SP+2SP+2。可可以以使使用用除除立立即即数数以以外外的的任任何何数数据据寻

52、寻址址方方式式,源源操操作作数数和和目目的的操操作作数数可以是可以是寄存器寄存器和和存储器。存储器。允允许许使使用用段段寄寄存存器器,CSCS只只能能做做源源操操作作数数,即即PUSH PUSH CSCS,但但不不能能做做目目的的操作数,即操作数,即POPPOP操作数不允许为操作数不允许为CSCS。 先进后出的顺序,即:先进后出的顺序,即: PUSH AXPUSH AX PUSH BX PUSH BX POP BXPOP BX POP AX POP AX微型计算机原理及应用微型计算机原理及应用(3 3)交换指令)交换指令格式:格式:XCHG XCHG 目的操作数,源操作数目的操作数,源操作数功

53、能:功能:实现源操作数与目的操作数之间进行直接交换进行直接交换。注意:注意:交换指令XCHG可以实现字节交换,也可以实现字交换。目的操作数和源操作数都是双重角色,需要遵守MOV指令的所有规定。段寄存器不能作为XCHG的操作数。举例:举例: XCHG AHXCHG AH,BL BL XCHG 12H,34 XCHG 12H,34 XCHG DXXCHG DX,BX BX XCHG AX,CS XCHG AX,CS XCHG XCHG 505H505H,AX AX XCHG BX,1234H XCHG BX,1234H 通用寄存器AX BX CX DXBP SP SI DI 存储器 XCHGXCH

54、G指令的数据交换通路指令的数据交换通路微型计算机原理及应用微型计算机原理及应用2 2累加器专用传送指令累加器专用传送指令累加器是累加器是8086CPU8086CPU进行数据传输的核心。进行数据传输的核心。有两类指令:有两类指令:输入输出指令输入输出指令换码指令换码指令(1(1)输入输出指令)输入输出指令工业控制中常用的指令工业控制中常用的指令格式:格式:IN ACIN AC,源操作数,源操作数 OUT OUT 目的操作数,目的操作数,ACAC功功能能:ININ指指令令是是将将数数据据从从一一个个输输入入端端口口传传送送到到累累加加器器中中,OUTOUT指指令令是是将数据从累加器送到一个输出端口

55、中。将数据从累加器送到一个输出端口中。微型计算机原理及应用微型计算机原理及应用举例:举例:IN AL,PORT-IN AL,20HIN AL,PORT-IN AL,20H把来自端口把来自端口PORTPORT的一个字节送入的一个字节送入ALAL寄存器中寄存器中IN AX,PORTIN AX,PORT把来自把来自PORTPORT和和PORT +1PORT +1两个端口的数据构成一个字送入两个端口的数据构成一个字送入AXAX寄存器中寄存器中OUT PORT,AL-OUT DX,ALOUT PORT,AL-OUT DX,AL 把把ALAL寄存器中的一个字节送入端口寄存器中的一个字节送入端口PORTPO

56、RTOUT PORT,AX OUT PORT,AX 把把AXAX寄存器中的一个字送入寄存器中的一个字送入PORTPORT和和PORT+1PORT+1两个端口两个端口注意:注意:可实现字节和字的传送,必须用累加器。可实现字节和字的传送,必须用累加器。 (IN BL,20H (IN BL,20H ) ) 直接端口寻址范围直接端口寻址范围0-2550-255。 (OUT 378H,AL (OUT 378H,AL ) ) 间接端口是间接端口是0-65536,0-65536,但只能使用但只能使用DXDX寄存器间接寻址寄存器间接寻址, ,并且注意不加并且注意不加。(OUT BX,AL (OUT BX,AL

57、 ) (IN AX,DX ) (IN AX,DX ) )微型计算机原理及应用微型计算机原理及应用(2(2)换码指令)换码指令该指令用来将一个代码值转换成相应的另一种代码值,该指令用来将一个代码值转换成相应的另一种代码值,格式:格式: XLATXLAT功功能能:将将BXBX的的内内容容和和ALAL的的内内容容相相加加作作为为有有效效地地址址EAEA,在在一一个个表表格格中中找找出出此此单单元中的内容并传送至元中的内容并传送至ALAL中。中。其其功功能能是是从从转转换换表表中中找找出出一一个个字字节节的的内内容容,用用其其取取代代ALAL寄寄存存器器的的内内容容。转转换换表表由由用用户户设设计计,

58、最最长长为为256256个个字字节节,换换码码时时,应应将将代代码码表表首首地地址址保保存存在在BXBX中中,ALAL中中保保存存待待查查字字节节序序号号(即即代代码码表表中中字字符符序序号号),换换码码后后,ALAL取得对应的码值。取得对应的码值。注意:注意: XLATXLAT应用时,首先对应列出代码的对应表格。应用时,首先对应列出代码的对应表格。 使使用用本本指指令令之之前前,要要求求BXBX寄寄存存器器指指向向表表首首址址,ALAL的的内内容容为为表表中中某某项项与与首地址之间的偏移量首地址之间的偏移量。微型计算机原理及应用微型计算机原理及应用代码段代码段D7D77979数据段数据段40

59、4078780 03 30 00 0BXBX07070300030080307803070 70 7ALALXLATXLAT指令代码指令代码+80000+800008 80 00 00 0DSDS803008030080301803018030780307图3-17XLAT指令执行过程微型计算机原理及应用微型计算机原理及应用例:例:假设用户设计转换表假设用户设计转换表TABLETABLE如下图所示,如下图所示,如需要查找表中第如需要查找表中第8 8个单元的内容,则可以个单元的内容,则可以使用指令序列:使用指令序列:MOVMOVAXAX,SEGSEGTABLETABLEMOVMOVDSDS,AX

60、AXMOVMOVBXBX,OFFSETOFFSETTABLETABLEMOVMOVALAL,07H07HXLATXLATTABLE+1+2+3+4+5+6+7+800H01H04H09H0FH19H24H31H40H微型计算机原理及应用微型计算机原理及应用3 3地址传送指令地址传送指令它包括它包括3 3条指令:条指令:LEALEA、LDSLDS、LESLES格式:格式:LEA LEA 寄存器,源操作数寄存器,源操作数功能:功能:将源操作数的有效地址(16位偏移地址)送到指定寄存器中。说明:说明:SRC必须是存储器操作数。DEST一定是一个16位通用寄存器,而不能是8位的寄存器或段寄存器。编程时

61、,程序员不必了解数据或指令的有效地址,但有时这些地址会在程序其它部分用到, 这时可以使用LEA指令。举例:举例: LEA AXLEA AX,DI+1000 DI+1000 LEA AX LEA AX,3721H3721H微型计算机原理及应用微型计算机原理及应用格式:格式:LDS/ LES LDS/ LES 寄存器,源操作数寄存器,源操作数功功能能:把源操作数SRC指出的存储单元的4个存储单元取出,低地址的两字节送目的操作数,高地址的两字节送DS/ES段寄存器。 或或者者:把把源源操操作作数数SRCSRC指指出出的的存存储储单单元元的的字字单单元元数数据据送送目目的的操操作作数数,下下一一个个字

62、单元数据字单元数据DS/ESDS/ES段寄存器。段寄存器。 说明:说明:SRC一定是存储器操作数。本指令用于同时建立段地址和段内偏移地址。举例:举例: LDS SILDS SI,2130H2130H LES DI LES DI,SISI 微型计算机原理及应用微型计算机原理及应用注意:注意:指令对标志无影响源操作数必须是源操作数必须是存储器寻址方式存储器寻址方式注意注意LEALEA与与MOVMOV的区别的区别LDSLDS与与LESLES微型计算机原理及应用微型计算机原理及应用代码段代码段C5C57878数据段数据段5656000020201 10 00 00 0DSDS初值初值+2130+213

63、012130121307 8 5 67 8 5 6SISILDS SI, 2130HLDS SI, 2130H指令代码指令代码363621213030 10000 10000图图3 3- -1818LDSLDS指令执行过程指令执行过程2 20 00 00 0DSDS终值终值微型计算机原理及应用微型计算机原理及应用4 4标志传送指令标志传送指令(用于保存和恢复PSW)标志传送指令包括标志传送指令包括4 4条指令条指令: : 标志读取指令标志读取指令LAHFLAHF功能:功能:将标志位寄存器中的低8位传送到AH中 标志设置指令标志设置指令SAHFSAHF功能:功能:将AH寄存器的相应位传送到标志寄

64、存器低8位。 标志寄存器压入堆栈指令标志寄存器压入堆栈指令PUSHFPUSHF功功能能:将标志寄存器的值推入堆栈顶部,同时,栈指针SP的值减2,此指令在执行时标志寄存器的值不变。 标志寄存器从堆栈弹出指令标志寄存器从堆栈弹出指令POPFPOPF功功能能:在执行时从堆栈中弹出一个字送到标志寄存器中,同时堆栈指针SP的值加2。PUSHFPUSHF和和POPFPOPF指指令令一一般般用用在在子子程程序序和和中中断断处处理理程程序序的的首首尾尾,起起保保存存主程序标志和恢复主程序标志的作用。主程序标志和恢复主程序标志的作用。 微型计算机原理及应用微型计算机原理及应用说明:说明:LAHFLAHF指令指令

65、对对F F本身无影响本身无影响。SAHFSAHF指令指令对对F F高高8 8位无影响位无影响,对,对F F低低8 8位的影响要看位的影响要看AHAH的内容。的内容。LAHFLAHF和和SAHFSAHF仅传送仅传送SF ZF AF PF CFSF ZF AF PF CF这这5 5个。个。PUSHFPUSHF指令指令对对F F本身无影响本身无影响。POPFPOPF指令对指令对F F的影响由的影响由栈顶内容栈顶内容决定。决定。执行执行PUSHFPUSHF指令,堆栈指针自动指令,堆栈指针自动-2-2;执行;执行POPFPOPF指令,堆栈指针自动指令,堆栈指针自动+2+2。标志寄存器和通用寄存器之间标志

66、寄存器和通用寄存器之间没有直接传送指令没有直接传送指令。FlagsFlags中中各各标标志志位位的的值值只只有有少少数数几几个个能能通通过过别别的的指指令令去去设设置置,其其余余的的只只能通过上述能通过上述4 4条指令去设置。条指令去设置。微型计算机原理及应用微型计算机原理及应用举例:举例: PUSHFPUSHF POP BXPOP BX PUSH CXPUSH CX POPFPOPF OF DF IF TF SF ZF AF OF DF IF TF SF ZF AF PF CFPF CF15 15 11 10 9 8 7 6 5 4 3 2 1 011 10 9 8 7 6 5 4 3 2

67、1 0FLAGSFLAGSLAHFLAHFSAHFSAHFAHAH图3-19 LAHF和SAHF指令传送操作微型计算机原理及应用微型计算机原理及应用举例:举例:欲将F中的进位标志和奇偶标志都设置为1,请写出指令序列。MOVMOVMOVMOVAHAHAHAH,05H05H05H05HSAHFSAHFSAHFSAHF欲将F的内容传送到AX中,请写出指令序列。PUSHFPUSHFPUSHFPUSHFPOP AXPOP AXPOP AXPOP AX微型计算机原理及应用微型计算机原理及应用算术运算类指令一览表算术运算类指令一览表指令类型指令类型指令指令指令功能指令功能加法加法SUB d, sSUB d,

68、 sSBB d, sSBB d, sDEC dDEC dNEG dNEG dCMP d, sCMP d, s加法加法 (d d)(d)+(s)(d)+(s)带进位加法带进位加法 (d d)(d)+(s)+CF(d)+(s)+CF加加1 1 (d d)(d)+1(d)+1减法减法ADD d, sADD d, sADC d, sADC d, sINC dINC d减法减法 (d d)(d)-(s)(d)-(s)带借位减法带借位减法 (d d)(d)-(s)-CF(d)-(s)-CF减减1 1 (d d) (d)-1(d)-1取负(求补)(取负(求补)(d d) 0-(d)0-(d)比较比较 (d

69、d)-(s)-(s)乘法乘法MUL sMUL sIMUL sIMUL s无符号数乘法无符号数乘法带符号数乘法带符号数乘法字节:字节:(AX) (AX) (AL)*(s)(AL)*(s)字:字:(DX:AX) (DX:AX) (AX)*(s)(AX)*(s)微型计算机原理及应用微型计算机原理及应用算术运算类指令一览表算术运算类指令一览表 ( ( 续续 ) )指令类型指令类型指令指令指令功能指令功能除除 法法DIV sDIV sIDIV sIDIV sCBWCBWCWDCWD无符号数除法无符号数除法带符号数除法带符号数除法字节扩展成字字节扩展成字字扩展成双字字扩展成双字字节:字节:(AL) (AL

70、) (AX)/(s)(AX)/(s)的商的商 (AH) (AH) (AX)/(s)(AX)/(s)余数余数字:字: (AX)(AX) (DX:AX ) (DX:AX ) /(s)/(s)的商的商 (DX)(DX) (DX:AX ) (DX:AX ) /(s)/(s)余数余数ALAL的符号位扩展至的符号位扩展至AHAHAXAX的符号位扩展至的符号位扩展至DXDX十进制十进制调整调整AAAAAADAADAAAASAASDASDASAAMAAMAADAAD加法分离加法分离BCD码调整码调整加法组合加法组合BCD码调整码调整减法分离减法分离BCD码调整码调整减法组合减法组合BCD码调整码调整乘法分离乘

71、法分离BCD码调整码调整减法分离减法分离BCD码调整码调整微型计算机原理及应用微型计算机原理及应用3.4.2 3.4.2 算术运算类指令算术运算类指令1 1加法指令加法指令格式:格式:ADD ADD 目的操作数,源操作数目的操作数,源操作数 (DST)(DST)+(SRC) ADC ADC 目的操作数,源操作数目的操作数,源操作数 (DST) (DST)+(SRC)+CF INC INC 目的操作数目的操作数 (DST)(DST)+1微型计算机原理及应用微型计算机原理及应用注意:注意:相加操作后相加操作后源操作数不变源操作数不变。可进行可进行8 8位或者位或者1616位的加法,但位的加法,但d

72、estdest与与srcsrc长度要相同长度要相同。srcsrc可以为可以为通用寄存器、存储器或立即数通用寄存器、存储器或立即数。destdest可以是通用寄存器或存储器,但可以是通用寄存器或存储器,但不能是立即数、不能是立即数、CSCS、IPIP 。srcsrc 和和destdest不能同时使用段寄存器不能同时使用段寄存器。srcsrc 和和destdest不能同时为存储器操作数不能同时为存储器操作数。相加指令相加指令ADDADD与与ADCADC影响标志位影响标志位OFOF、SFSF、ZFZF、AFAF、PFPF、CFCF。加一指令加一指令INCINC影响影响AFAF、OFOF、PFPF、S

73、FSF、ZFZF,但是,但是不影响不影响CFCF。 ADCADC指令用于指令用于多字节加法运算多字节加法运算。微型计算机原理及应用微型计算机原理及应用举例:举例: ADD BLADD BL,15H 15H ADD BXADD BX,SI SI ADC CXADC CX,BX BX INC DXINC DX 错误的指令:错误的指令: ADD AX,BL ADD DATA1,DATA2 ADD CS,DX 微型计算机原理及应用微型计算机原理及应用2 2减法指令减法指令格式:格式:SUB SUB 目的操作数,源操作数目的操作数,源操作数 (DST)(DST)-(SRC) SBB SBB 目的操作数,

74、源操作数目的操作数,源操作数 (DST)(DST)-(SRC)-CF DEC DEC 目的操作数目的操作数 (DST)(DST)-1 NEG NEG 目的操作数目的操作数 (DST)0-(DST) CMP CMP 目的操作数,源操作数目的操作数,源操作数 (DST)-(SRC)举例:举例: SUB AXSUB AX,BX BX SUB AHSUB AH,110110 SBBSBBBXBX,AXAX DEC BXDEC BX微型计算机原理及应用微型计算机原理及应用注意:注意:SUBSUB、SBBSBB目的操作数不能是立即数、目的操作数不能是立即数、CSCS、IPIP。SBBSBB用于多字节减法运

75、算。用于多字节减法运算。SUBSUB、SBBSBB、NEGNEG、CMPCMP影响影响OFOF、SFSF、ZFZF、AFAF、CFCF、PFPF。DECDEC影响影响AFAF、OFOF、PFPF、SFSF、ZFZF,但不影响,但不影响CFCF。NEGNEG相当于用相当于用0 0减去目的操作数。减去目的操作数。CMPCMP结果影响标志位,不送回相减结果。结果影响标志位,不送回相减结果。微型计算机原理及应用微型计算机原理及应用3 3乘法指令乘法指令(1)(1)无符号数的乘法指令无符号数的乘法指令(2)(2)格式:格式:MUL MUL 源操作数源操作数 ;AX(AL)(srcAX(AL)(src)

76、() (字节乘法字节乘法) ),(3)(3) DX:AX(AX)(src)(DX:AX(AX)(src)(字乘法字乘法) )功功能能:将将ALAL(8 8位位)或或AXAX(1616位位)中中的的数数据据与与源源操操作作数数相相乘乘,结结果果放放在在AXAX或或DXDX与与AXAX两寄存器中。两寄存器中。举例:举例:MUL BL MUL BL ;ALAL中的中的8 8位数和位数和BLBL中的中的8 8位数相乘,结果在位数相乘,结果在AXAX中中 (2) (2) 有符号数的乘法指令有符号数的乘法指令格式:格式:IMUL IMUL 源操作数源操作数 ;AX(src)(ALAX(src)(AL) (

77、) (字节乘法字节乘法) ), DX:AX(src)(AX)(DX:AX(src)(AX)(字乘法字乘法) )功能:功能:功能和形式上与功能和形式上与MULMUL类似,只是要求两个乘数必须为有符号数。类似,只是要求两个乘数必须为有符号数。举例:举例:IMUL BX IMUL BX ;AXAX和和BXBX中的两个中的两个1616位有符号数相乘,结果在位有符号数相乘,结果在DXDX和和AXAX中中微型计算机原理及应用微型计算机原理及应用ALAL操作数操作数乘积乘积 AHAH ALALAXAX操作数操作数乘积乘积DX DX AXAX(a) (b)(a) (b)图3-20乘法运算操作数及其运算结果间关

78、系(a)(a)字节操作数字节操作数 (b)(b)字操作数字操作数微型计算机原理及应用微型计算机原理及应用注意:注意:源操作数作为一个乘数,另一个源操作数作为一个乘数,另一个ALAL或或AXAX隐含给出。隐含给出。存放结果隐含给出存放结果隐含给出, ,AXAX或或DX,AXDX,AX。乘乘法法运运算算指指令令MULMUL和和IMULIMUL在在执执行行时时,影影响响CFCF和和OFOF,即即乘乘积积的的高高半半部部分分不不为为0 0,则则标标志志位位位位CFCF和和OFOF均均置置为为1 1,表表示示AHAH及及DXDX中中有有乘乘积积的的有有效效数数字字,否否则则,CFCF、OFOF均均置置为

79、为0 0,但但是是AF AF PF PF SF SF ZFZF是不确定的,因此这是不确定的,因此这4 4标志位无意义。标志位无意义。微型计算机原理及应用微型计算机原理及应用4 4除法指令除法指令(1 1)无符号数的除法指令)无符号数的除法指令格式:格式:DIV DIV 源操作数源操作数;AL(AX)/(src)AL(AX)/(src)的商,的商,AH(AX)/(src)AH(AX)/(src)的余数的余数 AX(DX:AX)/(src) AX(DX:AX)/(src)的商,的商,DX(DX:AX)/(src)DX(DX:AX)/(src)余数余数功功能能:把把AXAX(或或DXDX,AXAX)

80、中中的的被被除除数数除除以以8 8位位(或或1616位位)源源操操作作数数,商数放在商数放在AL(AL(或或AX)AX),余数放在,余数放在AH(AH(或或DX)DX)中。中。举例:举例:DIV CL DIV CL ;AXAX中的数据除以中的数据除以CLCL中的数据,商在中的数据,商在ALAL中,余数在中,余数在AHAH中中微型计算机原理及应用微型计算机原理及应用(2) 有符号数的除法指令格式:格式:IDIV IDIV 源操作数源操作数;AL(AX)/(src)AL(AX)/(src)的商的商,AH(AX)/(src),AH(AX)/(src)的余数的余数 AX(DX:AX)/(src) AX

81、(DX:AX)/(src)的商的商,DX(DX:AX)/(src),DX(DX:AX)/(src)余数余数功能:功能:与DIV相似,不同的是除数,被除数,商和余数都是带符号数。举例:举例:IDIV BX;将将DXDX和和AXAX中的中的3232位数除以位数除以BXBX中的中的1616位数,运算后,商在位数,运算后,商在AXAX中,余数在中,余数在DXDX中中 说明:说明:除法运算时,要求用除法运算时,要求用1616位数除以位数除以8 8位数,或者用位数,或者用3232位数除以位数除以1616位数,位数,当被除数只有当被除数只有8 8位时,必须将此位时,必须将此8 8位数据放在位数据放在ALAL

82、中,并对高中,并对高8 8位位AHAH进行扩展。进行扩展。同样,当被除数只有同样,当被除数只有1616位,而除数也为位,而除数也为1616位时,必须将位时,必须将1616位被除数放在位被除数放在AXAX中,并对高中,并对高1616位位DXDX进行扩展。进行扩展。 微型计算机原理及应用微型计算机原理及应用注意:注意:除法指令中,源操作数作为除数,被除数隐含给出。除法指令中,源操作数作为除数,被除数隐含给出。除法运算后,除法运算后,6 6个状态标志不确定个状态标志不确定,无意义。,无意义。除除法法运运算算的的溢溢出出问问题题,如如源源操操作作数数除除数数是是8 8位位,则则商商在在02550255

83、(-128127-128127),如如源源操操作作数数除除数数是是1616位位,则则商商在在065535065535(- -32768+3276732768+32767),超出此范围,产生),超出此范围,产生0 0号中断。号中断。IDIVIDIV指指令令规规定定余余数数的的符符号号和和被被除除数数的的符符号号相相同同,如如-51-51除除以以9 9,可以得到商为可以得到商为-5-5,余数为,余数为-6-6。微型计算机原理及应用微型计算机原理及应用(3) (3) 将字节扩展成字的指令将字节扩展成字的指令格式:格式:CBW CBW 功能:功能:将将ALAL寄存器中的符号位扩展到寄存器中的符号位扩展

84、到AHAH中。中。即即(AL)(AL)80H80H,则,则(AH)=00H(AH)=00H,否则,否则(AH)=FFH(AH)=FFH(4) (4) 将字扩展成双字的指令将字扩展成双字的指令格式:格式:CWDCWD功能:功能:用用CWDCWD指令将指令将AXAX中的被除数扩展成双字。中的被除数扩展成双字。即(即(AXAX)8000H,SPSP。微型计算机原理及应用微型计算机原理及应用举例:举例: CALL 200HCALL 200H CALL BXCALL BX CALL 500HCALL 500H:600H600H CALL DWORD PTR BXCALL DWORD PTR BX RET

85、 4 RET 4 注意:注意:执行执行CALLCALL指令时,指令时,CPUCPU会自动保存断点地址。会自动保存断点地址。带参数的返回指令可以是带参数的返回指令可以是0FFFFH0FFFFH范围中的任何一个范围中的任何一个1616位偶数。位偶数。微型计算机原理及应用微型计算机原理及应用主程序主程序MOV AL,3AHMOV AL,3AHCALL PROGCALL PROGMOV BX,AXMOV BX,AXCALL PROGCALL PROGMOV DX,AXMOV DX,AX子程序子程序PROG:MOV BL,ALPROG:MOV BL,AL RETRET图3-24 调用子程序的过程微型计算

86、机原理及应用微型计算机原理及应用5 5中断指令中断指令1 1)中断调用指令(软件中断指令)中断调用指令(软件中断指令)格式格式: : INT n INT n 说说明明:(n=0n=0255255)n n 为为中中断断类类型型码码(中中断断号号);每每一一个个中中断断号号都都对对应应一一个个中中断断服服务务程程序序。CPUCPU执执行行该该指指令令时时,首首先先将将标标志志寄寄存存器器的的内内容容以以及及INT INT n n指指令令的的断断点点地地址址(其其段段地地址址和和有有效效地地址址)6 6元元素素入入栈栈,然后转入系统然后转入系统N N型中断服务程序。型中断服务程序。2 2)中断返回指

87、令)中断返回指令格式:格式:IRETIRET功功能能:该该指指令令为为中中断断服服务务程程序序的的返返回回指指令令,CPUCPU执执行行该该指指令令时时,依依次次从从栈顶弹出栈顶弹出6 6个元素送个元素送IPIP,CSCS,FLAGSFLAGS,返回调用程序断点。,返回调用程序断点。微型计算机原理及应用微型计算机原理及应用3.4.6 3.4.6 处理器控制类指令处理器控制类指令1 1标志操作指令标志操作指令格式:格式: STCSTC(进位标志置位,置CF=1) CLCCLC(清除进位标志,置CF=0) CMCCMC(进位标志取反,CF取反) STDSTD(方向标志置位,置DF=1,串操作时从高

88、地址到低地址) CLD CLD(清除方向标志,置DF=0,串操作时从低地址到高地址) STISTI(中断标志置位,置IF=1) CLICLI(清除中断标志,置IF=0)微型计算机原理及应用微型计算机原理及应用2 28086CPU8086CPU与外部事件同步指令与外部事件同步指令指令格式:指令格式:HLT HLT (暂停指令)暂停指令) WAITWAIT(等待指令)(等待指令) ESC ESC (交权指令)(交权指令) LOCKLOCK(封锁总线指令)(封锁总线指令)注意:注意:lHLTHLT使使CSCS和和IPIP指向指向HLTHLT下一条指令的地址而进入暂停状态;下一条指令的地址而进入暂停状

89、态;lWAITWAIT使使CPUCPU处于空闲状态,知道处于空闲状态,知道TESTTEST信号的信号变低为止;信号的信号变低为止;lESCESC是交权指令;是交权指令;lLOCKLOCK是封锁总线指令。是封锁总线指令。3 3空操作指令空操作指令指令格式:指令格式:NOPNOP(空操作指令空操作指令)注注意意:占占三三个个时时钟钟周周期期,不不做做任任何何操操作作,不不影影响响标标志志寄寄存存器器,延延时时程程序中用到。序中用到。微型计算机原理及应用微型计算机原理及应用3.5 80X863.5 80X86的寻址方式及新增的指令的寻址方式及新增的指令3.5.1 3.5.1 虚地址方式下的寻址方式虚

90、地址方式下的寻址方式1 1立即数寻址方式立即数寻址方式例如:例如:MOV EAXMOV EAX,12345678H12345678H2 2寄存器寻址方式寄存器寻址方式例如:例如:MOV EAXMOV EAX,ECX ECX 微型计算机原理及应用微型计算机原理及应用3 3存储器寻址方式存储器寻址方式偏移量可以由下列公式计算得到:偏移量可以由下列公式计算得到: EAEA基址十变址基址十变址比例因子十位移量比例因子十位移量基址基址任何通用寄存器都可作为基址寄存器,其内容即为基址。任何通用寄存器都可作为基址寄存器,其内容即为基址。位移量位移量在指令操作码后面的在指令操作码后面的3232位、位、1616

91、位或位或8 8位的数。位的数。变变址址除除了了ESPESP寄寄存存器器外外,任任何何通通用用寄寄存存器器都都可可以以作作为为变变址址寄寄存存器器,其内容即为变址值。其内容即为变址值。比比例例因因子子变变址址寄寄存存器器的的值值可可以以乘乘以以一一个个比比例例因因子子,比比例例因因子子可可以以是是1 1,2 2,4 4或或8 8。微型计算机原理及应用微型计算机原理及应用属性属性CSCS段界限值段界限值段基地址段基地址属性属性DSDS段界限值段界限值段基地址段基地址属性属性ESES段界限值段界限值段基地址段基地址属性属性FSFS段界限值段界限值段基地址段基地址属性属性GSGS段界限值段界限值段基地

92、址段基地址属性属性SSSS段界限值段界限值段基地址段基地址描述符寄存器描述符寄存器选择子选择子CSCSDSDSESESFSFSGSGSSSSS基址寄存器基址寄存器变址寄存器变址寄存器比例因子比例因子1 1、2 2、4 4或或8 8位移量位移量存储器存储器目标地址目标地址目标地址目标地址图3-25寻址计算图解微型计算机原理及应用微型计算机原理及应用9 9种存储器寻址方式种存储器寻址方式(1 1)直接寻址方式)直接寻址方式例如:例如:INC WORD PTR 1234567H INC WORD PTR 1234567H (2 2)寄存器间接寻址方式)寄存器间接寻址方式例如:例如:MOV EBXMO

93、V EBX,EAX EAX MOV AX MOV AX, ECXECX MOV BL MOV BL,CXCX (3 3)基址寻址方式)基址寻址方式例如:例如:MOV ECXMOV ECX,EAXEAX124124 MOV DXMOV DX,EBPEBP12345H12345H 与与8086CPU8086CPU不同之处:不同之处: 位移量可以是位移量可以是3232位,位, 任何一个通用寄存器均可任何一个通用寄存器均可微型计算机原理及应用微型计算机原理及应用(4 4)变址寻址方式)变址寻址方式例如:例如:MOV EAXMOV EAX,CNT EBP CNT EBP MOV EDX MOV EDX,

94、CNTCNTEAXEAX 与与8086CPU8086CPU不同之处:不同之处: 位移量可以是位移量可以是3232位位 任何一个通用寄存器均可看成基址寄存器任何一个通用寄存器均可看成基址寄存器(5 5)带比例因子的变址寻址方式)带比例因子的变址寻址方式EA=EA=变址寄存器内容变址寄存器内容* *比例因子比例因子+ +位移量位移量 其中:比例因子可以为其中:比例因子可以为1 1、2 2、4 4或或8 8例如:例如:MOV EAXMOV EAX,CNTCNTESI*4ESI*4 MOV EAXMOV EAX,VARVAREDI*2EDI*2 微型计算机原理及应用微型计算机原理及应用(6 6)基址加

95、变址寻址方式)基址加变址寻址方式EA=EA=基址寄存器内容基址寄存器内容+ +变址寄存器内容变址寄存器内容例如例如1 1: MOV EAXMOV EAX,EBX EDIEBX EDI MOV EAX MOV EAX,ESP EBP ESP EBP 例如例如2 2: MOV EAXMOV EAX,EDX EBPEDX EBP MOV EAX MOV EAX,EBPEBPEDXEDX (7 7)带比例因子的变址再加基址寻址方式)带比例因子的变址再加基址寻址方式 EA=EA=变址寄存器内容变址寄存器内容* *比例因子比例因子+ +基址基址例如:例如:MOV EBXMOV EBX,EDX*8 EBP

96、EDX*8 EBP MOV EAX MOV EAX,EDXEDXEBP*2EBP*2微型计算机原理及应用微型计算机原理及应用(8 8)带位移量的基址加变址寻址方式)带位移量的基址加变址寻址方式例如:例如: ADD EDXADD EDX,EDIEDI EBPEBP123H 123H EA=EA=基址寄存器内容基址寄存器内容+ +变址寄存器内容变址寄存器内容+ +位移量位移量(9 9)带比例因子的变址加基址加位移量的寻址方式)带比例因子的变址加基址加位移量的寻址方式例如:例如: MOV EAXMOV EAX,ESI* 8ESI* 8 EBPEBP180H 180H EA=EA=基址寄存器内容基址寄

97、存器内容+ +(变址寄存器内容(变址寄存器内容比例因子)比例因子)+ + 位移量位移量注意:在实模式下,操作数和地址的默认长度是注意:在实模式下,操作数和地址的默认长度是1616位。位。微型计算机原理及应用微型计算机原理及应用3.5.2 80286CPU3.5.2 80286CPU新增指令新增指令新新增增指指令令包包括括两两个个方方面面,一一是是增增加加了了一一些些新新功功能能指指令令,二二是是对对一一些些原原有有指指令令增增强强了了其其功功能能。80286CPU80286CPU新新增增指指令令见见表表3-3.3-43-3.3-4。下下面面就其中一些常用指令进行介绍就其中一些常用指令进行介绍1

98、 1数据传送类指令数据传送类指令指令格式:指令格式: PUSH PUSH 源操作数源操作数 PUSHAPUSHA POPAPOPA举例:举例: PUSH -5PUSH -5微型计算机原理及应用微型计算机原理及应用2 2算术运算类指令算术运算类指令指令格式:指令格式: IMUL IMUL 寄存器,立即数寄存器,立即数IMUL IMUL 寄存器寄存器1 1,寄存器,寄存器2 2或存储器,立即数或存储器,立即数举例:举例: IMUL BXIMUL BX, 5050 IMUL DI IMUL DI, BXBXTABLETABLE, 3 3 IMUL BX IMUL BX, CXCX, 345H 345

99、H 微型计算机原理及应用微型计算机原理及应用3 3移位和循环移位指令移位和循环移位指令指令格式:指令格式:SHL SHL 目的操作数,目的操作数,COUNT COUNT SAL SAL 目的操作数,目的操作数,COUNTCOUNT SHR SHR 目的操作数,目的操作数,COUNT COUNT SAR SAR 目的操作数,目的操作数,COUNTCOUNT ROL ROL 目的操作数,目的操作数,COUNTCOUNT ROR ROR 目的操作数,目的操作数,COUNTCOUNT RCL RCL 目的操作数,目的操作数,COUNT COUNT RCR RCR 目的操作数,目的操作数,COUNTCO

100、UNT举例:举例: SHL DXSHL DX,9 9微型计算机原理及应用微型计算机原理及应用4 4串输入输出指令串输入输出指令指令格式:指令格式:INSBINSB INSW INSW OUTSB OUTSB OUTSW OUTSW举举例例:要要从从端端口口地地址址为为125H125H的的外外设设端端口口中中输输入入 200200个个字字节节,存存放放在在以以逻逻辑辑地地址址2000H2000H:100H100H为为首首址址的的内内存存单单元元中中,则则可可采采用用如如下下串串输输入指令:入指令: CLDCLD MOV ES MOV ES,2000H2000H LEA DI LEA DI,100

101、H100H MOV CX MOV CX,200200 MOV DX MOV DX,125H125H REP INSB REP INSB微型计算机原理及应用微型计算机原理及应用5 5高级语言类指令高级语言类指令指令格式:指令格式: BOUND BOUND 寄存器,存储器地址寄存器,存储器地址 ENTER ENTER 立即数立即数1 1,立即数,立即数2 2 LEAVE LEAVE3.5.3 803863.5.3 8038680486CPU80486CPU新增指令新增指令1 1数据传送类指令数据传送类指令指令格式:指令格式:MOVSX MOVSX 目的操作数,源操作数目的操作数,源操作数 MOVZ

102、X MOVZX 目的操作数,源操作数目的操作数,源操作数微型计算机原理及应用微型计算机原理及应用举例:举例: MOV DXMOV DX, 0FB20H0FB20H MOVSX EAX MOVSX EAX, DX DX MOV CL MOV CL,0FBH0FBH MOVZX AX MOVZX AX,CLCL2 2算术运算类算术运算类指令格式:指令格式:XADD XADD 目的操作数,源操作数目的操作数,源操作数微型计算机原理及应用微型计算机原理及应用3 3逻辑运算与移位指令逻辑运算与移位指令 指令格式:指令格式:SHRD SHRD 第一操作数,第二操作数,第三操作数第一操作数,第二操作数,第三

103、操作数 SHLD SHLD 第一操作数,第二操作数,第三操作数第一操作数,第二操作数,第三操作数举例:举例:设设CXCX中中有有内内容容为为1234H1234H,DXDX中中有有内内容容为为5678H5678H,则则SHLD SHLD CXCX,DXDX, 7 7 指令是把指令是把DXDX左移左移 7 7位,移入位,移入 CXCX中,结果(中,结果(CXCX)=1A2BH=1A2BH微型计算机原理及应用微型计算机原理及应用4 4位操作类指令位操作类指令指令格式:指令格式:BT BT 第一操作数,第二操作数第一操作数,第二操作数 BTC BTC 第一操作数,第二操作数第一操作数,第二操作数 BT

104、R BTR 第一操作数,第二操作数第一操作数,第二操作数 BTS BTS 第一操作数,第二操作数第一操作数,第二操作数 BSF BSF 目的寄存器,第二操作数目的寄存器,第二操作数 BSR BSR 目的寄存器,第二操作数目的寄存器,第二操作数举例:举例: MOV CXMOV CX, 6 6 BT BT BYTE PTR SIBYTE PTR SI, CX CX 微型计算机原理及应用微型计算机原理及应用5 5根据条件,字节置根据条件,字节置“1”1”指令指令指令格式:指令格式:SETCC SETCC 目的操作数目的操作数举例:举例: SETZ BLSETZ BL SETNZ BL SETNZ B

105、L SETNS BYTE PTR SETNS BYTE PTRSISI7 7 6 6CacheCache管理类指令管理类指令指令格式:指令格式:INVDINVD WBINVD WBINVD INVLPG INVLPG微型计算机原理及应用微型计算机原理及应用表3-3 80286新增加指令指令类别指令格式功能数据传送类 PUSHA / POPA将所有通用寄存器的值压入 / 弹出堆栈串操作类INSB / INSW从DX寄存器指定的端口输入字节(字)串并传送至由ES:DI(或EDI)寻址的内存区域OUTSB / OUTSW从DS:SI(或ESI)寻址的内存单元中,输出字节(字)串到DX指定的端口中。

106、高级语言类BOUND 寄存器,存储器数组边界检查ENTER 立即数(16位),立即数(8位)设置堆栈空间LEVEL撤消ENTER指令所设置的堆栈空间控制保护态类LAR装入访问权限LSL装入段限值LGDT / SGDT 装入 / 存储全局描述符表LIDT / SIDT装入 / 存储8字节中断描述符表LLDT / SLDT装入 / 存储局部描述符表LTR / STR装入 / 存储任务寄存器LMSW / SMSW装入 / 存储机器状态字VERR / VERW存储器或寄存器读/写校验ARPL调整已请求特权级别CLTS清除任务转移标志微型计算机原理及应用微型计算机原理及应用表3-4 80286增强功能指

107、令指令类别指令格式功能数据传送类 PUSH 源操作数将包括立即数的源操作数压入堆栈算术运算类IMUL 寄存器,立即数将寄存器中带符号数与立即数相乘,积送该寄存器IMUL 寄存器1,寄存器2或存储器,立即数将寄存器2或存储器中带符号数与立即数相乘,积送寄存器1逻辑运算与移位类SAL 目的操作数,立即数(131)SAR,SHL,SHR,ROL,ROR ,RCL,RCR均同SAL功能与8086CPU相应指令一样,但可 根 据 立 即 数 指 定 移 位 次 数(131)微型计算机原理及应用微型计算机原理及应用表3-5 80386新增加指令指令类别指令格式功能数据传送类MOVSX 寄存器,寄存器 /

108、存储器带符号扩展的传送MOVZX 寄存器,寄存器 / 存储器带零扩展的传送 逻辑运算与移位类SHRD 寄存器/存储器,寄存器,CL/立即数双精度右移,产生一个单精度量SHLD 寄存器/存储器,寄存器,CL/立即数双精度左移,产生一个单精度量位操作类BT 寄存器/存储器,寄存器/立即数BTC 寄存器/存储器,寄存器/立即数BTS 寄存器/存储器,寄存器/立即数BTR 寄存器/存储器,寄存器/立即数BSF 寄存器,寄存器/存储器BSR 寄存器,寄存器/存储器位测试位测试并求反位测试并置位位测试并复位向前位扫描向后位扫描条件设置类SET 条件 寄存器/存储器根据条件测试标志寄存器中一个或多个标志微型

109、计算机原理及应用微型计算机原理及应用表3-6 80386增强功能指令指令类别指令格式功能数据传送类PUSHAD / POPAD将所有32位通用寄存器的值压入/弹出堆栈 PUSHFD / POPFD将32位标志寄存器的值压入/弹出堆栈算术运算类IMUL 寄存器,带符号数相乘,乘积取与目的操作数相同寄存器 / 存储器的长度,保存到目的操作数中CWDE将AX的符号扩展到EAX的高16位中CDQ将EAX的符号扩展到EDX中串操作类MOVSD、CMPSD、SCASD、LODSD、STOSD功能类似于原有串操作指令微型计算机原理及应用微型计算机原理及应用表3-7 80486新增加指令指令类别指令格式功能数据传送类BSWAP 寄存器(32位)将寄存器中第一字节和第四字节交换,第二字节和第三字节交换CMPXCHG 寄存器/存储器,寄存器比较源操作数与目的操作数是否相等,结果影响标志位算术运算类XADD 寄存器/存储器,寄存器交换两个操作数,并将两个操作数相加,和送入目的操作数Cache管理类INVD指示CPU高速缓冲存储器中的数据失效WBINVD高速缓冲存储器的内容写入内存,然后清除高速缓存INVLPG使TLB中的页无效微型计算机原理及应用微型计算机原理及应用

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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