玛丽的装配工

时间:2015-01-05 18:15:51

标签: assembly memory-address machine-code marie

我想为marie写一个汇编程序,但是我一开始就卡住了。我的机器代码必须具有以下格式:FFFF'第一个地址''最后一个地址''...命令'

假设我们有这样的代码:

LOAD 104
ADD 105
STORE 106
HALT
HEX 23
HEX FFE9
DEC 0

现在,我们无法确定我们从哪个地址开始,所以我应该一直使用100,还是有时会改变?

现在,对于最后一个地址,它只是100+(命令数)?

提前致谢

1 个答案:

答案 0 :(得分:1)

现实生成的汇编程序使用元指令(通常称为ORG,它是'origin'的缩写,例如ORG 100)来指示汇编程序在哪个地址启动(或恢复,当放在中间某处时该计划)。当然,可以用另一种方式解决它(硬编码;命令行参数)。

对于为MARIE编写的程序,正确的地址是什么完全取决于运行时系统(在真实计算机上,操作系统;在您的情况下,是模拟器)。我看到从100开始的代码示例,所以这是有道理的。也许为运行时系统保留低于100的地址,谁知道。

从那里,汇编器会自动增加每条指令的地址。有了MARIE,我想这很简单(只需添加一个);在现实生活中的处理器中,不同的指令通常具有不同的大小。

对于其他人,如果您知道如何将汇编语言转换为机器代码手动,那么自动化该过程应该是直截了当的。