1

我想为 marie 编写一个汇编程序,但是我一开始就被卡住了。我的机器代码必须具有以下格式:FFFF 'first address' 'last addres' '... commands'

假设我们有这样的代码:

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

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

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

提前致谢

4

1 回答 1

1

现实生活中的汇编器使用元指令(通常称为 ORG,它是 'origin' 的缩写,例如ORG 100)来指示汇编器从哪个地址开始(或恢复,当放置在程序中间的某个位置时)。当然,随意用另一种方式解决它(硬编码;命令行参数)。

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

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

剩下的,如果您知道如何手动将汇编语言转换为机器代码,那么自动化该过程应该很简单。

于 2015-01-05T21:17:01.247 回答