计算机组成的邪恶作业
1、翻译MIPS指令集
先做个寄存器表,下面那个是官方版的
register |
num |
register |
num |
t0 |
8 |
s0 |
16 |
t1 |
9 |
s1 |
17 |
t2 |
10 |
s2 |
18 |
t3 |
11 |
s3 |
19 |
t4 |
12 |
s4 |
20 |
t5 |
13 |
s5 |
21 |
t6 |
14 |
s6 |
22 |
t7 |
15 |
s7 |
23 |
再上个MIPS32指令集
ctrl +f方便查找,比较坑爹的是指令格式跟语言格式不同,rs和rt的位置尤其注意
MIPS 指令集(共31条) |
|||||||||
助记符 |
指令格式 |
示例 |
示例含义 |
操作及其解释 |
|||||
Bit # |
31..26 |
25..21 |
20..16 |
15..11 |
10..6 |
5..0 |
|
|
|
R-type |
op |
rs |
rt |
rd |
shamt |
func |
|
|
|
add |
000000 |
rs |
rt |
rd |
00000 |
100000 |
add $1,$2,$3 |
$1=$2+$3 |
rd <- rs + rt ;其中rs=$2,rt=$3, rd=$1 |
addu |
000000 |
rs |
rt |
rd |
00000 |
100001 |
addu $1,$2,$3 |
$1=$2+$3 |
rd <- rs + rt ;其中rs=$2,rt=$3, rd=$1,无符号数 |
sub |
000000 |
rs |
rt |
rd |
00000 |
100010 |
sub $1,$2,$3 |
$1=$2-$3 |
rd <- rs - rt ;其中rs=$2 |