intel机器码到汇编代码问题

Joh*_*nny 8 format x86 assembly intel opcode

专家,我不知道intel x86 machineCode/assemblyCode转换是singleSide还是BothSide?

意思是:assemblyCode ---> machineCode和machineCode ---> assemblyCode都可用.

由于x86 machineCode的大小不同(1-15字节),并且操作码在(1-3字节)中变化,如何确定一个操作码是1byte还是2byte还是3byte?

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

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

但是,当过程逆转时:

{bbbbbbbb,bbbbbbbb,bbbbbbbb,// instruction1 bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,// instruction2 bbbbbbbb,bbbbbbbb // instruction3}

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

我不知道确定一条指令的长度(大小)的重要位或字节.

任何人都会告诉我如何确定?(操作码的大小,前缀示例.)感谢您的帮助.