将二进制字微指令转换为助记符

时间:2015-07-08 20:09:49

标签: assembly

我所指的二进制词来自这张图片:

enter image description here

我已经找到了我认为正确的答案。我只想仔细检查并确定。

线路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;

我感谢你能给我的任何帮助

1 个答案:

答案 0 :(得分:1)

是的,你是对的

至少如果R[IR[13]]表示%ir第13位不是具有数字IR [13] 的寄存器,则可能只能r0r1 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。

rs1rs2%ir中指令中指定的寄存器。