【问题标题】:opcode of transfer from memory to register从内存传输到寄存器的操作码
【发布时间】:2014-11-23 14:59:27
【问题描述】:
     Mov DL, [1000H] 

这是代码,我找不到如何编写 OPCODE

它是从内存到寄存器的传输,它使用 MOV 关键字所以

我看了指令集

我发现“100010 dw oo rrr mmm disp”

所以我以这种格式制作了 OPCODE “100010 11 oo 010 mmm disp”

我无法决定“oo”和“mmm”部分

据我所知,我们在 mmm 部分写了一个寄存器代码,这里没有寄存器。

“oo”和“mmm”部分应该写什么?

【问题讨论】:

  • 请提供您正在使用的指令集参考的链接。通常有一个单独的部分解释如何编码r/m。但实际上,实际的答案是使用汇编程序。手工组装代码是一项有趣的练习,但它并不实用,因为它容易出错、耗时,并且在您更改代码时需要重复:这正是计算机擅长的事情。执行此操作的程序称为汇编程序。

标签: x86-16 opcode instruction-set


【解决方案1】:
mov dl,[1000h]  ; -> 100010 11 oo 010 mmm disp  

您的操作码编码错误地寻址 DX 寄存器。 正确的编码是 10001010b, 0001_0110b, 0000_0000b, 0001_0000b
所以 mod 字段是 00b 而 r/m 字段是 110b

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 2012-11-05
    相关资源
    最近更新 更多