汇编语言程序设计及上机指导_第3章_指令格式与寻址方式.ppt
文本预览下载声明
第3章 指令格式与寻址方式 ;3.1 指令格式 ;指令的3种操作数;
;3.2.2 有效地址的概念;有效地址EA计算方法:;16位寻址方式主要是针对于实地址存储模式的应用,兼容了Intel 8086的工作模式。存储器的最大分段不超过64KB,最大线性地址空间是1MB。
32位寻址方式主要是用于保护模式下,程序只能存取最低4GB地址空间,使用16位或32位地址。使用16位的分段选择子以及32位的段内偏移地址,每个段最大可达4GB。
64位寻址方式采用64位线性地址空间,支持40位物理地址空间。通常不采用分段方式,而是将CS,DS,ES和SS的段基址看成0,这样线性地址等于有效地址,是一种平展存储管理模式。;3.3 各种寻址方式;二、寄存器寻址方式;三.存储器寻址方式;(2)寄存器间接寻址;3)64位寻址时,16个32位/64位通用寄存器均可作寄存器间接寻址使用。MOV CL,[R10] ;操作数是8位的,操作数地址由64位寄存器R10指出MOV RDX,[EBX] ;操作数是64位的,操作数地址由32位寄存器EBX,指 出经零扩展后形成64位有效地址MOV AX,[BX] 的执行过程:假设BX寄存器的内容为1000H,则把DS段中的1000H号单元的16位数据传送给AX寄存器,该指令的机器码为8B07H。 ;(3)寄存器相对寻址 ;3)64位寻址时,16个32位/64位通用寄存器都能作为基址寄存器。当使用32位通用寄存器时,先将32位通用寄存器内容零扩展为64位,再与经过符号扩展为64位的位移量相加形成64位有效地址。只有MOV指令允许使用64位的位移量,而其他指令只能使用不超过32位的位移量。
MOV RAX,[R15+5];有效地址为R15寄存器内容加5 的和
MOV RCX,[EDX+0F0H]
;有效地址为EDX寄存器内容零扩展为64位后,再与位移量0F0H符号扩展成64位(0FFFFFFFFFFFFFFF0H)相加的和;MOV AX,[BX+24] ;也可写成 MOV AX,24[BX]
MOV ECX,[EBP+50] ;也可写成 MOV ECX,50[EBP]
MOV DX,[EAX+BASE] ;也可写成 MOV DX,BASE[EAX]
BASE是符号常量或变量
MOV ECX,[EBP+50]指令执行时,EBP寄存器内容为3000H,再加上位移量50H之和为3050H,然后把由SS寄存器寻址的段中的3050H单元的32位数据传送给ECX。;(4)基址加变址寻址;(5)带位移的基址加变址寻址 ;(7???基址加比例变址寻址;四.端口寻址方式;;(1) 直接端口寻址;段寄存器的使用规则
显示全部