由偏移地址四元素可组合出5种存值器寻址方式 ①直接寻址 、 指令中的操作数部分直接给出操作数的有效地址 EA,操作数可以是16位或32位整数,操作数默认 在DS段中 低地址 操作码 MOVAX, 3000HI 00H}CS段 30H DS50000 3000 50000 53000 53000 DS段 34H AX 12H 34H 12H 高地址1
11 ① 直接寻址 指令中的操作数部分直接给出操作数的有效地址 EA,操作数可以是16位或32位整数,操作数默认 在DS段中 MOV AX, [3000H] 低地址 高地址 CS段 操作码 00H 30H 34H 12H AX 12H 34H DS段 50000 53000 DS 5000 0 3000 53000 + 由偏移地址四元素可组合出5种存储器寻址方式
如果操作数在DS以外的其他段(CS,sS,ES,FS,GS) 中,指令中必须包含段超越前缀 低地址 MOVAX, FS: 3000H 操作码 00H CS段 30H FS20000 3000 20000 23000 23000 FS段 34H AX 12H 34H 12H 高地址 12
12 如果操作数在DS以外的其他段(CS,SS,ES,FS,GS) 中,指令中必须包含段超越前缀 MOV AX, FS:[3000H] 低地址 高地址 CS段 操作码 00H 30H 34H 12H AX 12H 34H FS段 20000 23000 FS 2000 0 3000 23000 +
★斗 ②寄存器间接寻址 操作数地址的偏移量(有效地址EA)存放在寄存器中 16位寻址:偏移地址放在S,DL,BP,BX中 以SL,DL,BX间接寻址,默认操作数在DS段中 MOVAX, SI 访问数据段 以BP间接寻址,默认操作数在SS段中 MOVAX,[BP];访问堆栈段 32位寻址:偏移地址放在8个32位通用寄存器中 除ESP,EBP默认段寄存器为SS外,其余均默认段寄 存器为DS MOVEAX,[ESP];访问堆栈段
13 ② 寄存器间接寻址 操作数地址的偏移量(有效地址EA)存放在寄存器中 16位寻址:偏移地址放在SI,DI,BP,BX中 以SI,DI, BX间接寻址,默认操作数在DS段中 MOV AX, [SI] ; 访问数据段 以BP间接寻址,默认操作数在SS段中 MOV AX, [BP] ;访问堆栈段 32位寻址:偏移地址放在8个32位通用寄存器中 除ESP,EBP默认段寄存器为SS外,其余均默认段寄 存器为DS MOV EAX, [ESP] ;访问堆栈段
★斗 MOⅴAX,[BP 低地址 操作码 CS段 SS7000 +BP3000 70000 73000 73000 SS段 34H AX 12H 34H 12H 高地址
14 低地址 高地址 CS段 操作码 34H 12H AX 12H 34H SS段 70000 73000 SS 7000 0 3000 73000 + MOV AX, [BP] BP
★斗 ③基址寻址 EA=基址寄存器+位移量 16位寻址:BP,BX为基址寄存器 BX,DS为默认段寄存器 BP,SS为默认段寄存器 32位寻址:8个32位通用寄存器均可作为基址寄存 器,除ESP,EBP默认段寄存器为SS外,其余均默认 段寄存器为DS MOV EAX, BX+24< Y MOV EAX, 24[BX MOV DX, EAX+1500> MOV DX, 1500EAXI 15
15 ③ 基址寻址 EA=基址寄存器+位移量 16位寻址:BP,BX为基址寄存器 BX, DS为默认段寄存器 BP, SS为默认段寄存器 32位寻址:8个32位通用寄存器均可作为基址寄存 器,除ESP,EBP默认段寄存器为SS外,其余均默认 段寄存器为DS MOV EAX, [BX+24] MOV DX, [EAX+1500] MOV EAX, 24[BX] MOV DX, 1500[EAX]