设计一条新的机器指令,该指令的功能是把一个通用寄存器SR的内容与一个内存单元ADR中的内容相加,结果保存到另外一个通用寄存器DR中。要标出这条指令的微址、下址、CI3~0、SCC3~0、MRW、I2~0、I8~6、I5~3、B口、A口、SST、SSH、DC2、DC1
时间: 2023-07-10 13:20:32 浏览: 44
好的,我为您设计一条新的机器指令ADD SR ADR DR,该指令的微操作如下:
1. 微址:0000
2. 下址:PC+1
3. CI3~0:0000
4. SCC3~0:0000
5. MRW:1
6. I2~0:000
7. I8~6:000
8. I5~3:000
9. B口:SR
10. A口:ADR
11. SST:1
12. SSH:0
13. DC2:0
14. DC1:1
该指令的详细说明如下:
1. 微址:指令的微地址,用于确定下一步的微操作。
2. 下址:下一条指令的地址,通常为PC+1。
3. CI3~0:条件码,通常为0000。
4. SCC3~0:子指令码,通常为0000。
5. MRW:内存读写标志位,1表示进行读操作,0表示进行写操作。
6. I2~0:立即数,通常为000。
7. I8~6:寄存器选择码,用于选择DR寄存器。
8. I5~3:立即数,通常为000。
9. B口:操作数,用于读取SR寄存器中的内容。
10. A口:操作数,用于读取ADR指向的内存单元中的内容。
11. SST:寄存器选择位,用于选择SR寄存器。
12. SSH:传输位,用于将B口的值传输到ALU中。
13. DC2:地址计算位,用于计算ADR中存放的地址。
14. DC1:地址计算位,用于将结果保存到DR寄存器中。
请注意,这只是一种可能的实现方式,具体实现方式可能会因计算机的体系结构而异。
相关问题
设计一条新的机器指令,该指令的功能是把一个通用寄存器SR的内容与一个内存单元ADR中的内容相加,结果保存到另外一个通用寄存器DR中。
好的,我可以为您设计一条新的机器指令,该指令的汇编代码为ADD SR ADR DR,具体实现方式如下:
1. 首先,从程序计数器(PC)中读取该指令的地址,并将其保存到内部寄存器IR中。
2. 将SR中的内容加载到一个临时寄存器TR中。
3. 将ADR中的地址加载到一个临时寄存器TR1中。
4. 将TR1中的地址作为指针,从内存中读取一个字节,并将其加到TR中的值上。
5. 将TR中的结果保存到DR中。
6. 更新PC,使其指向下一条指令。
这条指令的作用是将SR中的值与ADR指向的内存单元中的值相加,结果保存到DR中。您可以将其添加到您的指令集中,以便在程序中使用。
设计一条新的机器指令,该指令的功能是把一个通用寄存器的内容与一个内存单元ADR中的内容相加,结果保存到另外一个通用寄存器中。
假设我们将这条新的机器指令命名为"ADD_MEM",该指令的操作码为"1101",寄存器编号用3位二进制数表示,内存地址用16位二进制数表示,那么该指令的格式可以表示为:
```
1101 R1 R2 ADR
```
其中,R1代表存储结果的寄存器,R2代表要相加的寄存器,ADR代表要相加的内存地址。
该指令的执行过程如下:
1. 将内存地址ADR中的内容读取出来,保存到一个临时寄存器中。
2. 将R2寄存器中的内容读取出来,与临时寄存器中的内容相加,得到结果。
3. 将结果保存到R1寄存器中。
该指令的实现需要在微程序中设计相应的微指令序列,包括读取内存、读取寄存器、相加、写入寄存器等操作,以实现指令的功能。