模块接口 信号名 opcode[5:0] funct[5:0] Zero 方向 I I I 描述 6位指令操作码 函数码,用来选择op域的一个特定的操作 ALU计算结果是否为0 1:为0 0:不为0 时钟信号 复位信号 控制PC更改 IR寄存器的控制信号 判断扩展类型 Clk Reset PCwr IRWr extop I I O O O
GPRWr O 是否将数据写入寄存器堆中0:不写入 1:写入 是否将数据写数据存储器中0:不写入 1:写入 是否SB指令 是否LB指令 ALU的控制端 000:ADD 001:SUB 010:OR 011:取立即数高位 选择写入寄存器的数据 00:ALUOUT 01:R(DM中的数据) 10:{Jal_O,2’b00} NPC模块的控制信号。 选择写入寄存器的数据 00:ALUOUT 01:R(DM中的数据) 10:{Jal_O,2’b00} DMwr O Sb_sel Lb_sel ALUop[2:0] O O O WDSel[1:0] O Npcop[1:0] GPRsel[1:0] O O 三、测试程序 机器码:
ori $16, $0, 1 ori $17, $0, 3 ori $8, $0, 1
ori $12, $0,0xabab lui $13, 10
start:addu $4, $0,$16 addu $5, $0,$8 jal newadd
addu $16, $0, $2 subu $17,$17,$8 beq $16, $17, start ori $8, $0,4
addiu $24,$0,0x7fffffff addiu $9,$24,3 addiu $10,$24,5 addu $0,$0,$0 #addi $22,$24,6
start2:sw $9, -4($8)
sw $1, 0($8) lb $14, 3($8) sb $12,7($8) lw $15,4($8) sb $4, -3($8) lb $18, -1($8) addu $4,$0,$8 addu $5,$0,$9 jal newadd slt $25,$10,$8 beq $25, $0,end2 slt $20,$12,$4 beq $20, $0, end1 lui $12, 65535 end1:ori $0, $0,1 lui $19, 0xefef
addiu $3,$0,0xababcdcd start3:addiu $4, $3, 2 addi $23, $3, 5 jal newadd
addu $8, $0, $2 addu $4, $0, $8 addu $5, $0, $9 jal newadd
addu $9, $0, $2 addu $9, $8, $0 lui $10, 0x69
beq $8, $9, start4 beq $0, $0, start3 start4:j end
newadd:addu $2, $4, $5 addi $0,$12,0x1234 jr $31
end2:addi $26,$0,0x5678 end:
MARS:
四、机器指令描述
助记符 opcode function 功能
相关推荐: