现在,两部分指令的位置分别起始于地址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