assembly - intel机器码转汇编代码的问题

标签 assembly x86 format intel opcode

专家,请问intel x86机器代码/汇编代码转换是singleSide还是bothSide?

表示: assemblyCode ---> machineCode 和 machineCode ---> assemblyCode 都可用。

由于x86机器码的大小不同(1-15字节),而操作码的大小不同(1-3字节),如何确定一个操作码是1字节、2字节还是3字节?

我从来没有找到x86指令前缀的例子,如果这里是1字节前缀,如何确定它是前缀还是操作码?

当然, assemblyCode ---> machineCode 、助记符 + oprand[w/b] 的标识可以通过映射某个 MappingTable 来确定响应的 machineCode 是什么。

但是,当过程相反时:

{ bbbbbbbb,bbbbbbbb,bbbbbbbb,//指令1 bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,//指令2 bbbbbbbb,bbbbbbbb//指令3 }

----> {bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb}

我不知道哪些有效位或字节来确定一条指令的长度(大小)。

有人能告诉我如何确定吗?(操作码的大小,前缀示例。) 感谢您的帮助。

最佳答案

您需要的详细信息在 Intel® 64 and IA-32 ArchitecturesSoftware Developer’s Manual Volume 2B: Instruction Set Reference, N-Z 。请参阅附录 A,它包含您需要的一切。

关于assembly - intel机器码转汇编代码的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2409612/

相关文章:

调用 C 函数而不用 NM 命令显示它们

assembly - 与 0 (x86) 比较后的 JNB

assembly - 在实模式下使用 BIOS 格式化磁盘时出错

R 的 Format 函数返回奇数结果

javascript - 使用 Javascript 格式化 NdefFormatable NFC 标签

c - About Variable-Size Stack Frames,关于栈帧的对齐,来自CSAPP的一个例子

c - 如何将变量传递给使用 gcc 编译的 intel 格式内联 asm 代码

c++ - 矢量化 : multiply _m256i elements

Java DateFormat parse() 不考虑时区

c - 协助使用C代码和汇编代码绘制堆栈