80X86的寻址方式和指令系统1.pptVIP

  • 1
  • 0
  • 约6.23千字
  • 约 40页
  • 2017-09-11 发布于北京
  • 举报
80X86的寻址方式和指令系统1

第三章 80X86的寻址方式和指令系统 主要内容 寻址方式 指令系统 3.2.1有效地址EA和段超越 1.有效地址(EA) 当操作数存在mem中,其物理地址由段地址和偏移地址组成。其中偏移地址称EA。 EA由以下四部分组成: (1)位移量:存在指令中的一个8位/16位、32位的数,不是 立即数,是地址。 (2)基址:存放在基址寄存器中的内容。 (3)变址:存放在变址寄存器中的内容。 (4)比例因子:其值为1、2、4、8,主要用于访问元素长度为1、2、4、8字节的数组有用。(386以后机型)  EA=基址+(变址*比例因子)+位移量 2.段超越 寻址时,由EA中基址寄存器来规定段寄存器。正常情况下,PC机有个基本约定:一般是DS寄存器的内容作为段地址,若BP作基址,则段地址在SS中。若操作数存放在数据段以外的其他段中(允许),则应指明,这种情况称为段超越。 例: MOV AL,[2000H] 物理地址为:16x(DS)+2000 数据在DS段中 MOV AL,ES:[2000H] ES:段超越前缀 物理地址为:16x(ES)+2000H 数据在ES段(超越) 注意! 不允许段超越的有:堆栈操作,只能用SS,取指令,只能用CS,目的串只能用ES!(P39) 注意! 立即数以A~F开头的十六进制数,必须 在字母前加数字0。 32位寻址时: ex3.3 MOV EAX (EAX) 2.寄存器寻址(速度快) (1)操作数包含在CPU内部寄存器中, 寄存器可以是8位或16位,也可以是32位。  16位: AX、BX、CX、DX、SI、DI、SP、BP  8位: AH、AL、BH、BL、CH、CL、DH、DL。 32位: EAX、EBX、ECX、EDX、      ESI、EDI、ESP、EBP (2)ex: MOV DS,AX DS AX EX3.4(a) MOV AX,BX 执行前:(AX)=3064H (BX)=1234H 执行后:(AX)=1234H (BX)不变。 Ex3.4(b) MOV ECX,EDX 执行前:(ECX) (EDX) 执行后:(ECX) (EDX)不变 3.直接寻址 (1)操作数的EA只含位移量一部分,其值存放在CS段(Mem)中,放在OP之后,操作数一般在DS段。 实模式下,其物理地址为:16x(Ds)+EA 可以进行段超越。                 cs段   (2)允许用符号地址代替数值   EX:MOV AX,[VALUE] 或 MOV AX,VALUE 若VALUE在ES段,则: MOV AX,ES:VALUE 或 MOV AX,ES:[VALUE] (3)用于处理单个变量 4.寄存器间接寻址 (1)操作数的EA只包含基址寄存器内容或变址寄存器内容,操作数在存储器中。 16位寻址,可用的寄存器是BX、BP、SI、DI,其物理地址为: (SI) 16x(Ds)+ (DI) 16x(SS)+(BP) 可以进行段超越。 (BX) Ex: MOV AX,SS:[BX] 物理地址=16X(SS)+(BX) 操作数在SS段,采用段超越。 32位寻址: EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI 8个通用寄存器,ESP、EBP默认段为SS段。  (2) 用于表格处理 5.寄存器相对寻址 (1)操作数的EA是基址寄存器或变址寄存器的内容和指令中指定的位移量之和。  16位寻址,操作数在存储器中 (BX) (BP)  EA= (SI)+ 位移量 (DI) (2)物理地址为: (SI) 16x(Ds)+ (DI)+位移量 16x(SS)+(BP)+位移量 (BX) (3)允许段超越,用于表格处理。 EX: MOV AX,E

文档评论(0)

1亿VIP精品文档

相关文档