请求协助翻译一个 32 位汇编指令到机器码.
我编一个动态内存固定需要 mov mov [0003B5B0], ebx 这样的代码, 我查询 80x86 Opcodes 表认为这是个 Mov Mem,Reg 格式的代码, 该翻译成 1000100woorrrmmm 模样, 但是我看不懂 80x86 Opcodes 表中如下的说明:
oo : Function
? 00 : If mmm = 110, then a displacement follows the operation; otherwise, no displacement is used
? 01 : An 8-bit signed displacement follows the opcode
? 10 : A 16-bit signed displacement follows the opcode
? 11 : mmm specifies a register, instead of an addressing mode
mmm : Function
? 000 : DS:[BX+SI]
? 001 : DS:[BX+DI]
? 010 : SS:[BP+SI]
? 011 : SS:[BP+DI]
? 100 : DS:[SI]
? 101 : DS:[DI]
? 110 : SS:[BP]
? 111 : DS:[BX]
请告诉我这句怎么翻译成机器码. 汇编 function 机器码 机器语言 机器指令
[解决办法]
89 1d b0 b5 03 00
opcode ModR/M displacement
10001001 00 011 101 b0 b5 03 00
在32位模式下:
Mod=00 RM=101 有效地址在附加的32位displacement中给出。
reg=011 ebx
[解决办法]
命令行工具disasm反汇编由命令行参数给出的起始地址和字节序列内容。
C:\>disasm 1000 89 1d b0 b5 03 00
00001000 891db0b50300 mov [0003b5b0],ebx
http://download.csdn.net/detail/zhao4zhong1/6312905