如何在 x86 中获取指令十六进制代码?

how to I get Instruction hex code in x86?

section .data

section .text

global _start


_start:
    mov eax, loop ; eax <- addr of loop
    mov ebx, new
    mov ecx, new   
    mov esi, 2
loop:
    mov edx, [eax] ; edx <- instruction of loop, but not worked
    mov [ebx], edx 
    add eax, esi
    add ebx, esi
    cmp eax, ecx
    jne loop
    mov ecx, ebx
new:

x86 code picture

这段代码中我想要的是将循环的十六进制指令代码放入edx中。

如果看到这里,mov edx和[eax]都存入了循环,我认为指令码是0x1389108b,但实际存的值是0x13cc10cc。我不知道如何得到这个值 0x1389108b.

loop 处的指令是 8b 10,下一条指令是 89 13。但是,您在每条指令处都设置了断点,因此调试器已将每条指令的第一个字节覆盖为断点指令。断点的代码是 cc,所以这就是您的程序读取的内容。如果你 运行 它没有设置断点,你会得到你期望的值。