首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算机编程混合MUL教学的艺术

计算机编程混合MUL教学的艺术
EN

Stack Overflow用户
提问于 2017-06-23 03:48:13
回答 1查看 88关注 0票数 2

我正在学习计算机编程艺术(Knuth's)混合教学。

我正在努力理解MUL 1000指令如下:

代码语言:javascript
复制
| + | 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]

有什么方法可以知道为什么rArX会得到这些值呢?

帮帮忙!

书中特定页面的图像

EN

回答 1

Stack Overflow用户

发布于 2017-06-23 13:05:23

混合的乘法指令定义为,请看这里

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的地址,而不是值本身。

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44712763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档