专家,我不知道intel x86 machineCode/assemblyCode转换是singleSide还是bothSide?intel机器码到汇编代码问题
指:assemblyCode ---> machineCode和machineCode ---> assemblyCode都可用。
由于x86 machineCode的大小不同(1-15字节),并且操作码在(1-3字节)中有所不同,所以如何确定一个操作码是1字节还是2字节或3字节?
,我从来没有发现的x86指令前缀的例子,如果这里是1字节的前缀,如何判断它的前缀或操作码?
当然,assemblyCode ---> machineCode,助记符+操作数[w/b]的标识可以通过映射某个MappingTable来确定响应machineCode是什么。
但是,当处理是相反的:
{BBBBBBBB,BBBBBBBB,BBBBBBBB,//指令1 BBBBBBBB,BBBBBBBB,BBBBBBBB,BBBBBBBB,BBBBBBBB,BBBBBBBB,//指令2 BBBBBBBB,BBBBBBBB // instruction3 }
----> {BBBBBBBB,BBBBBBBB,BBBBBBBB,BBBBBBBB,BBBBBBBB,BBBBBBBB,BBBBBBBB,BBBBBBBB,BBBBBBBB,BBBBBBBB,BBBBBBBB}
我不知道哪个是显著位或byts以确定多久(什么大小)一个工具ction是。
将任何人告诉我如何确定?(操作码的大小,例如前缀)。 感谢您的帮助。
谢谢,我会查找它。 – Johnny 2010-03-09 14:47:52
谢谢,我注意到: 表A-2。单字节操作码映射:(00H - F7H) 0F LOCK(前缀) 表A-3。双字节操作码映射:00H - 77H(第一个字节为0FH) 表A-3。双字节操作码映射:08H - 7FH(第一个字节为0FH) 表A-3。双字节操作码映射:80H - F7H(第一个字节为0FH) 表A-3。双字节操作码映射:88H - FFH(第一个字节为0FH) – Johnny 2010-03-09 15:19:22
表A-4。三字节操作码映射:00H - F7H(前两个字节为0F 38H) 表A-4。三字节操作码映射:08H - FFH(前两个字节为0F 38H) 表A-5。三字节操作码映射:00H - F7H(前两个字节为0F 3AH) 表A-5。三字节操作码映射:08H - FFH(前两个字节为0F 3AH) 这是非常有用的,谢谢。 – Johnny 2010-03-09 15:20:20