反汇编命令 8E C0

发布于 2024-11-14 03:20:18 字数 123 浏览 3 评论 0原文

我需要反汇编命令 8E C0,你能帮我吗?

我已经做到了:

第一个字节 8E = 10001110b 它是 mov sr,reg/mem

但我不知道如何处理第二个字节 11000000

I need to disassemble command 8E C0, can you help me?

I already made this:

First byte 8E = 10001110b it's mov sr,reg/mem

But I don't know what to do with the second byte 11000000

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

虚拟世界 2024-11-21 03:20:18

您可以查阅英特尔文档来自己解决这个问题,或者您可以使用更容易的反汇编程序。答案是:

mov ES, EAX

我使用 yasm,并执行了以下操作:

# assemble the two bytes:
echo 'lbl: db 0x8e, 0xc0' | yasm -f elf - -o tmp.o

# disassemble the output:
objdump -d -M intel tmp.o

如果您想手动执行此操作,则字节可以解释如下。

8E对应Intel指令集参考中的这条指令:

8E /r ... MOV Sreg,r/m16 ... 将 r/m16 移至段寄存器

/r< /code> 表示接下来的字节是“Mod R/M”字节。指令的描述表明我们应该将 Reg/Opcode 部分解释为段寄存器,该寄存器将成为目标,ModR/M< /em> 部分将指示来源。将位分开,Mod 是前两位 (11b),Reg 是接下来的三位 (000b) )和R/M底部三位(000b)。

查找相应的表,11Mod表示寄存器操作数,R/M表示EAX(或 AX(16 位模式)),当引用段寄存器时,Reg000ES

You can wade through the intel docs to work it out yourself, or you can use a disassembler which is far easier. The answer is:

mov ES, EAX

I use yasm, and did the following:

# assemble the two bytes:
echo 'lbl: db 0x8e, 0xc0' | yasm -f elf - -o tmp.o

# disassemble the output:
objdump -d -M intel tmp.o

If you want to do this by hand, the bytes can by interpreted as follows.

8E corresponds to this instruction in the Intel instruction set reference:

8E /r ... MOV Sreg,r/m16 ... Move r/m16 to segment register

The /r indicates that the following byte is a "Mod R/M" byte. The description of the instruction indicates that we should interpret the Reg/Opcode part as a segment register which will be the destination and the the Mod and R/M parts will indicate the source. Seperating out the bits, Mod is the top two bits (11b), Reg is the next three (000b) and R/M the bottom three bits (000b).

Looking up in the appropriate table, Mod of 11 indicates a register operand, with R/M denoting EAX (or AX in 16-bit mode) and 000 for Reg when referring to a segment register is ES.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文