【问题标题】:Conversion to Machine language转换为机器语言
【发布时间】:2014-12-18 17:20:30
【问题描述】:

我是计算机科学专业的学生,​​我有 COAL(计算机组织和汇编语言)课程,我试图将汇编语言转换为机器语言,但遇到了一些困难。

例如,如果我必须将 MOV [SI + 490], SP 转换为机器语言,我该怎么做? 我知道一些术语,例如 d、w、mod、reg、r/m。

一些有用的链接会有所帮助。谢谢!

【问题讨论】:

  • “机器语言”和“汇编语言”有什么区别?你说的是手工组装吗?例如像“MOV X”这样的汇编指令到像“0x80 0xff”这样的字节?
  • 机器语言由 1 和 0 组成。我想知道如何将装配部件转换为机器语言(以数字表示)

标签: assembly x86 machine-code


【解决方案1】:

首先查看它实际上是什么类型的指令,mov r/m16, r16,它看起来是 16 位模式,所以格式是 89 /r

然后编码ModR/M,rm部分是si + sword,r是sp,所以我们得到A4

总之:

89 A4 EA 01

【讨论】:

  • 我在mod中遇到问题,意味着我不知道如何选择mod值?
  • @AniqMakhani 看看我链接到的那个表,它根据 mod 分为 4 个类别。
  • 是的,00、01、10、11,但我将如何决定选择哪个 mod 值?
  • @AniqMakhani 基于您的 r/m 操作数的形式。
  • 我陷入了这个问题 MOV DS,AX。我们对 DS 没有任何价值。那么我们应该怎么做呢?
猜你喜欢
  • 2014-09-16
  • 1970-01-01
  • 2017-06-17
  • 1970-01-01
  • 2011-01-11
  • 2010-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多