奎克的藏经阁 · 原书印刷页

编码 隐匿在计算机软硬件背后的语言 · 第 236 页

PDF 物理页索引 252 · 编码隐匿在计算机软硬件背后的语言

书名
编码 隐匿在计算机软硬件背后的语言
作者
未记录
印刷页
236
PDF 物理页
252(从 0 开始)
章节
编码隐匿在计算机软硬件背后的语言
UUID
38270854-596f-4a26-8183-db8c968c6020
来源类型
original_book
页面 SHA-256
5ac6ef5e1040bd5a811dde56a1f1079b33cc5a209fb5eaab2915ecce24fa0e74

通常,指令从0000h开始存放,这是因为当计数器复位后从该位置访问RAM阵列。最后的Halt指令存放在000Ch地址。我们可以把这3个操作数及它们的运算结果保存在RAM阵列的任何地址(当然这不包括最开始的13个字节,因为它们已经用来存放操作指令),所以我们选择在从0010h地址开始保存操作数。

假设现在你发现需要在原来的结果中再加两个数,你可以向存储器中输入一些新的指令以替换原来所有的指令,但是你可能不愿意这么做。或许你更倾向于在原指令的地址后增加一些新的指令。第一步要做的就是把000Ch地址处的Halt指令替换为一个Load指令。但你仍然需要增加两条Add指令,一条Store指令,以及一条新的Halt指令。唯一的问题是,现在0010h地址已经保存了一些数据,因此需要把这些数据转移到较高的地址空间中,然后还需要修改那些指向这些地址空间的指令。

试想一下,把操作码和操作数存放在同一个RAM阵列并不是一个急于解决的问题。但可以肯定的是,这是一个迟早要解决的问题,不如现在就找一个解决办法吧。在当前的例子中,也许你更愿意从0020h地址开始存放新的指令,并从0030h处开始存放新的操作数据。

编码隐匿在计算机软硬件背后的语言

236