Windows 计算机编程的艺术

Windows 计算机编程的艺术,windows,Windows,我正在学习计算机编程艺术(Knuth的)混合指令 我试图理解以下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的乘法指令定义为: M

我正在学习计算机编程艺术(Knuth的)混合指令

我试图理解以下
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*内存[ADDR+rIi]

这意味着累加器寄存器
rA
和内存地址
ADDR+rIi
的值相乘,其中
rIi
是索引寄存器。乘法结果存储在累加器寄存器
rA
和扩展寄存器
rX

也有以下意见:

MIX是一种混合二进制-十进制计算机

因此,只需使用如下长乘法即可完成计算,其中
Cell 1000
来自命令
MUL 1000
,无需使用索引寄存器
rIi
。标识符
单元格1000
表示存储
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

嗨,Swaminathan,如果这个答案解决了你的问题,请点击检查标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。