3180 x86pentium指令格式3280 x86pentium寻址方式33.ppt

上传人:小** 文档编号:89301131 上传时间:2019-05-23 格式:PPT 页数:117 大小:2.39MB
返回 下载 相关 举报
3180 x86pentium指令格式3280 x86pentium寻址方式33.ppt_第1页
第1页 / 共117页
3180 x86pentium指令格式3280 x86pentium寻址方式33.ppt_第2页
第2页 / 共117页
3180 x86pentium指令格式3280 x86pentium寻址方式33.ppt_第3页
第3页 / 共117页
3180 x86pentium指令格式3280 x86pentium寻址方式33.ppt_第4页
第4页 / 共117页
3180 x86pentium指令格式3280 x86pentium寻址方式33.ppt_第5页
第5页 / 共117页
点击查看更多>>
资源描述

《3180 x86pentium指令格式3280 x86pentium寻址方式33.ppt》由会员分享,可在线阅读,更多相关《3180 x86pentium指令格式3280 x86pentium寻址方式33.ppt(117页珍藏版)》请在金锄头文库上搜索。

1、3.1 80X86/Pentium指令格式 3.2 80X86/Pentium寻址方式 3.3 8086/8088 CPU指令系统 3.4 80X86/Pentium CPU指令系统 3.5 80X87浮点运算指令,第3章 80X86/Pentium指令系统,第3章 80X86/Pentium指令系统,指令系统:微机处理器所能执行的各种指令的集合, 它定义了计算机硬件所能完成的基本操作。,本章重点:基本指令集,对80X86/Pentium系列CPU: 8086/8088的16位指令系统是基本指令集。 80286-Pentium的指令系统对基本指令集进行了增强与扩充: 32位整数指令集 多媒体M

2、MX指令集 数据流SIMD扩展SSE指令集 保护模式编程的系统控制类指令 等,不同的微 处理器有不同的指令系统,南京航空航天大学 电子信息工程学院,3.1 80x86/Pentium指令格式,汇编语言指令的特点- 机器指令:指令的二进制代码形式。如:89D8H 汇编指令:助记符形式的指令。 如:MOV AX,BX,动作:做什么?,对象:针对什么做动作?,操作码/助记符: 与动作一一对应,目/源操作数: 可能有多种组合,操作码:由CPU设计人员定义。每一种操作唯一对应一个操作码。 例: 加法操作助记符ADD; 数据传送操作助记符MOV; 比较操作助记符CMP; 操作数:可由编程人员采用不同方式给

3、出。 指令格式:指令中对操作码、操作数的编码方式。,有效地址EA:从段的首地址到操作数所在地址的距离,用字节 数表示,是一个无符号16位整数,它指向段首地 址开始的64KB。,操作码与寻址方式字节:,规定指 令的操 作类型,指出存贮器操作数地址的位移量或立即数,两个操作数 存放地址及 EA计算方法,第二字节: reg. 编码(23=8)表示一个具体的reg.操作数, 字节或字已由W决定,目的或源由D决定。 mod 编码表示另一个操作数是在reg.中还是在存贮器中。 11编码为reg.,其他编码为存贮器。 当mod11时,r/m指出第二个reg.操作数的编码。 当mod11时,r/m指出存贮器操

4、作数存放地址的计算方法。,第一字节: 操作码(Op Code) 操作类型 W(字操作标志位) 操作数类型 = D(reg.寻址标志位) reg.操作数传送方向=,0 字节 1 字,南京航空航天大学 电子信息工程学院,说明: 若指令中两个操作数都是reg,则D=1。 当: D=1,reg.为目的操作数,由 mod r/m决定源。 D=0,reg.为源操作数,由 mod r/m决定目的。,例1: ADD CL, BH ;两个reg相加 机器语言: 000000 1 0 | 11 001 111,OP Code,D reg. 为目 的操 作数,W 字节 运算,mod reg. 寻址 方式,reg.

5、CL,r/m BH,机器码存放在内存中,南京航空航天大学 电子信息工程学院,例2: ADD DISPBXDI,DX ;reg与存储器相加 机器语言: 000000 0 1 10 010 001,OP Code,reg. 为源 操作 数,字操 作数,第二 个是 存贮 器操 作数,reg. DX,EA=BX+DI+D16,disp,说明: 汇编语言指令可手工汇编成机器码. 即使是同一种指令,不同的寻址方式,其机器指令码长度会 有所不同。编程时应选择合理算法、数据结构、寻址方式等 节省MEM。 该指令的正确形式:ADD WORD PTR DISPBXDI,-105D,例3: ADD DISPBXDI

6、,-105D,-105D 11101001 原码 10010111 补码,OP Code,南京航空航天大学 电子信息工程学院,回顾80X86/Pentium指令格式:,(1)OP Code规定指令的操作类型,同时还指出: 操作数类型 reg.操作数传送方向 reg.编码 符号扩展 (2)mod r/m和s-i-b 寻址字段:规定reg./mem操作数的寻址方式 其中,mod r/m是主寻址字节,规定: 操作数存放的位置r/m 及 存贮器操作数有效地址EA的计算方法。 s-i-b是比例-变址-基址寻址字节: 此字节可有可无,按主寻址字节编码而定。 (3)disp位移量字段:存贮器操作数有效地址E

7、A的一部分,为: 0、1、2、4个字节。 (4)data 立即数字段:指明立即数的大小, 0、1、2、4个字节。 当8位与16/32位操作数一起使用时, CPU自动将它扩展为符号相同的16/32位数.,(5)前缀字段用于修改指令操作的某些属性 段超越前缀:将前缀中指明的段reg.取代指令中默认的段reg. 重复前缀:串操作时置于指令前面,提高CPU处理串数据的速度 总线锁定前缀Lock:用于产生Lock信号,防止其他主控设备 中断CPU在总线上的传输操作。 操作数宽度前缀:改变当前操作数宽度的默认值(由汇编程序 自动设定) 地址宽度前缀:改变当前地址宽度的默认值(由汇编程序自动 设定),所有字

8、段只有操作码字段是必需的,其他字段均可有可无。,前缀的编码为1个字节,在一条指令前可同时使用多个指令前 缀,不同前缀的前后顺序无关紧要。,南京航空航天大学 电子信息工程学院,3.2 80x86/Pentium寻址方式,3.2.1 寻址方式与有效地址EA的概念,寻址方式:操作数的存放形式与如何寻找操作数。 依据寻址方式,可方便地访问到各类操作数。,操作数存放位置: (1)操作数在指令中,与代码存放在一起,称为立即操作数 立即寻址 (2)操作数在Reg.中,指令中操作数部分是对应Reg.的编码 Reg.寻址 (3)操作数在mem中,指令中操作数部分是操作数的存储地址 存储器寻址,存储器寻址时,指令

9、中操作数部分给出的地址是段内偏移地址。 为了处理各种数据结构的需要,这个段内偏移量可以由几个基本部分组成,故称其为有效地址EA(区别于指令机器代码中计算物理地址时的位移量)。,南京航空航天大学 电子信息工程学院,在80X86/Pentium中, 任何内存单元的物理地址都由两部分组成: 段基地址和段内偏移地址 (段内偏移量),存贮器寻址时, 指令中给出的是段内偏移地址,对实地址方式DS是段基地址的高16位,称为段地址; TABLE 为段内偏移量,16位。 物理地址PADS16TABLE,对保护方式DS中是指向段描述符的16位段选择符, 通过它可得到32位段基地址; TABLE 为32位。 线性地

10、址段基地址TABLE,如: DS:TABLE,南京航空航天大学 电子信息工程学院,有效地址EA有4个分量组成: EA(基址寄存器)(变址寄存器比例因子)位移量 4个分量的取值规定,对于16位寻址和32位寻址有所不同。,表3-1 16位和32位寻址时4种分量的使用规则,1. 立即寻址 操作数包含在指令中,紧跟着操作码并与操作码一起存放在代码 段中,与代码一起被取入CPU的指令队列,在指令执行时不需要 再访问存贮器。,例: MOV AL, 80H MOV AX, 1234H MOV EDX,12345678H, 立即操作数可以是8、16、32位。 若是16或32位,则存放时必须满 足低对低,高对高

11、的原则。 指令中的立即数只能是源操作数, 不能是目的操作数。 常用于给Reg.赋初值。,3.2.2 各种寻址方式(共11种。8086/8088/80286(16位寻址)只有8种, 80386/486/Pentium系列CPU(32位寻址)11种),2. 寄存器寻址 操作数存放在指令规定的8、16或32位Reg中,Reg名字出现 在指令中。,例: INC CL ;CLCL+1 MOV AX,BX ;DSAX MOV ECX,EAX ;ECXEAX,指令执行后,源操作数不变,目的操作数为源的内容。, Reg是任何CPU中的通用Reg AX,BX,CXBPAH,AL等 操作数在Reg中,无需访问总线

12、, 执行速度快。 若选用AX,执行指令时间更短。,3. 存储器寻址 操作数在存贮区中,操作数的有效地址EA在指令中, 段地址在默认的或段超越前缀指定的段寄存器中。 操作数的物理地址PADS(或SS、ES)16EA,(1)直接寻址 EA指令中给出的位移量数据 有效地址EA直接在指令中给出,它存放在代码段操作码之后。操作数一般在数据段DS中(这是一种默认方式)。,例:MOV AL,2000H ;将DS段中2000H单元的内容送AL 设DS4000H,则物理地址为: 4000H16+2000H42000H, 允许段超越 例:MOV AX,ES:2000H (或 ES:MOV AX,2000H),将E

13、S段中2000H、2001H单元内容分别送AL、AH(低对低,高对高) 不管数据在哪个段内存放,只要不是DS,一定要加段超越前缀。, 直接寻址中EA可以以变量名的形式给出。 例:VALUE DB 12H MOV AL,VALUE ;将变量VALUE所指的字节 ;单元内容12H存入AL 或 MOV AL,VALUE ;VALUE又称为符号地址,(2)Reg间接寻址 EA(Reg) 操作数的有效地址EA在指令指定的Reg中,Reg使用规定如下: 16位寻址时,EA在DI、SI、BP、BX中, 这时: 若以DI、SI、BX间接寻址,则默认操作数在数据段中。 操作数物理地址DS16BX(或SI、DI)

14、 若以BP间接寻址,则默认操作数在堆栈段内. 操作数物理地址SS16BP 若操作数不在以上默认段,则必须在指令中加上段超越前缀。,例:MOV AX,SI ;将DS段SISI1的内容送AL,AH MOV BH,BP ;将SS段BP的内容送BH MOV CX,ES:BX ;将ES段BXBX1内容送CL,CH, 32位寻址时,8个32位通用Reg均可作Reg间接寻址。 例:MOV CH,EAX MOV DX,EBX MOV CH,EBP MOV DX,ESP,除EBP、ESP默认SS为段Reg外, 其余Reg默认DS。 这些默认都允许段超越。,例:MOV AX,BX 设DS4000H, BX=010

15、0H, 寄存器间接寻址示意图如右。,南京航空航天大学 电子信息工程学院,(3)基址寻址 EA(基址Reg)位移量 操作数的有效地址EA为指令中给出的基址Reg与位移量之和; 位移量与代码一起存放在代码段中。 Reg使用规定如下: 16位寻址时,BX、BP作为基址Reg,位移量是8或16位。 BX默认数据在DS段,BP默认数据在SS段,可段超越。, 3 2位寻址时,8个32位通用Reg均可作为基址Reg。 例:MOV DX, TABLE EAX MOV ECX,50EBP,除EBP、ESP默认SS为 段Reg外,其余Reg默认DS。 这些默认都允许段超越。 位移量可以是8、32位的。,基址寻址示意图MOV AL,BX+05,南京航空航天大学 电子信息工程学院,(4)变址寻址 EA(变址Reg)位移量 书写格式、寻址过程皆同基址寻址 16位寻址时,SI和DI作为变址Reg ,默认DS作为段Reg 。 SI DI 例:MOV AX,COUNTSI,EA

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

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