想在这里问我们计算机结构考试的一些问题。以下是Mic-1 IJVM的添加命令。我们被要求编写新的iaddtriple
命令,该命令将添加堆栈的三个高位字并将其再次存储在堆栈中。
iadd1 MAR = SP = SP − 1; rd Read in next-to-top word on stack
iadd2 H = TOS H = top of stack
iadd3 MDR = TOS = MDR + H;wr;go to Main1 Add two top words, write to top of stack
我的答案是;
iaddtriple1 MAR = SP = SP − 1; rd
iaddtriple2 H = TOS H =
iaddtriple3 H = MDR = TOS = MDR + H
iaddtriple4 MAR = SP = SP − 1;
iaddtriple5 MDR = TOS = MDR + H ; wr;go to Main1
我想问一下我的
iaddtriple3
步骤是否合法。我的一个朋友告诉我H=blabla +H
分配应该是非法的,因此不应该使用。但是数据路径周期的时序图证明了我正确。提前致谢。iaddtriple3 H = MDR = TOS = MDR + H
最佳答案
可以执行
H = H + MDR
由于可以在C总线位中指定H,因此ALU操作为A + B,B寄存器为MDR。实际的微指令是
0003C8000
前两个十六进制数字可以是任何数字,第三个十六进制数字是0或8。
关于java - Java虚拟机实现iadd微命令即兴,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16666963/