读书人

请求赞助翻译一个 32 位汇编指令到机器

发布时间: 2013-10-03 17:28:15 作者: rapoo

请求协助翻译一个 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

读书人网 >汇编语言

热点推荐