-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinst--
130 lines (91 loc) · 1.55 KB
/
inst--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// BLTZ
addiu $8, $0, 0xffff
bltz $8, label
nop
addu $10, $8, $8
label:
addu $10, $10, $10
24 08 12 34
05 00 00 02
00 00 00 00
01 08 50 21
01 4a 50 21
// BGEZ
addiu $8, $0, 0x1234
bgez $8, label
nop
addu $10, $8, $8
label:
addu $10, $10, $10
24 08 12 34
05 01 00 02
00 00 00 00
01 08 50 21
01 4a 50 21
// LH
lui $8, 0x1234
addiu $8, $0, 0x5678
sw $8, 0x0($0) ; 把0寄存器空出来,但仿真时其实随意,向内存写的数据所以不会写寄存器
lh $10, 0x0($0)
lh $11, 0x2($0)
3c 08 12 34
25 08 56 78 // 这一条有问题,应是25才是addiu
ac 08 00 00
84 0a 00 00
84 0b 00 02
// SLTI —— 注意寄存器前的符号是$,不是&
lui $10, 0x1234
addiu $10, 0x5678
addiu $8, $0, 0x1234
slti $10, $8, 0x0123
slti $10, $8, 0x2345
3c 0a 12 34
25 4a 56 78
24 08 12 34
29 0a 01 23
29 0a 23 45
// SLTIU —— 注意有符号数比较,是8+开头,不是1-7之间的数
lui $10, 0x1234
addiu $10, 0x5678
addiu $8, $0, 0x1234
slti $10, $8, 0x8234
sltiu $10, $8, 0x8234
3c 0a 12 34
25 4a 56 78
24 08 12 34
29 0a 82 34
2d 0a 82 34
// NOR
addiu $8, 0x6
addiu $9, 0x2
lui $10, 0x1234
nor $10, $8, $9
25 08 00 06
25 29 00 02
3c 0a 12 34
01 09 50 27
// SRA
lui $9, 0x8234
addiu $9, 0x1111
sra $10, $9, 0x5
3c 09 82 34
25 29 11 11
00 09 51 43
00 00 00 00
// XOR
addiu $8, 0x6
addiu $9, 0x2
xor $10,$8,$9
25 08 00 06
25 29 00 02
01 09 50 26
00 00 00 00
// SRAV
lui $9,0x8234
addiu $9,0x1111
addiu $8,0x3
srav $10,$9,$8
3c 09 82 34
25 29 11 11
25 08 00 03
01 09 50 07