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

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

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

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

现在,两部分指令的位置分别起始于地址0000h和0020h,而两部分操作数据的地址分别起始于0010h和0030h。我们希望自动加法器从0000h开始执行所有指令完成计算任务。

我们必须移除000Ch处的Halt指令,这里的移除是指用其他代码替换它。但仅仅如此是不够的,问题在于不论我们用什么来替换Halt指令,保存在地址000Ch的字节都会被当做指令代码。更糟糕的是,从这个位置开始,存储器中每隔3个字节的地址:000Fh,0012h,0015h,0018h,001Bh以及001Eh,这些地址保存的字节也会被当做指令代码来处理。如果其中的一个字节恰好为11h(这是Store指令的代码)将会发生什么?如果 Store指令后面的2个字节的地址所指向的位置刚好为0023h,那又会发生什么呢?它导致的结果是,加法器将累加器中的内容写入这个地址,而这个地址中已经保存了重要的数据。即使这些情况都没有发生,加法器从存储器的001Eh地址之后取到的下一条指令的位置将是0021h,不是0020h,而事实上0020h才是下一条指令的存储地址。

17 自动操作

237