我正在通过计算机编程艺术 (Knuth的)MIX指令。
我想了解MUL 1000
指令如下:
| + | 1 | 1 | 1 | 1 | 1 | [rA before] | + | 1 | 1 | 1 | 1 | 1 | [Cell 1000] | + | 0 | 1 | 2 | 3 | 4 | [rA after] | + | 5 | 4 | 3 | 2 | 1 | [rX After]
有没有办法知道为什么rA
和rX
有这个价值?
请帮助!
书中特定页面的图像
MIX的乘法指令定义如下:
MUL ADDR,i(0:5) --> (rA,rX) := rA * memory[ADDR + rIi];
这意味着累加器寄存器rA
和存储器地址ADDR + rIi
(其中rIi
是一个索引寄存器)的值相乘。 乘法结果存入累加器寄存器rA
和扩展寄存器rX
。
还有以下内容:
MIX是一个混合二进制十进制计算机。
因此,计算是通过简单地使用如下的长乘法完成的,其中Cell 1000
来自命令MUL 1000
而不使用索引寄存器rIi
。 标识符Cell 1000
表示存储1 1 1 1 1
的地址,它不是该值本身。
rA: 1 1 1 1 1 Cell 1000: * 1 1 1 1 1 ___________________ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ___________________ 0 1 2 3 4 5 4 3 2 1 | rA | rX | rA = 0 1 2 3 4 rX = 5 4 3 2 1