都是获取偏移地址,为什么指令“LEAEBX,[ESI]”正确,而指令“MOVEBX,OFFSET[ESI]”就错误?
前者在指令执行时获得偏移地址,是正确的;但后者的OFFSET只能在汇编阶段获得偏移地址,但此时寄存器内容是不可知的,所以无法获得偏移地址。
举一反三
- 指令“mov [esi], dword ptr [edi]”没有错误。 A: 正确 B: 错误
- 指令“mov [esi], dword ptr [edi]”没有错误。
- 指出MOVEAX,[ESI][EBP+0FFFF0H]指令中源操作数和目的操作数的寻址方式。
- 中国大学MOOC: MOV EAX, [EBX] [ESI] 指令的源操作数采用( )寻址方式。
- 已知ESI=04000H,EBX=20H,指令“MOVEAX,[ESI+EBX*2+8]”中访问的有效地址是_______。
内容
- 0
中国大学MOOC: 对于IA-32中的指令“movl 8(%edx, %esi, 4), %edx”,若R[edx]=0000 01B6H,R[esi]=0000 0008H,其源操作数的有效地址EA是( )。
- 1
对于IA-32中的指令“movl8(%edx,%esi,4),%edx”,若R[edx]=000001B6H,R[esi]=00000008H,其源操作数的有效地址EA是()。 A: 000001B6H B: 000001DEH C: 000001F0H D: 000006E8H
- 2
legacy [5le^Esi]
- 3
中国大学MOOC: 指令“mov esi,[ebp+4]”的源操作数来自_____________。
- 4
MOV EAX, [EBX] [ESI] 指令的源操作数采用( )寻址方式。 A: 基址变址 B: 寄存器 C: 寄存器相对 D: 存储器间接