我所指的二进制词来自这张图片:
我已经找到了我认为正确的答案。我只想仔细检查并确定。
线路1:
R[33] <- SEXT13(R[37]);
线路2:
R[33] <- ADD(R[rs1], R[33]);
GOTO 1793;
行3:
R[33] <- ADD(R[rs1], R[rs2]);
IF R[IR[13]] THEN GOTO 1810;
我感谢你能给我的任何帮助
答案 0 :(得分:1)
是的,你是对的
至少如果R[IR[13]]
表示%ir
的第13位且不是具有数字IR [13] 的寄存器,则可能只能r0
或r1
IR [13] 有点。
更详细的分析:
第1行
A AMUX B BMUX C CMUX WR RD ALU
Binary 100101 0 000000 0 100001 0 0 0 1100
Meaning 37 MIR 0 MIR 33 MIR No Wr. No Rd. SEXT13(A)
COND JUMP ADDR
Binary 000 00000000000
Meaning Use Next Address 0
编码: r33 = SEXT13(r37)
,移至下一个微码位置。
第2行
A AMUX B BMUX C CMUX WR RD ALU
Binary 000000 0 100001 0 100001 0 0 0 1100
Meaning 0 rs1 33 MIR 33 MIR No Wr. No Rd. ADD(A,B)
COND JUMP ADDR
Binary 110 11100000001
Meaning Use Jump Address 1793
编码: r33 = ADD rs1, r33
,移至微码位置1793 。
第3行
A AMUX B BMUX C CMUX WR RD ALU
Binary 000000 0 000000 0 100001 0 0 0 1100
Meaning 0 rs1 0 rs2 33 MIR No Wr. No Rd. ADD(A,B)
COND JUMP ADDR
Binary 101 11100010010
Meaning Use Jump Address if IR[13] = 1 1810
编码: r33 = ADD rs1, rs2
,如果设置了%ir [13],则移至微码位置1810。
rs1
和rs2
是%ir
中指令中指定的寄存器。