最新微型计算机第4章课件PPT课件

上传人:枫** 文档编号:568598243 上传时间:2024-07-25 格式:PPT 页数:90 大小:1.86MB
返回 下载 相关 举报
最新微型计算机第4章课件PPT课件_第1页
第1页 / 共90页
最新微型计算机第4章课件PPT课件_第2页
第2页 / 共90页
最新微型计算机第4章课件PPT课件_第3页
第3页 / 共90页
最新微型计算机第4章课件PPT课件_第4页
第4页 / 共90页
最新微型计算机第4章课件PPT课件_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《最新微型计算机第4章课件PPT课件》由会员分享,可在线阅读,更多相关《最新微型计算机第4章课件PPT课件(90页珍藏版)》请在金锄头文库上搜索。

1、微型计算机第4章课件 微型计算机原理 第四章 8x86指令系统1.1 80868088指令系统 计算机是通过执行指令序列来完成用户的特定任务的,因此每种计算机都有一组指令集供用户使用。这组指令集就称为计算机的指令系统。 指令系统中的每一条指令都对应着微处理器要完成的一种规定的操作,这在设计微处理器时就事先规定好了,所以指令系统是表征一台计算机性能的重要因素,它的格式与规模将直接影响到机器的硬件结构。 指令系统是程序员编写程序的基础,因此很好地掌握指令系统的有关知识是后续进一步学习的关键。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 微型计算机原理 第

2、四章 8x86指令系统 微型计算机原理 第四章 8x86指令系统 微型计算机原理 第四章 8x86指令系统 微型计算机原理 第四章 8x86指令系统 微型计算机原理 第四章 8x86指令系统 微型计算机原理 第四章 8x86指令系统 操作数来自或送到I/O端口。这种操作数叫I/O操作数。 在8086/8088系统中,操作数又可分为两大类:数据操作数和地址操作数。因此,寻址方式也分为数据寻址方式和地址寻址方式两大类。1. 数据的寻址方式对于数据操作数,有四种形式: 无操作数 单操作数:可以是源操作数,也可以是目的操作数。Thursday, July 25, 2024 微型计算机原理 第四章 8x

3、86指令系统 双操作数:一个是源操作数,一个是目的操作数。 隐含操作数:可能隐含一个操作数(源或目的),也可能隐含两个操作数。源操作数:在操作过程中其值不变的操作数。(可以提供数据的操作数)目的操作数:在操作后可被操作结果代替的操作数。(可以接收数据的操作数)1)立即数寻址方式例如:MOV AL, 80H MOV AX, 1234HThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统AL操作码字节80H程序存储器指令码操作码字节12H程序存储器AL指令码AH34H12H34H80H80H12H34HMOV AL, 80HMOV AX, 1234HThursd

4、ay, July 25, 2024 微型计算机原理 第四章 8x86指令系统2)寄存器寻址方式例如:INC CX MOV AX, CX89C1程序存储器AXCX指令码(包括操作数)Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统3)存储器寻址方式存储器寻址方式的操作数存放在存储器单元中。因此,要存取操作数就必须知道其存储器的单元地址。在指令中可以直接给出或间接给出操作数的地址,以达到存取操作数的目的。指令中给出的地址只是操作数的有效地址(EA),并且是放在方括号(“ ”)中。若要从存储器中存取操作数还须得到实际的地址(物理地址)。物理地址段地址左移四位有

5、效地址物理地址CSCSDSDSSSSSESES10H10H +EA+EAThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 有效地址可以由以下三种地址分量组成: 位移量:它是存放在指令中的一个8位或16位的带符号数。 基 址:它是存放在基址寄存器BX或BP中的内容。 变 址:它是存放在变址寄存器SI或DI中的内容。 对于某条具体指令,这三个地址分量可有不同的组合。正是因为这三种地址分量有不同的组合,才使得对存储器操作数的寻址产生了若干种不同的方式。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 直接寻址方式MOV

6、AL, 1064HDS:20000H20000H21064H21064HAL操作码641045代码段数据段4545+1064HEAEA 1616位位dispdispThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统5040MAX 寄存器间接寻址 MOV AX, SI MOV BX, AL30000HDS:30000HSI:2000H+32000H32000H4050504064HMAL30000HDS:30000HBX:1000H+31000H31000H64H64HMOV AX, SIMOV BX, ALEA=EA=(BX)(BX)(DI)(DI)(SI

7、)(SI)Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 寄存器相对寻址22064H22064H641045代码段数据段操作码CL4545+1064H21000HBX:1000HDS:20000H20000HEA=(BX)(BP)(DI)(SI)+8位disp16位dispMOV CL, BX+1064HThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 基址加变址寻址方式基址加变址寻址方式MOV AH, BPSIMOV AH, BPSI56HMAH40000H40000HSSSS:400040000 0H HBP

8、:2000H+43200H43200HSI:1200H56H56HEA=EA=(BX)(BX)(BP)(BP)+ +(DI)(DI)(SI)(SI)Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 基址加变址相对寻址MOV BX+DI+1234H, AHEA=(BX)(BP)+(DI)(SI)+8位disp16位disp3412代码段数据段操作码45AH40000HDS:40000HBX:0200H+DI:0010H1234H454541444H41444HThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统4)I/O

9、端口寻址方式 直接端口寻址方式IN AL, 21H21HAL操作码21H代码段8001H02HI/O接口8080Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 间接端口寻址方式OUT DX, AL0001H0002HI/O接口80AL1234DX1234H8080Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统2.地址的寻址方式地址的寻址方式其时是程序转移地址的寻址方式,也就是找出程序转移的地址号,而不是操作数。转移地址可以在段内(称段内转移),也可以跨段(称段间转移)。寻求转移地址的方法有以下四种:1)段内直接

10、寻址转移的地址是当前IP内容和指令规定的8位或16位位移量之和。当位移量是8位时,称为短程转移;位移量是16位时称为近程转移。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统这种寻址方式适用于条件转移或无条件转移类指令。但条件转移只有8位位移量的短程转移。+当前IPEA有效转移地址opcode位移量PM(CS)10H+EA位移量Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 例:例:JMP SHORT ALPHAJMP SHORT ALPHA本例指令是一无条件转移本例指令是一无条件转移指令指令, ,指令采用了段内

11、直接寻指令采用了段内直接寻址方式。符号地址址方式。符号地址ALPHAALPHA代表代表位移量。设位移量。设ALPHAALPHA20H,20H,开始开始执行该指令时,执行该指令时,(CS)(CS)1500H1500H,(IP)(IP)3200H3200H,于是该指令,于是该指令在存储器中的起始地址为:在存储器中的起始地址为: 15000H 15000H3200H3200H18200H18200HOPOP20H20H存储器存储器15000H15000H18200H18200H18201H18201H18202H18202H18222H18222H20H20H当前代码段首地址当前代码段首地址JMPS

12、HORTALPHAJMPSHORTALPHA转移地址转移地址而转移有效地址为:而转移有效地址为: EA EA当前当前(IP)(IP)ALPHAALPHA3202H3202H20H20H3222H3222H转移物理地址为:转移物理地址为: PA PA15000H15000H3222H3222H18222H18222H执行完这条指令后,执行完这条指令后,IPIP的内容变成的内容变成3222H(3222H(不再是不再是3202H)3202H),CPUCPU将转移到存储单元地址将转移到存储单元地址18222H18222H中去取指令来执行。中去取指令来执行。Thursday, July 25, 2024

13、 微型计算机原理 第四章 8x86指令系统2)段内间接寻址方式程序转移的地址存放在寄存器或存储器单元中。指令执行使用寄存器或存储器单元的内容来更新IP的内容。寄存器寄存器IPIPDMDMIPIP例如:例如:JMPBXJMPBXJMPWORDPTRADDRJMPWORDPTRADDRJMPWORDPTRBX+ARRYJMPWORDPTRBX+ARRYThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 例:例:JMP WORD PTR BETAJMP WORD PTR BETA 本指令是无条件转移指令,可使本指令是无条件转移指令,可使程序转移到根据程序转移到根

14、据BETABETA指示的内存单元中指示的内存单元中取出的偏移地址开始执行指令。指令采取出的偏移地址开始执行指令。指令采用的是段内间接寻址方式。指令的操作用的是段内间接寻址方式。指令的操作数地址是一个符号地址数地址是一个符号地址BETABETA,所以可用,所以可用数据寻址方式中的直接寻址方式得到存数据寻址方式中的直接寻址方式得到存储转移偏移地址的内存单元地址。设当储转移偏移地址的内存单元地址。设当前前(CS)(CS)0120H,(IP)0120H,(IP)2400H,BETA2400H,BETA0100H,(DS)0100H,(DS)2000H,(20100H)2000H,(20100H)00H

15、00H,(20101H)(20101H)27H27H,则存储转移偏移地址,则存储转移偏移地址的内存单元地址为:的内存单元地址为: (DS) (DS)左移左移4 4位位+BETA+BETA20000H+0100H20000H+0100H 20100H20100H又又(20100H)(20100H)00H,(20101H)00H,(20101H)27H,27H,即转即转移物理地址为:移物理地址为: PA PA01200H+2700H01200H+2700H03900H03900H执行完这条指令后,执行完这条指令后,IPIP的内容变成的内容变成2700H2700H,CPUCPU将转移到存储单元将转移

16、到存储单元03900H03900H去去执行程序。执行程序。OPOPOPOP00H00H存储器存储器01200012000360003600036010360103602036020390003900当前代码段首址当前代码段首址JMPWORDPTRBETAJMPWORDPTRBETA转移地址转移地址00H00H27H27H01H01H200002000020100201002010120101数据区首地址数据区首地址03603036032700H2700HIPIPThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统3)段间直接寻址方式这种寻址方式是指令码中直接

17、给出16位的段地址和16位的偏移地址用来更新当前的CS和IP内容。opcodePM段地址偏移量IPCSThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统OPOP00H00H40H40H存储器存储器20000200002100021000210012100121002210023000030000当前代码段首址当前代码段首址JMPFARPTRGAMMAJMPFARPTRGAMMA转移代码段首地址转移代码段首地址00H00H3400034000转移地址转移地址210032100330H30H2100421004 例:例:例:例:JMP FAR PTR GAMM

18、AJMP FAR PTR GAMMAJMP FAR PTR GAMMAJMP FAR PTR GAMMA 本例指令为无条件转移本例指令为无条件转移指令,采用段间直接寻址方指令,采用段间直接寻址方式。设当前式。设当前(CS)(CS)2000H2000H (IP) (IP)1000H1000H GAMMA GAMMA3000:40003000:4000则本指令的起始地址为:则本指令的起始地址为: 20000H+1000H 20000H+1000H21000H21000H转移物理地址为:转移物理地址为: PA PA30000H+4000H30000H+4000H34000H34000H 执行完这条指

19、令后,执行完这条指令后,CSCS的内容变成的内容变成3000H3000H,IPIP的内容的内容变成变成4000H4000H,从而程序转移到,从而程序转移到存储单元存储单元34000H34000H开始执行。开始执行。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统4)段间间接寻址方式 这种寻址方式是由指令码的寻址方式字节求出存放转移地址的连续两个字的地址。其低位字地址单元中存放的是偏移地址,高位字地址单元中存放的是转移段地址。DMDMCSCSIPIP段地址段地址偏移量偏移量Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令

20、系统 例:例:JMP DWORD PTR DELTABXJMP DWORD PTR DELTABX 本例指令是无条件转移指令,采用段间间接寻址方本例指令是无条件转移指令,采用段间间接寻址方式。式。 设当前设当前(CS)(CS)1000H,(IP)1000H,(IP)0100H,(DS)0100H,(DS)2000H2000H,(BX)(BX)3000H,DELTA3000H,DELTA0040H,(23040H)0040H,(23040H)00H,(23041H)00H,(23041H)50H,(23042H)50H,(23042H)00H,(23043H)00H,(23043H)30H30H

21、,则间接存储地,则间接存储地址按寄存器相对寻址为:址按寄存器相对寻址为: (DS) (DS)左移左移4 4位位+(BX)+DELTA+(BX)+DELTA20000H+3000H+0040H20000H+3000H+0040H 23040H23040H于是,可得转移地址为:于是,可得转移地址为: 3000H:5000H 3000H:5000H即转移物理地址为:即转移物理地址为: PA PA30000H+5000H30000H+5000H35000H35000H 执行本指令后,执行本指令后,CSCS的内容和的内容和IPIP的内容分别变成的内容分别变成3000H3000H和和5000H5000H,

22、程序转移到存储单元,程序转移到存储单元35000H35000H开始执行。开始执行。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统OPOPOPOP40H40H存储器存储器10000100001010010100101011010110102101023000030000当前代码段首地址当前代码段首地址JMPDWORDPTRDELTABXJMPDWORDPTRDELTABX转移代码段首地址转移代码段首地址00H00H3500035000转移地址转移地址101031010300H00H50H50H2304023040230412304123042230420

23、0H00H230432304330H30H2000020000数据段首地址数据段首地址IPIPCSCS5000H5000H3000H3000H指令执行前:指令执行前: (CS)=1000H (CS)=1000H (IP)=0100H (IP)=0100H (DS)=2000H (DS)=2000H (BX)=3000H (BX)=3000HDELTA=0040HDELTA=0040H指令执行后:指令执行后:(CS)=3000H(CS)=3000H(IP)=5000H(IP)=5000HThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统opcodeopcod

24、ePMPM段地址段地址偏移量偏移量IPIPCSCSDMDMCSCSIPIP段基址段基址偏移量偏移量段间间接寻址方式段间直接寻址方式段间直接和间接寻址的区别Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统4.1.3 8086/80884.1.3 8086/8088指令系统指令系统 8086/8088指令系统大致可分为六大类指令: 数据传送类指令 算术运算类指令 位操作类指令 串操作类指令 程序控制类指令 处理器控制类指令 学习指令系统着重要掌握指令的基本操作功能、合法的寻址方式及其对状态标志位的影响。Thursday, July 25, 2024 微型计算

25、机原理 第四章 8x86指令系统 1. 数据传送类指令 数据传送指令的主要功能是传送数据、地址和标志。可分为通用数据传送指令、输入输出指令、地址传送指令和标志传送指令。 (1)通用数据传送指令 通用数据传送指令可完成字节或字数据的传送。它可分为数据传送指令、堆栈操作指令、数据交换指令和字节转换指令。 1) 数据传送指令 指令格式:MOVdst,src;(dst)(src)src表示源操作数(字/字节) 立即数操作数 寄存器操作数(包括段寄存器) 存储器操作数dst表示目的操作数(字/字节) 寄存器操作数(不包括IP,CS段寄存器) 存储器操作数Thursday, July 25, 2024 微

26、型计算机原理 第四章 8x86指令系统段寄存器CSDSSSES存储器通用存储器AX BX CX DXAX BX CX DXBP SP SI DIBP SP SI DIAL BL CL DLAL BL CL DLAH BH CH DHAH BH CH DHMOV指令数据传送方向16位8/16位8/16位16位8/16位 指令功能:将源操作数传送(复制)到目的操作数。 传送方向:如下图所示。立即数Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 2) 堆栈操作指令 堆栈操作指令是用来完成压入和弹出堆栈操作的。80868088指令系统中提供了完成这两种操作的相

27、应指令。 压入堆栈指令 指令格式及操作: PUSH src ;(SP)(SP)-2, ;(SP)+1:(SP)(src)src表示源操作数(字) 寄存器操作数(包括段寄存器) 存储器操作数Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 注意:堆栈指令的操作数只能是字操作数(即16位操作数),且不能是立即数。 进栈操作(PUSH):先移后进 出栈操作( POP):先出后移 弹出堆栈指令 指令格式及操作: POP dst ;(dst)(SP)+1:(SP), ;(SP)(SP)+2dst表示目的操作数(字) 寄存器操作数(不包括IP,CS段寄存器) 存储器

28、操作数Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 3)交换指令 指令格式及操作: XCHG opr1,opr2 ;(opr1)(opr2) 注意:交换指令的两个操作数可以是寄存器操作数,存储器操作数,但都不能是立即数操作数,也不能同时为存储器操作数;寄存器操作数是指通用寄存器,不包括段寄存器。 也就是说,交换指令是完成寄存器与寄存器、寄存器与存储器之间的数据互换功能。交换的两个数据可以是8位的,也可以是16位的。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统4)字节转换指令指令格式及操作: XLAT src

29、_table ;(AL) (BX)+(AL)XLAT指令是用来将一种字节代码转换成另一种字节代码。即将BX的内容(代码表格首址src_table)和AL的内容(表格偏移量)相加作为有效地址。并从中读出此内存表格地址单元的内容传送到AL累加器中。XLAT指令还可以有以下几种表示形式:XLAT ;不写操作数XLATB ;有B就不允许再写操作数。 XLAT ES:src_table ;重设段寄存器为ESThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统例例例例在内存的数据段有一张在内存的数据段有一张1616进制数的进制数的ASCIIASCII码表,其首码表,其首

30、地址为地址为Hex_tableHex_table,如下图所示,为欲将十六进制数,如下图所示,为欲将十六进制数0AH0AH转换成转换成ASCIIASCII码,则可用以下几条指令实现:码,则可用以下几条指令实现:MOV BX, OFFSET Hex_taleMOV BX, OFFSET Hex_tale;(BX) (BX) 表首址表首址MOV AL, 0AHMOV AL, 0AH ;(AL) (AL) 十六进制数十六进制数A AXLAT Hex_tableXLAT Hex_table;查表转换;查表转换61000H61001H61002H6100AH6100BH6100FH60000HDS:600

31、00HBX:1000HAX:000AH+6100AHHex_tableHex_table+1Hex_table+2Hex_table+AHex_table+BHex_table+FASCII表31H32H41H42H30H46H0AHALEA6100AH41H41HASCII表Hex_table=1000HThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 (2) 输入/输出指令 输入输出指令可以分为两大类:一类是直接端口地址的输入输出指令;一类是通过DX寄存器间接端口地址的输入输出指令。 1) 输入指令 直接寻址的输入指令 指令格式及操作: IN acc

32、, port ;(acc)(port) 其中:acc为8位或16位累加器AL/AX。port为8位端口地址,故可寻址256个端口。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 间接寻址的输入指令 指令格式及操作: IN acc, DX ;(acc)(DX) 其中:acc为8位或16位累加器AL/AX。DX为16位间接寻址的端口地址寄存器,故可寻址64K个端口。 2) 输出指令 直接寻址的输出指令 指令格式及操作: OUT port, acc ;(port)(acc)Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系

33、统 间接寻址的输出指令 指令格式及操作: OUT DX, acc ;(DX)(acc)Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统(3) 地址传送指令1)取有效地址指令指令格式: LEA reg16, mem此指令的功能是将存放源操作数的16位偏移地址(即有效地址EA)送到一个16位的通用寄存器中。即源操作数必须是一个存储器操作数,目的操作数必须是一个寄存器操作数。例如:LEA BX, bufferLEA AX, BPDILEA DX, betyBXSIThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 注意LE

34、A指令和MOV指令的异同,比较下面两组指令:不同:LEA BX,buffer ;将存储器buffer的偏 移地址送到BX MOV BX,buffer ;将存储器buffer的内 容传送到BX相同:LEA BX,buffer MOV BX,OFFSET buffer 以上两条指令都是将存储器buffer的偏移地址送到BX。其中OFFSET buffer 表示存储器偏移地址。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统2)地址指针装入DS指令指令格式: LDS reg16,mem32此指令的功能是将源操作数所对应的双字长的内存单元中的高字内容(一般为16

35、位段基址)送入DS,低字内容(一般为偏移地址)送入指令所指定的寄存器中。例如:LDS DI,2130H34H12H00H40H2130H2132HDMDIDS1234H4000HThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统3)地址指针装入ES指令指令格式: LES reg16,mem32此指令的功能是将源操作数所对应的双字长的内存单元中的高字内容(一般为16位段基址)送入ES,低字内容(一般为偏移地址)送入指令所指定的寄存器中。例如:LES DI,2130H34H34H12H12H00H00H40H40H2130H2130H2132H2132HDMD

36、MDIDIESES1234H4000HThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统(4) 标志传送指令1)取标志指令指令格式: LAHF2)置标志指令指令格式: SAHFOFOF DFDF IFIF TFTF SFSF ZFZFAFAFPFPFCFCFFLAGFLAGAHAHLAHFLAHF和和SAHFSAHF指令操作示意图指令操作示意图Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统3)标志压入堆栈指令指令格式及操作: PUSHF ;(SP)(SP)-2, (SP)+1;(SP)(FLAG)4)标志弹出堆栈指

37、令指令格式及操作: POPF ;(FLAG)(SP)+1;(SP), (SP)(SP)+2Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 在使用这些传送类指令时应注意以下几点: 目的操作数不能为立即数。 目的操作数为段寄存器(CS不能作为目的操作数),源操作数不能为立即数。 源操作数为非立即数时,两操作数之一必须为寄存器操作数。 操作数类型必须一致。 用BX、SI、DI来间接寻址时,默认的段寄存器为DS;用BP来间接寻址时,默认的段寄存器为SS。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 对于堆栈操作,源操

38、作数不能为立即数;CS寄存器的值可以压入堆栈,但反之则不允许。 数据交换指令的两个操作数任一都不能是立即数。 换码指令的操作数是一种特殊的基址变址寻址方式,基址寄存器为BX,变址寄存器为AL。 除了SAHF和POPF指令外,其余指令都不会影响标志。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 2 2、算术运算类指令、算术运算类指令80868088有丰富的算术运算指令,而且可以处理4种类型的数据,如下表所示:数据类型数据类型数据范围数据范围运算运算可作累加器使用的寄存器或存储器可作累加器使用的寄存器或存储器二二进进制制8 8位无符号位无符号0 0 25

39、5255加减加减所有的通用寄存器或存储器所有的通用寄存器或存储器乘除乘除AXAX寄存器寄存器1616位无符号位无符号0 0 6553565535加减加减所有的通用寄存器或存储器所有的通用寄存器或存储器乘除乘除AXAX、DXDX寄存器寄存器8 8位带符号位带符号128128 127127加减加减所有的通用寄存器或存储器所有的通用寄存器或存储器乘除乘除AXAX寄存器寄存器1616位带符号位带符号3276832768 +32767+32767加减加减所有的通用寄存器或存储器所有的通用寄存器或存储器乘除乘除AXAX、DXDX寄存器寄存器十十进进制制压缩型压缩型BCDBCD0 0 9999加减加减AXA

40、X寄存器寄存器非压缩型非压缩型BCDBCD0 0 9 9加减加减AXAX寄存器寄存器乘除乘除AXAX寄存器寄存器Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 (1) 加法指令 在微处理器中,没有专用的BCD码运算指令,使用二进制运算指令进行BCD码数的运算,然后用BCD码运算调整指令进行调整,重新得到BCD码的结果。指令格式操作功能标志位影响O S Z A P CADDdst,src(dst)(dst)+(src)ADCdst,src(dst)(dst)+(src)+(CF)INCdst(dst)(dst)+1 AAAASCII码调整指令DAA压缩型

41、BCD调整指令 Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统AAA指令的操作为:(非压缩型BCD码调整) 如果如果(AL)0FH9 (AL)0FH9 或 (AF) (AF)1 1 则则(AL)(AL)(AL)(AL)06H06H(AH)(AH)(AH)(AH)1 1(AF)1(AF)1(CF)(AF)(CF)(AF)(AL)(AL)0FH)(AL)(AL)0FH) 否则否则(AL)(AL)0FH)(AL)(AL)0FH)DAA指令的操作为: (压缩型BCD码调整) 如果如果(AL)0FH9, (AF)(AL)0FH9, (AF)1 1 则则(AL)(

42、AL)(AL)(AL)06H06H(AF)1(AF)1 如果如果(AL)9FH (AL)9FH 或 (CF) (CF)1 1 则则(AL)(AL)(AL)(AL)60H60H(CF)1(CF)1Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统例要求计算两个十进制数之和,例要求计算两个十进制数之和,7 78 8?。?。可用以下指令实现:可用以下指令实现: (非压缩型BCD码调整)MOV AX, 0007HMOV AX, 0007H;(AL)=07H,(AH)=00H;(AL)=07H,(AH)=00HMOV BL, 08HMOV BL, 08H;(BL)=

43、08H;(BL)=08HADD AL, BLADD AL, BL;(AL)=0FH;(AL)=0FHAAAAAA;(AL)=05H,(AH)=01H;(AL)=05H,(AH)=01H;(CF)=(AF)=1;(CF)=(AF)=1 (压缩型BCD码调整)MOV AX, 0007HMOV AX, 0007H;(AL)=07H,(AH)=00H;(AL)=07H,(AH)=00HMOV BL, 08HMOV BL, 08H;(BL)=08H;(BL)=08HADD AL, BLADD AL, BL;(AL)=0FH;(AL)=0FHDAADAA;(AL)=15H,(AH)=00H;(AL)=15

44、H,(AH)=00H;(CF)=0,(AF)=1;(CF)=0,(AF)=1Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统例要求计算两个十进制数之和,例要求计算两个十进制数之和,56563434?。?。可用以下指令实现:可用以下指令实现:(压缩型BCD码调整)MOV AX, 3456HMOV AX, 3456H;(AL)=56H,(AH)=34H;(AL)=56H,(AH)=34HADD AL, AHADD AL, AH ;(AL)=8AH;(AL)=8AHDAADAA ; ;(AL)=90H(AL)=90H例要求计算两个例要求计算两个BCDBCD数的

45、数的ASCIIASCII码之和,即码之和,即 5599?。可用以下指令实现:?。可用以下指令实现:(ASCII码调整)MOV AL, 5 MOV AL, 5 ;(AL)=35H;(AL)=35HADD AL, 9 ADD AL, 9 ;39H,(AL)=6EH;39H,(AL)=6EHMOV AH, 0 MOV AH, 0 ;(AH)=00H;(AH)=00HAAAAAA;(AH)=01H,(AL)=04H;(AH)=01H,(AL)=04HOR AX,3030HOR AX,3030H;(AX)=3134H,;(AX)=3134H,即即3434Thursday, July 25, 2024 微

46、型计算机原理 第四章 8x86指令系统 (2) 减法指令指令格式操作功能标志位影响O S Z A P CSUBdst,src(dst)(dst)(src)SBBdst,src(dst)(dst)(src)(CF)DECdst(dst)(dst)1 NEGdst(dst)0(dst)1CMPdst,src(dst)(src)AAS非压缩型BCD调整指令DAS压缩型BCD调整指令 Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统AAS指令的操作为: (非压缩型BCD码调整) 如果如果 (AL)0FH9 (AL)0FH9 或 (AF) (AF)1 1 则则(A

47、L)(AL)(AL)(AL)06H06H(AH)(AH)(AH)(AH)1 1(AF)1(AF)1(CF)(AF)(CF)(AF)(AL)(AL) 0FH)(AL)(AL) 0FH) 否则否则(AL)(AL) 0FH)(AL)(AL) 0FH)DAS指令的操作为: (压缩型BCD码调整) 如果如果(AL)0FH9, (AF)(AL)0FH9, (AF)1 1 则则(AL)(AL)(AL)(AL)06H06H(AF)1(AF)1 如果如果(AL)9FH (AL)9FH 或 (CF) (CF)1 1 则则(AL)(AL)(AL)(AL)60H60H(CF) 1(CF) 1Thursday, Jul

48、y 25, 2024 微型计算机原理 第四章 8x86指令系统例要求计算两个十进制数之差,例要求计算两个十进制数之差,86-786-7?。?。可用以下指令实现:可用以下指令实现: (非压缩型BCD码)MOV AX, 0806HMOV AX, 0806H;(AH)=08H,(AL)=06H;(AH)=08H,(AL)=06HSUB AL, 07HSUB AL, 07H;(AX)=08FFH;(AX)=08FFHAASAAS ; ;(AX)=0709H(AX)=0709H例要求计算两个十进制数之差,例要求计算两个十进制数之差,134-56134-56?。?。可用以下指令实现:可用以下指令实现: (

49、压缩型BCD码)MOV AX, 5634HMOV AX, 5634H;(AH)=56H,(AL)=34H;(AH)=56H,(AL)=34HSUB AL, AHSUB AL, AH;(AL)=DEH,;(AL)=DEH,有借位有借位DASDAS ; ;(AL)=78H(AL)=78HThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 (3) 乘法指令指令格式指令格式操作功能操作功能标志位影响标志位影响O O S S Z Z A A P P C CMULsrcMULsrc(AX)(AL)(src)(AX)(AL)(src)(DX:AX)(AX)(src)(D

50、X:AX)(AX)(src) IMULsrcIMULsrc(AX)(AL)(src)(AX)(AL)(src)(DX:AX)(AX)(src)(DX:AX)(AX)(src) AAMBCD调整指令AL源操作数ALAHAX源操作数AXDXThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统AAM指令的操作为:(将二进制数转换成十进制数) (AH)(AL)/0AH的商;即AL除以10,商送AH (AL)(AL)/0AH的余;即AL除以10,余数送AL例:要求进行以下十进制乘法运算:79? 解:可编程序段如下: MOV AL,07H ;(AL)=07H MOV B

51、L,09H ;(BL)=09H MUL BL ;(AX)=07H09H=003FH AAM ;(AH)=06H,(AL)=03H Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 (4)除法指令指令格式指令格式操作功能操作功能标志位影响标志位影响O O S S Z Z A A P P C CDIVsrcDIVsrc(AL) (AX)/(src)(AL) (AX)/(src)的商的商(AH) (AX)/(src)(AH) (AX)/(src)的余数的余数(AX) (DX:AX) /(src)(AX) (DX:AX) /(src)的商的商(DX) (DX:A

52、X) /(src)(DX) (DX:AX) /(src)的余数的余数 IDIVsrcIDIVsrc(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)的余数的余数 CBWCBW若若(AL)80H,(AL)80H,则则(AH)00H,(AH)00H,否则否则(AH)FFH(AH)FFH CWDCWD若若(AX)8000H,(AX)8000H,则则(DX

53、)0000H,(DX)0000H,否则否则(DX)FFFFH(DX)FFFFH AADBCD调整指令 Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 8086/8088CPU执行除法时规定:除数只能是被出数的一半字长。当被除数为16位时,除数应为8位;当被除数为32位时,除数应为16位。AL源操作数AXAHAXAX源操作数DXDX商商商商余数余数余数余数8 8位位1616位位1616位位3232位位除数除数除数除数被除数被除数被除数被除数Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统AAD指令的操作为:(十进制

54、数转换成二进制数) (AL)(AH)0AH+(AL) (AH)0 例:要进行以下十进制除法运算:732=? 解:可编程序段如下: MOV AH,07H ;(AH)=07H MOV AL,03H ;(AL)=03H MOV BL,02H ;(BL)=02H AAD ;(AL)=49H(即十进制数73) DIV BL ;(AL)=24H(AL)=24H(商商),(AH)=01H(),(AH)=01H(余数余数) ) AAM ;(AH)=03H,(AL)=06HThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 3.位操作类指令 位操作指令是对8位或16位的寄存

55、器或存储单元中的内容按位进行操作。这一类指令包括逻辑运算指令、移位指令和循环移位指令等三组。 (1) 逻辑运算指令 逻辑运算类指令与算术运算指令不同,算术指令是按字节或字进行算术运算,而逻辑运算指令是把操作数按位来进行逻辑运算。 Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统指令格式指令格式操作功能操作功能标志位影响标志位影响O O S S Z Z A A P P C CANDdst,srcANDdst,src(dst)(dst)(dst)(dst) (src)(src)0 0 0 0ORdst,srcORdst,src(dst)(dst)(dst)(

56、dst) (src)(src)0 0 0 0NOTdstNOTdst(dst)(dst)(dst)(dst)(dst)0FFH(dst)0FFH(dst)(dst)(dst)0FFFFH(dst)0FFFFH(dst)(dst) XORdst,srcXORdst,src(dst)(dst)(src)(dst)(dst)(src)0 0 0 0TESTdst,srcTESTdst,src(dst)(dst) (src)(src)0 0 0 0 说明:TEST相当于AND运算,但是不保存结果,仅影响标志。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统常见的

57、用法举例: 清进位标志位:AND AX,AX 或 OR AL,AL等。 清零操作数:XOR AX,AX 不仅把AX清零,而且也影响了状态标志。 把某几位取反:用XOR指令,把要取反的位和1异或,不变的位和0异或。 清零或置位某几位:用AND指令清零,用OR指令置位。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统(2) 移位操作指令该类指令的使用方法是: 移动1位,用类似于 SHL AX,1的格式 移动n位,用类似于 SHL AX,CL的格式指令格式指令格式操作功能操作功能标志位影响标志位影响O O S S Z Z A A P P C CSHLdst,1

58、SHLdst,1SHLdst,CLSHLdst,CL SALdst,1SALdst,1SALdst,CLSALdst,CL SHRdst,1SHRdst,1SHRdst,CLSHRdst,CL SARdst,1SARdst,1SARdst,CLSARdst,CL CFdstCF0dstCF0dstCF0dstThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统说明: 逻辑移位适用于无符号数,算术移位适用于有符号数。 逻辑左移和算术左移的机器码完全相同,是助记符的两种写法。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统

59、说明:循环移位常用来变换数据格式。指令格式指令格式操作功能操作功能标志位影响标志位影响O O S S Z Z A A P P C CROLdst,1ROLdst,1ROLdst,CLROLdst,CL RORdst,1RORdst,1RORdst,CLRORdst,CL RCLdst,1RCLdst,1RCLdst,CLRCLdst,CL RCRdst,1RCRdst,1RCRdst,CLRCRdst,CL CFdstCFdstCFdstCFdstThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 使用举例 例一 利用循环移位指令可以对寄存器或存储器中的任

60、一位进行测试。如要测试AL寄存器中的第5位的状态是“0”还是“1”,则可利用以下 指令实现: MOV CL,5;(CL)移位次数 ROR AL,CL;(CF)AL的第5位 JNC ZERO;若(CF)=0,转ZARO ;否则ZERO: Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 例二 利用带进位循环移位指令可以实现将两个以上寄存器或存储器单元组合起来一起移位。如DX和AX两个寄存器组成的32位数乘以2,可用以下两条指令实现:SHL AX,1 ;AXAX左移左移1 1位位,(CF),(CF)AXAX的最高位的最高位RCL DX,1 ;DXDX带进位左

61、移带进位左移1 1位位,DX,DX的最低位的最低位(CF)(CF)具体操作如下图:CFDXAX0RCLDX,1SHLAX,1Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统4.串操作指令 串操作指令的特征是对数据块,也称数据串 (字符串或数值串)进行操作。其操作数为隐含操作数,并且其中部分指令的两个操作数可以同时是存储器操作数。 串传送 MOVS (Move string) 串比较 CMPS (Compare string) 串扫描 SCAS (Scan string) 串装入 LODS (Load from string) 串保存 STOS (Stor

62、e in to string)Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 说明: 串操作指令每次执行完成一个字节或一个字的操作。 通常使用重复前缀来自动完成一个数据块(数据串)的操作。 重复前缀: REP 重复 REPE/REPZ 相等/为零则重复 REPNE/REPNZ不相等/不为零则重复Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 特点: 串操作指令需要指明每次操作的数据串数据的类型:B表示字节串,W表示字串。 例如:MOVSB, CMPSW等。 串操作指令使用DS:SI作为源操作数的指针;ES:DI

63、作为目的操作数的指针 使用DF来表示每次操作以后变址寄存器SI和DI的变化方向: CLD ;DF=0 SI,DI做增量变化 B:+1或W:+2 STD ;DF=1 SI,DI做减量变化 B:-1或W:-2 使用CX来表示用重复前缀以后指令需要重复执行的次数(通常是数据串的长度) Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统指令格式指令格式操作功能操作功能标志位影响标志位影响O O S S Z Z A A P P C CMOVSDstring,SstringMOVSDstring,SstringMOVSBMOVSBMOVSWMOVSW(ES):(DI)

64、(ES):(DI)(DS):(SI)(DS):(SI)(SI)(SI)(SI)(SI) 11或或 (SI)(SI)(SI)(SI) 2 2(DI)(DI)(DI)(DI) 1 1或或 (DI)(DI)(DI)(DI) 2 2 LODSSstringLODSSstringLODSBLODSBLODSWLODSW(AL)/(AX)(AL)/(AX)(DS):(SI)(DS):(SI)(SI)(SI)(SI)(SI) 11或或 (SI)(SI)(SI)(SI) 2 2 STOSDstringSTOSDstringSTOSBSTOSBSTOSWSTOSW(ES):(DI)(ES):(DI)(AL)/(

65、AX)(AL)/(AX) (DI)(DI)(DI)(DI) 11或或 (DI)(DI)(DI)(DI) 2 2 CMPSSstring,DstringCMPSSstring,DstringCMPSBCMPSBCMPSWCMPSW(DS):(SI)(DS):(SI)(ES):(DI)(ES):(DI)(SI)(SI)(SI)(SI) 11或或 (SI)(SI)(SI)(SI) 2 2(DI)(DI)(DI)(DI) 1 1或或 (DI)(DI)(DI)(DI) 2 2 SCASDstringSCASDstringSCASBSCASBSCASWSCASW(AL)(AL)(ES):(DI)(ES):

66、(DI)(DI)(DI)(DEI)(DEI) 11或或 (DI)(DI)(DI)(DI) 2 2 Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统指令前缀指令前缀适用的指令适用的指令操作功能操作功能标志位影响标志位影响O O S S Z Z A A P P C CREPREPMOVSMOVSSTOSSTOS(CX)(CX) 0 0 REPZREPZREPEREPEREPNZREPNZREPNEREPNECMPSCMPSSCASSCAS(CX)(CX) 00且且(ZF)(ZF)1 1(CX)(CX) 00且且(ZF)(ZF)0 0 Thursday, Ju

67、ly 25, 2024 微型计算机原理 第四章 8x86指令系统5.控制转移类指令 能够使程序的执行流程发生改变的指令 (1) 无条件转移指令指令名称指令名称指令格式指令格式指令功能指令功能转移范围转移范围段内直接短转移JMPdisp8(IP)(IP)+disp8-128+127段内直接近转移JMPdisp16(IP)(IP)+disp16-32K+32K段内间接转移JMPmem/reg(IP)(mem)(IP)(reg)-32K+32K段间直接转移JMPaddr(IP)偏移地址(CS)段地址-32K+32K段间间接转移JMPmem(IP)(mem)(CS)(mem)+2-32K+32KThu

68、rsday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 (2) 条件转移指令 根据判断条件是否成立决定是否转移(即条件成立则转移,否则不转移)。按照判断条件的不同条件转移指令可分为以下类型:单个标志判断指令、无符号数判断指令、有符号数判断指令和CX寄存器判断指令。 条件转移都是段内直接短转移,即(IP)=(IP)+ Data8类型的转移。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统指令格式指令功能测试条件说明JEJEJZ dispJZ disp(IP)(IP)(IP)+(disp)(IP)+(disp)(ZF)(ZF)1

69、1单标志测试JNEJNEJNZ dispJNZ disp(IP)(IP)(IP)+(disp)(IP)+(disp)(ZF)(ZF)0 0JS dispJS disp(IP)(IP)(IP)+(disp)(IP)+(disp)(SF)(SF)1 1JNS dispJNS disp(IP)(IP)(IP)+(disp)(IP)+(disp)(SF)(SF)0 0 JP JPJPE dispJPE disp(IP)(IP)(IP)+(disp)(IP)+(disp)(PF)(PF)1 1JNPJNPJPO dispJPO disp(IP)(IP)(IP)+(disp)(IP)+(disp)(PF)

70、(PF)0 0 JO disp JO disp(IP)(IP)(IP)+(disp)(IP)+(disp)(OF)(OF)1 1 JNO disp JNO disp(IP)(IP)(IP)+(disp)(IP)+(disp)(OF)(OF)0 0 JC disp JC disp(IP)(IP)(IP)+(disp)(IP)+(disp)(CF)(CF)1 1 JNC disp JNC disp(IP)(IP)(IP)+(disp)(IP)+(disp)(CF)(CF)0 0Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统指令格式指令功能测试条件说明JBJ

71、NAE disp(IP)(IP)+(disp)(CF)1无符号数测试A:高于B:低于E:等于JAEJNB disp(IP)(IP)+(disp)(CF)0JAJNBE disp(IP)(IP)+(disp)(CF)0 且且 (ZF)0JBEJNA disp(IP)(IP)+(disp)(CF)0 或或 (ZF)0JGJNLE disp(IP)(IP)+(disp)(SF) (OF) 且且 (ZF)0带符号数测试G:大于L:小于E:等于JGEJNL disp(IP)(IP)+(disp)(SF) (OF)JLJNGE disp(IP)(IP)+(disp)(SF) (OF) 且且 (ZF)0JL

72、EJNG disp(IP)(IP)+(disp)(SF) (OF) 或或 (ZF)1 JCXZ disp(IP)(IP)+(disp)(CX) 0CX寄存器测试Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 (3) 循环控制指令 循环控制指令的转移也都是段内直接短转移,即(IP)(IP)+Data8类型的转移。指令名称指令名称指令格式指令格式指令功能指令功能测试条件测试条件(CX)(CX) 0 0循环循环LOOPdisp8LOOPdisp8(CX)(CX)(CX)(CX)1 1当当(CX)(CX) 0 0则则(IP)(IP)(IP)+disp8(IP)

73、+disp8(CX)(CX) 0 0为零或相等循环为零或相等循环LOOPZdisp8LOOPZdisp8LOOPEdisp8LOOPEdisp8(CX)(CX)(CX)(CX)1 1当当(CX)(CX) 00且且(ZF)(ZF)1 1则则(IP)(IP)(IP)+disp8(IP)+disp8(CX)(CX) 00且且 (ZF)(ZF)1 1非零或不等循环非零或不等循环LOOPNZdisp8LOOPNZdisp8LOOPNEdisp8LOOPNEdisp8(CX)(CX)(CX)(CX)1 1当当(CX)(CX) 00且且(ZF)(ZF)0 0则则(IP)(IP)(IP)+disp8(IP)+

74、disp8(CX)(CX) 00且且 (ZF)(ZF)0 0Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 说明: 程序转移类指令都不影响状态标志。 如果条件转移指令和循环控制指令的目标地址的位移量超出了Data8所能够表示的范围,则需要用五条件转移指令JMP辅助来完成转移和循环。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 (4) 子程序调用与返回指令子程序(过程)通常是一个完整的、独立的有一定名称(标号)的程序段,它可以多次被调用,并在这个程序段执行完后可返回到原先调用的程序处。子程序执行的过程分为三步:

75、 子程序调用(即从主程序转移到子程序的首地址),用CALL指令。 执行子程序 返回(即从子程序转移到主程序),用RET指令。Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 主程序 子程序 SUBP1 PROC NEAR START: CALL SUBP1 MOV AL,01H CALL SUBP1 MOV AX,AX RETHLT SUBP1 ENDPThursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统指令名称指令格式操作功能段内直接调用段内直接调用 CALL disp16 CALL disp16 (SP)(SP)-

76、2 ,(SP)+1:(SP)(IP) (SP)(SP)-2 ,(SP)+1:(SP)(IP) (SP)(SP)-2 ,(SP)+1:(SP)(IP) (SP)(SP)-2 ,(SP)+1:(SP)(IP) (IP)(IP)+disp16 (IP)(IP)+disp16 (IP)(IP)+disp16 (IP)(IP)+disp16(带符号数)(带符号数)(带符号数)(带符号数)段内间接调用段内间接调用 CALL MEM/REG CALL MEM/REG (SP)(SP)-2 ,(SP)+1:(SP)(IP) (SP)(SP)-2 ,(SP)+1:(SP)(IP) (SP)(SP)-2 ,(SP

77、)+1:(SP)(IP) (SP)(SP)-2 ,(SP)+1:(SP)(IP) (IP)(EA) (IP)(EA) (IP)(EA) (IP)(EA) 段间直接调用段间直接调用 CALL addr32 CALL addr32 (SP)(SP)-2 ,(SP)+1:(SP)(CS) (SP)(SP)-2 ,(SP)+1:(SP)(CS) (SP)(SP)-2 ,(SP)+1:(SP)(CS) (SP)(SP)-2 ,(SP)+1:(SP)(CS) (SP)(SP)-2 ,(SP)+1:(SP)(IP) (SP)(SP)-2 ,(SP)+1:(SP)(IP) (SP)(SP)-2 ,(SP)+1

78、:(SP)(IP) (SP)(SP)-2 ,(SP)+1:(SP)(IP) (IP)addr (IP)addr (IP)addr (IP)addr的偏移地址的偏移地址的偏移地址的偏移地址 (CS)addr (CS)addr (CS)addr (CS)addr的段地址的段地址的段地址的段地址 段间间接调用段间间接调用 CALL MEM CALL MEM (SP)(SP)-2 ,(SP)+1:(SP)(CS) (SP)(SP)-2 ,(SP)+1:(SP)(CS) (SP)(SP)-2 ,(SP)+1:(SP)(CS) (SP)(SP)-2 ,(SP)+1:(SP)(CS) (SP)(SP)-2

79、,(SP)+1:(SP)(IP) (SP)(SP)-2 ,(SP)+1:(SP)(IP) (SP)(SP)-2 ,(SP)+1:(SP)(IP) (SP)(SP)-2 ,(SP)+1:(SP)(IP) (IP)(EA) (IP)(EA) (IP)(EA) (IP)(EA) (CS)(EA)+2) (CS)(EA)+2) (CS)(EA)+2) (CS)(EA)+2) Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统指令名称指令格式操作功能段内子程序返回段内子程序返回 RETRET (IP)(SP)+1:(SP) (IP)(SP)+1:(SP) (IP)(

80、SP)+1:(SP) (IP)(SP)+1:(SP) (SP)(SP)+2 (SP)(SP)+2 (SP)(SP)+2 (SP)(SP)+2 RET disp16RET disp16 (IP)(SP)+1:(SP) (IP)(SP)+1:(SP) (IP)(SP)+1:(SP) (IP)(SP)+1:(SP) (SP)(SP)+2 (SP)(SP)+2 (SP)(SP)+2 (SP)(SP)+2 (SP)(SP)+disp16 (SP)(SP)+disp16 (SP)(SP)+disp16 (SP)(SP)+disp16(偶数(偶数(偶数(偶数值值) 段间子程序返回段间子程序返回 RET RE

81、T (IP)(SP)+1:(SP),(SP)(SP)+2 (IP)(SP)+1:(SP),(SP)(SP)+2 (IP)(SP)+1:(SP),(SP)(SP)+2 (IP)(SP)+1:(SP),(SP)(SP)+2 (CS)(SP)+1:(SP),(SP)(SP)+2 (CS)(SP)+1:(SP),(SP)(SP)+2 (CS)(SP)+1:(SP),(SP)(SP)+2 (CS)(SP)+1:(SP),(SP)(SP)+2 RET disp16RET disp16 (IP)(SP)+1:(SP),(SP)(SP)+2 (IP)(SP)+1:(SP),(SP)(SP)+2 (IP)(SP

82、)+1:(SP),(SP)(SP)+2 (IP)(SP)+1:(SP),(SP)(SP)+2 (CS)(SP)+1:(SP),(SP)(SP)+2 (CS)(SP)+1:(SP),(SP)(SP)+2 (CS)(SP)+1:(SP),(SP)(SP)+2 (CS)(SP)+1:(SP),(SP)(SP)+2 (SP)(SP)+disp16 (SP)(SP)+disp16 (SP)(SP)+disp16 (SP)(SP)+disp16(偶数值)(偶数值)(偶数值)(偶数值) Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统 6.处理器控制类指令 这一类指令

83、用于对CPU进行控制,例如对CPU中某些状态标志位的状态进行操作,以及使 CPU暂停、等待等等。 80868088指令系统的处理器控制指令可分为三组: 标志操作指令 外部同步指令 空操作指令 Thursday, July 25, 2024 微型计算机原理 第四章 8x86指令系统种 类指令格式指令功能标志操作 进位标志操作 CLCSTCCMC(CF)0 进位标志清0 (CF)1 进位标志置1 (CF)(CF) 进位标志取反 方向标志操作 CLDSTD(DF)0 方向标志清0 (DF)1 方向标志置1 中断标志操作 CLISTI(IF)0 中断标志清0 (IF)1 中断标志置1 外部同步 HLTWAITESCLOCK 暂停 等待 交权 总线封锁 空操作 NOP 空操作 Thursday, July 25, 2024

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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