第4章指令系统课件.ppt

上传人:小飞机 文档编号:1623071 上传时间:2022-12-11 格式:PPT 页数:41 大小:2.41MB
返回 下载 相关 举报
第4章指令系统课件.ppt_第1页
第1页 / 共41页
第4章指令系统课件.ppt_第2页
第2页 / 共41页
第4章指令系统课件.ppt_第3页
第3页 / 共41页
第4章指令系统课件.ppt_第4页
第4页 / 共41页
第4章指令系统课件.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《第4章指令系统课件.ppt》由会员分享,可在线阅读,更多相关《第4章指令系统课件.ppt(41页珍藏版)》请在三一办公上搜索。

1、,4.3.1 80286增强和新增指令,从80286到Pentium系列微处理器的指令系统,4.3,注意,4.3.1 80286增强和新增指令,2) IMUL 寄存器,存储器,立即数,例如:SAR DX,3 ROL BYTE PTRBX,10,2.,80286新增指令,2.,80286新增指令,80286增强与增加的指令,1.80386指令的寻址方式,80386指令系统详解,4.3.2,立即寻址,存储器寻址,寄存器寻址,段基址由某一个段寄存器指定,而有效地址则是通过下列4种地址元素计算出来的。,1.80386指令的寻址方式,80386指令系统详解,4.3.2,偏移量:操作码之后的8位、16位或

2、32位的数据。,基址:任何通用寄存器都可以作为基址寄存器,其内容即为基址。,变址:除ESP寄存器之外任何通用寄存器均可作为变址寄存器,其值为 变址。,比例因子:变址寄存器的值可以乘以一个比例因子,比例因子可以取 1、2、4或8。,9,32位处理器指令系统,32位微处理器寄存器结构通用寄存器在8086基础上扩展了16位,成为32位其低16位寄存器的用法与名称完全与8086相同在用做32位寄存器时,其全称在低16位寄存器名称上加一个E段寄存器仍然是16位的,但是与8086CPU相比增加了两个附加数据段寄存器FS和GS。指令指针寄存器EIP和处理器状态标志寄存器都是32位的。,补充:,1.80386

3、指令的寻址方式,80386指令系统详解,4.3.2,(1)直接寻址 DEC WORD PTR 1000H,(2)寄存器间接寻址 MOV EBX,ECX,(3)基址寻址 MOV EBX+100,ECX,(4)变址寻址 MOV ECX,ESI+100,(5)带比例因子的变址寻址 MOV ECX,ESI*4+100,(6)基址变址寻址 MOV ECX,ESIEBX,1.80386指令的寻址方式,80386指令系统详解,4.3.2,(7)基址加比例因子变址寻址 MOV ECX,ESI*4EBX,(8)带偏移量的基址变址寻址 MOV ECX,ESIEBX+100,(9)带偏移量的基址比例因子变址寻址 M

4、OV ECX,ESI*4EBX+100,2.80386指令系统,80386指令系统详解,4.3.2, 数据传送指令 1)通用传送指令 MOV指令,2.80386指令系统,80386指令系统详解,4.3.2, 数据传送指令 1)通用传送指令 PUSH指令,2.80386指令系统,80386指令系统详解,4.3.2, 数据传送指令 1)通用传送指令 POP指令,2.80386指令系统,80386指令系统详解,4.3.2, 数据传送指令 2)地址传送指令, LEA指令 允许使用32位操作数。, LDS指令 允许从数据段中取出32位的偏移量送ESI,取16位 的段基址送DS。, LES指令 允许从当前

5、数据段中取48位的地址指针送ES和EDI 寄存器。,2.80386指令系统,80386指令系统详解,4.3.2, 数据传送指令 3)标志传送指令,除了8086指令系统中的标志传送指令LAHF、SAHF、PUSHF、POPF之外,80386还设置了以下新增指令:,2.80386指令系统,80386指令系统详解,4.3.2, 算术运算指令,1)加法指令。加法指令包括ADD、ADC和INC指令,在 80386指令系统中其操作数可以是字节、字或双字。,2)减法指令。加法指令包括SUB、SBB、DEC、NEG和CMP 指令,其扩展功能同加法指令。,2.80386指令系统,80386指令系统详解,4.3.

6、2, 算术运算指令 3)乘法指令, MUL指令 允许操作数为两个32位数,此时被乘数在EAX中,乘数在指令指定的32位寄存器或存储器中,64位的乘积存在EDX:EAX中。,IMUL指令 功能扩展同MUL指令 。新增指令: IMUL OP目,OP源 ;OP目OP源OP目 IMUL OP目,OP源1,OP源2 ;OP源1OP源2OP目,2.80386指令系统,80386指令系统详解,4.3.2, 算术运算指令 4)除法指令, DIV和IDIV指令,符号扩展指令,除了字节扩展指令CBW和CWD指令之外还增加了下面两条指令:,2.80386指令系统,80386指令系统详解,4.3.2, 逻辑运算指令,

7、逻辑运算指令包括与指令AND、或指令OR、异或指令XOR和测试指令TEST,其指令格式和功能与8086/8088指令相同,所不同的是80386允许操作数为32位数。,移位指令包括逻辑左移SHL、逻辑右移SHR、算术左移SAL、算术右移SAR,不带进位循环左移ROL,不带进位循环右移ROR,带进位循环左移RCL和带进位循环右移RCR,其指令格式和功能与8086/8088指令相同,所不同的是80386允许使用这些指令对32位数据进行移位,而且若移位次数大于1时可以在指令中用立即数表示移位次数。, 移位指令,2.80386指令系统,80386指令系统详解,4.3.2, 移位指令,SHLD OP目,O

8、P源1,OP源2;双精度左移指令,按OP源2给定的次 ;数对OP目做左移操作,移出的位进入 ;CF标志,OP目移位之后的空缺由OP ;源1的高位填补,移位之后源操作数1 ;的内容不变SHRD OP目,OP源1,OP源2;双精度右移指令,按OP源2给定的次 ;数对OP目做右移操作,移出的位进入 ;CF标志,OP目移位之后的空缺由OP ;源1的低位填补,移位之后源操作数1 ;的内容不变,注意,2.80386指令系统,80386指令系统详解,4.3.2, 串操作指令,1) 常规串操作 所有字符串操作指令(MOVS、CMPS、SCAS、LODS、STOS、INS和OUTS)带后缀D后,变成双字操作。

9、REP MOVSD 双字串传送 REPZ/REPNZCMPSD 双字串比较 REPZ/REPNZSCASD 双字串搜索 LODSD 取双字 REPSTOSD 存双字,串操作指令除了字符串传送指令MOVS、字符串比较指令CMPS、字符串搜索指令SCAS、取字符串指令LODS和存字符串指令STOS这些常规串操作指令来完成字或字节串的操作之外,还有一些新增指令用来完成双字的串操作。,2.80386指令系统,80386指令系统详解,4.3.2, 串操作指令,3) 串输出指令REPOUTSB ;字节串输出,将DS:SI所指向的字节源串输出到DX指定的 ;端口REPOUTSW ;字串输出,将DS:SI所指

10、向的字源串输出到DX指定的端口 REPOUTSD ;双字串输出,将DS:ESI所指向的双字源串输出到DX指定的 ;端口,2) 串输入指令REPINSB ;输入字节串,从DX指定的端口读字节串到ES:DI指向的缓冲区中REPINSW ;输入字串,从DX指定的端口读字串到ES:DI指向的缓冲区中REPINSD ;输入双字串,从DX指定的端口读双字串到ES:EDI指向的缓冲区 ;中,2.80386指令系统,80386指令系统详解,4.3.2, 转移指令,1) 条件转移指令JECXZ OP;当ECX的内容为0时转移到由OP指定的目标地址2) 子程序调用和返回指令 功能扩展:在间接调用的时候,若CALL

11、指令的目标地址为32位寄存器或存储器,执行时先将CS压入堆栈,堆栈指针减2,再将EIP压栈,堆栈指针减4,同时CS和EIP装入新值;用RET完成上述间接调用的返回时,首先从栈顶弹出4个字节装入EIP,再弹出两个字节给CS,同时堆栈指针加6。,2.80386指令系统,80386指令系统详解,4.3.2, 条件设置指令,格式:SET条件 寄存器/存储器 该指令用于对指定标志位进行测试,并根据测试结果将指定的寄存器或存储器置1或置0。条件测试指令的各种形式及其各自完成的功能见表4-13。, 中断指令, 输入输出指令,中断指令包括INT n、INTO和IRET,这些指令格式和功能与8086相同,除此之

12、外还增加了一条指令:IRETD ;从堆栈中依次弹出相应字节的数据给EIP、CS和 ;EFLAGS寄存器,1) IN指令 可以从外设端口读入32位数到EAX。2) OUT指令 可以将EAX中的32位数通过端口传送到外设。,2.80386指令系统,80386指令系统详解,4.3.2,位操作指令,1) 位测试和设置指令,BT OP目,OP源 ;测试由源操作数指出的目的操作数的二进制 ;位,将其送入CF标志BTCOP目,OP源 ;测试由源操作数指出的目的操作数的二进制 ;位,将其送入CF标志,测试后将该位取反BTROP目,OP源 ;测试由源操作数指出的目的操作数的二进制 ;位,并将其送入CF标志,测试

13、后将该位清零 BTSOP目,OP源 ;测试由源操作数指出的目的操作数的二进制 ;位,并将其送入CF标志,测试后将该位置1,注意,2.80386指令系统,80386指令系统详解,4.3.2,位操作指令,2) 位扫描指令,指令格式:BSF OP目,OP源 BSR OP目,OP源指令功能:二指令均完成对操作数进行扫描的操作,将第一个扫描到是“1”的位的位号送入目的操作数。如果源操作数为0,则使ZF=1,此时目的操作数中的结果无定义;否则,ZF=0,此时目的操作数的内容即为扫描到的位号。上述指令的不同之处在于BSF指令从低位向高位扫描,而BSR指令从高位向低位扫描。,注意,2.80386指令系统,80

14、386指令系统详解,4.3.2, 处理器控制指令,80386的标志操作指令与8086/8088完全相同,包括CLC、STC、CMC、CLD、STD、CLI和STI指令;CPU控制指令也包括HLT、WAIT、NOP、LOCK封锁前缀和ESC指令,只是在80386中可以利用处理器交权指令ESC使数值协处理器80387可以接收80386的指令,还可以利用80386的寻址方式执行程序。, 保护方式指令,这一组保护方式指令是80386新增加的指令,用于对系统进行设置和测试,并且通常只由系统管理员使用,因此只将这些指令的格式和功能罗列在表4-14中。,2.80386指令系统,80386指令系统详解,4.3

15、.2, 高级语言支持指令,1) 检查数组下标界限指令 BOUND OP目,OP源,2) 建立堆栈框架指令 ENTER OP目,OP源,3) 释放堆栈框架指令 LEAVE,指令功能:检查目的操作数给出的带符号数是否在源操作数给出的数组界限之内,源操作数存放的是数组的起始下标值和终止下标值。,指令功能:为高级语言正在执行的过程建立堆栈框架。目的操作数是框架的大小,表示该过程局部变量占用的字节数,源操作数表示过程被嵌套的层数,BP或EBP是指向该堆栈框架的指针。,指令功能:与ENTER指令相反,LEAVE指令释放当前过程所有局部变量占用的堆栈空间,堆栈指针恢复为系统堆栈指针ESP。,1.数据传送类,

16、80486的增强和新增指令,4.3.3,80386/80486增强与增加的指令,4.3.4 Pentium系列微处理器的新增指令,4.3.4 Pentium系列微处理器的新增指令,80286增加的指令,(1)栈操作指令PUSHA、POPA (2)字符串输入指令INS ES:DI,DX( INSB 、INSW)(3)字符串输出指令OUTS DX,DS:SI (OUTB 、OUTW ) (4)数组界限检查指令BOUND DEST,SRC (5)建立堆栈空间指令ENTER DEST,SRC (6)取消建立的栈空间指令LEAVE(7)控制保护指令(有16条),控制保护指令有16条:LAR ;装入访问权

17、限LSL ;装入段界限LGDT ;装入全局描述符表SGDT ;存储全局描述符表LIDT ;装入8字节中断描述符表SIDT ;存储8字节中断描述符表LIDT ;装入局部描述符表SLDT;存储局部描述符表LTR ;装入任务寄存器STR ;存储任务寄存器LMSW ;装入机器状态字SMSW ;存储机器状态字ARPL ;调整已请求特权级别CLTS ;清除任务转移状态VERR ;对存储器或寄存器读校验VERW ;对存储器或寄存器写校验,80286增加的指令,80386扩充和增加的指令,180386扩充功能的指令(1)栈操作指令PUSHAD、POPAD、PUSHFD 、POPFD (2)有符号数乘法指令IM

18、UL DEST,SRC、IMUL DEST,SRC1,SRC2 (3)串操作指令MOVSD、LODSD 、STOSD、CMPSD、SCASD、INSD、OUTSD (4)符号扩展指令CWDE 、CDQ (5)地址指针传送指令LFS DEST,SRC、LGS DEST,SRC (6)中断返回指令IRETD,280386新增加的指令(1)数据传送与扩展指令MOVSX DEST,SRC 、MOVZX DEST,SRC (2)位测试指令BT DEST,SRC、BTC DEST,SRC(3)位设置指令BTR DEST,SRC、BTS DEST,SRC (4)位扫描指令BSF DEST,SRC、BSR D

19、EST,SRC (5)双精度数移位指令SHLD DEST,SRC1,SRC2、SHRD DEST,SRC1,SRC2(6)条件设置指令SET 条件 DEST,80386扩充和增加的指令,80486新增加的指令,1通用指令(1)交换加指令XADD DEST,SRC例:XADD EAX,EBX ;(EAX)(EAX)+(EBX),(EBX)(EAX)(2)比较传送指令CMPXCHG DEST, SRC例:CMPXCHG EDX,EBX ;若(EDX)=(EAX),则EDXEBX, 并将ZF置1;否则,EAX(EDX),并将ZF置0。(3)字节顺序交换指令BSWAP DEST2Cache操作指令INVDWBINVDINVLPG,Pentium新增加的指令,1Pentium专用指令(1)字节比较交换指令CMPXCHG8B DEST, SRC(2)处理器特征识别指令CPUID(3)读时间标记计数器指令RDTSC2Pentium控制指令(1)读实模式描述寄存器指令RDMSR(2)写实模式描述寄存器指令WRMSR(3)恢复系统管理模式指令RSM,小结,本章主要内容,重点,难点,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号