%eax 寄存器寻址 格式Ea R[Ea]
先找到寄存器集合
带入寄存器 %eax 找到其的值 0x100
0x104 绝对寻址 格式 Imm M[Imm]
先找到存储器集合
带入存储器 0x104 找到其值 0xAB
$0x108 立即数寻址 格式 $Imm Imm
他就是 0x108
(%eax) 间接寻址 格式 (Ea) M[R[Ea]]
我们需要先找 R[Ea] 那么就是去找寄存器
%eax 的值是 0x100 M[0x100]那么需要去找 存储器
找到 0x100的地址 拿到 0xFF
4 (%eax) 基址+偏移量 寻址 格式 Imm (Eb)
M[Imm + R[Eb]]
先解析 R[Eb] 那么就是 0x100
0x100 + 4 = 0x104
M[0x104] = 0xAB
我实在是懒 我不想在写格式了 兄弟们 就看看那个操作数吧
9 (%eax, %edx) 寻址 M[Imm + R[Eb] + R[EI]]
我解析里面的
R[%eax] = 0x100
R[%edx] = 1x3 = 3
9 + 0x100 + 3 = 0x10C
M[0x10C] = 0x11
260 (%ecx, %edx) 寻址 M[Imm + R[Eb] + R[EI]]
R[%ecx] = 0x1
R[%edx] = 1 * 3 = 3
260转16进制 我个人不太喜欢一直除记余数所以我直接转了
260 = 0001 0000 0100 = 0x104
0x104 + 0x3 + 0x1 = 0x108
M[0x108] = 0x13
0xFc (, %ecx, 4) 伸缩化的变址寻址 M[Imm + R[Eb] * s]
R[%ecx] = 0x1
0x1 * 4 = 0x4
0xFc + 0x4 = 0x100
M[0x100] = 0xFF
(%eax, %edx, 4) 伸缩化的变址寻址 M[R[Eb] + R[Ei] * s]
R[%eax] = 0x100
R[%edx] = 1 * 3 = 0x3
0x100 + 0x3 * 4 = 0x100 + 0xc = 0x10C
M[0x10c] = 0x11
答案在217页
版权归原作者 NEKGod 所有, 如有侵权,请联系我们删除。