汇编解码为机器码(Y86)时如何确定程序计数器?

How to determine the program counter when decoding from assembly to machine code (Y86)?

我无法理解从汇编解码为 Y86 时如何确定地址位置。在示例中,

0x030          
0x030: 6300                     # xorq %rax , %rax
0x032: 50030001000000000000     # mrmovq 0x100(%rax ) , %rbx
0x03c: 50010002000000000000     # mrmovq 0x200(%rax ) , %rcx

地址位置如何从0x030到0x032到0x03c?确定位置增加多少的公式是什么?

6300中有多少字节?答案:2 和 0x030 + 2 = 0x03250030001000000000000 中有多少个字节?答案:10 和 0x032 + 10 = 0x03c.

所以你只需要统计机器码中的字节数,然后加上前一个地址就可以得到下一个地址。