What is the single MIPS instruction, or if not possible, the shortest sequence of MIPS instructions that performs: 1. Move content of register r11 into register r23. 2. Load register r15 with the value 265,140. 3. Store the value 55,259 into a word at memory location 40000. 4. The equation a = b + c,assuming a, b and c are integer variables at memory location 0b10000000, 0b1001000 and 0b100010011100, respectively. 5. The equation y[5] = y[10] + x, assuming x corresponds to register r2, and y[1] is an integer at the memory location 524,292 is the first element of vector y. 6. The statement: if (a <= b) goto lab1, assuming that variable a corresponds to the word at memory address 400, and variable b corresponds to register r10. The instruction with lab1 is before the branch instruction and there are 20 (machine) instructions between those two instructions.
What is the single MIPS instruction, or if not possible, the shortest sequence of MIPS instructions that performs: 1. Move content of register r11 into register r23. 2. Load register r15 with the value 265,140. 3. Store the value 55,259 into a word at memory location 40000. 4. The equation a = b + c,assuming a, b and c are integer variables at memory location 0b10000000, 0b1001000 and 0b100010011100, respectively. 5. The equation y[5] = y[10] + x, assuming x corresponds to register r2, and y[1] is an integer at the memory location 524,292 is the first element of vector y. 6. The statement: if (a <= b) goto lab1, assuming that variable a corresponds to the word at memory address 400, and variable b corresponds to register r10. The instruction with lab1 is before the branch instruction and there are 20 (machine) instructions between those two instructions.
What is the single MIPS instruction, or if not possible, the shortest sequence of MIPS instructions that performs: 1. Move content of register r11 into register r23. 2. Load register r15 with the value 265,140. 3. Store the value 55,259 into a word at memory location 40000. 4. The equation a = b + c,assuming a, b and c are integer variables at memory location 0b10000000, 0b1001000 and 0b100010011100, respectively. 5. The equation y[5] = y[10] + x, assuming x corresponds to register r2, and y[1] is an integer at the memory location 524,292 is the first element of vector y. 6. The statement: if (a <= b) goto lab1, assuming that variable a corresponds to the word at memory address 400, and variable b corresponds to register r10. The instruction with lab1 is before the branch instruction and there are 20 (machine) instructions between those two instructions.
[Note: You are allowed to use only instructions implemented by the actual MIPS hardware provided in attached photos below. Use assembly language format from the references or the book. Note, base ten numbers are listed as normal (e.g. 23), binary numbers are prefixed with 0b and hexadecimal numbers are prefixed with 0x.]
What is the single MIPS instruction, or if not possible, the shortest sequence of MIPS instructions that performs: 1. Move content of register r11 into register r23. 2. Load register r15 with the value 265,140. 3. Store the value 55,259 into a word at memory location 40000. 4. The equation a = b + c,assuming a, b and c are integer variables at memory location 0b10000000, 0b1001000 and 0b100010011100, respectively. 5. The equation y[5] = y[10] + x, assuming x corresponds to register r2, and y[1] is an integer at the memory location 524,292 is the first element of vector y. 6. The statement: if (a <= b) goto lab1, assuming that variable a corresponds to the word at memory address 400, and variable b corresponds to register r10. The instruction with lab1 is before the branch instruction and there are 20 (machine) instructions between those two instructions.
[Direction: You can consult any resources such as books, online references, and videos for this assignment, however, you have to properly cite and paraphrase your answers when it is necessary.] solve it any how urgently please.
Transcribed Image Text:MIPS CPU INSTRUCTIONS for COSC2021
Arithmetic Family (14)
TYPE 0x
R 20 (21)
1 08 (09)
R 22 (23)
add(u)
addi(u)
sub(u)
mult(u)
div(u)
sit(u)
siti(u)
Logical Family (13)
and
andi
or
ori
xor
xori
nor
sllv
sil
srlv
srl
srav
sra
Jump Family (3)
|j
jr
jal
Branch Family (6)
bgtz
bgez
bitz
blez
rego, reg1, reg2
rego, reg1, imm
rego, reg1, reg2
reg1, reg2
reg1, reg2
mtlo
mfhi
mthi
rego, reg1, reg2
rego, reg1, imm
"Other" Family (6)
lui
syscall
mflo
rego, reg1, reg2
rego, reg1, imm
rego, reg1, reg2
rego, reg1, imm
rego, reg1, reg2
rego, reg1, Imm
| rego, reg1, reg2
rego, reg1, reg2
rego, reg1, imm
rego, reg1, reg2
rego, reg1, imm
rego, reg1, reg2
rego, reg1, imm
imm
reg
imm
beq
bne
Load / Store Family (8)
Iw
Ih(u)
Ib(u)
SW
sh
sb
reg, imm
reg, imm
reg, imm
reg, imm
reg1, reg2, imm
reg1, reg2, imm
rego, imm (reg1)
rego, imm (reg1)
| rego, imm (reg1)
rego, imm (reg1)
rego, imm (reg1)
reg0, imm (reg1)
reg, imm
reg
reg
reg
reg
R 18 (19)
R 1A (1B)
R 2A (2B)
IOA (OB)
R24
IOC
R 25
I OD
R 26
I OE
R 27
R 04
R 00
R 06
R 02
R 07
R 03
J 02
R 08
J 03
1 07
1 01
101
106
104
105
123
121 (25)
120 (24)
12B
129
128
IOF
ROC
R 12
R 13
R 10
R11
ORDER
1,2,0
1.0
1.2.0
1.2
1,2
1,2,0
1.0
1.2.0
1,0
1.2.0
1,0
1.2.0
1,0
1,2,0
2,1,0
zero, 1,0
2,1,0
zero, 1,0
2,1,0
zero, 1,0
reg,0.
reg.zero
reg,one
reg.zero
reg.zero
1.2
1,2
1.0
1,0
1,0
1.0
1,0
1.0
zero,reg
0,0,reg
reg,0,0
0,0,reg
reg,0,0
REGISTERS
0
1
2
3
4
5
6
7
7
8
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
SYSCALL
Service
Print int
Print float
Print double
Print string
Read int
Read float
Read double
Read string
Allocate
Print char
0
at
vo
v1
a0
a1
a2
a3
to
t1
t2
t3
t4
t5
t6
t7
so
$1
$3
$4
$5
s6
s7
t8
t9
ko
k1
gp
sp
tp
ra
vo Send Return
1 a0
f12
f12
a0
2
3
4
5
6
7
8 a0/1
9 a0
11 a0
See
fo
VO
ASCII CODE
0-9 start at 48 or 0x30
A-Z start at 65 or 0x41
a-z start at 97 or 0x61
'' space at 32 or 0x20
C
ZOOM
+
Transcribed Image Text:Arithmetic and Logical Instructions
Instruction
Operation
$d = $8 + $t
$d = $s + $t
add $d, $s, St
addu $d, Ss, St
addi St, $s, i
addiu $t, $s, i
and $d, $s, St.
andi St, $s, i
div $s, St
divu $s, St
mult $s, St
multu $s, St
nor $d, $s, St
or $d, $s, St.
ori St, Ss, i
sll Sd, St, a
slly Sd, St, Ss
sra $d, St, a
srav Sd, St, Ss
srl $d, St, a
srly $d, $t, $s
sub $d, Ss, St
subu Sd, $s, St
xor Sd, Ss, St.
xori Sd, $s, i
$s+SE (i)
$t =
$t =
$8+ SE (1)
$d =
$s & $t
$s & ZE(1)
$t =
lo
$s / $t; hi = $s % $t
lo = $s / $t; hi = $s % St
hi: lo = $s * $t
hi:lo= $s* $t
$d($s $t)
$d = $s | $t
$t = $s | ZE(1)
$d = $t << a
$d $t << $s
$d=$t >> a
$d = $t >> $s
$d = $t >>> a
$d = $t >>> $s
$d $s
$d = $s
$d = $s
$d $s
Constant-Manipulating Instructions
Instruction
lhi St, i
llo St, i
Instruction
slt Sd, $s, St
sltu Sd, Ss, St
slti St, Ss, i
sltiu St, $s, i
and
andi
div
divu
mult
multu
nor
or
ori
ally
sni
srav
sel
selv
sub
aba
Instruction
add
addu
addi
addiu
xor
xori
Blo
Operation
HH ($t) = i
LH(St) = i
Comparison Instructions
Operation
$d= ($s < $t)
$d = ($s < $t)
$t= ($s < SE (1))
$t = ($s < SE(i))
Syntax
ArithLog
DivMult
Shift
Shift V
JumpR
MoveFrom
Move To
Load!
Branch
BranchZ
LoadStore
Jump
Trap
MIPS Reference Sheet
ArithLogl o St, Ss, i
o St, immed32
o Sa, St, label.
o Sa, label
o St, i (Sa)
o label
oi
Template
f $d, Ss, St
f $s, St
f $d, St, a
f $d, St, Sa
f So
f $d
f Ss
100000
100001
001000
001001
100100
001100
011010
011011
011000
011001
100111
100101
001101
000000
000100
$t
$t
$t
ZE(1)
Opcode/Function
000011
000111
000010
000110
100010
100011
Register
Immedinte
Jump
100110
001110
011001
011000
Shift
Shift V
Shift
Shift V
Register
Register
Shift
Shift V
Register
Register
Register
Register
Register
Immediate
Syntax
ArithLog
ArithLog
ArithLogl
ArithLogl
ArithLog
ArithLogl
Div Mult
Div Mult
Div Mult
Div Mult
ArithLog
ArithLog
ArithLogl
Jump
Jump
Instruction
beq $s, St, label
bgtz $s, label
blez $s, label
bne $s, St, label
Instruction
j label
jal label
jalr Ss
jr $s
ArithLog
ArithLog
ArithLog
ArithLogl
Loadl
Loadl
Instruction
lb St, i(Ss)
Ibu St, i(Ss)
lh St, i(Ss)
lhu St, i(Ss)
lw St, i(Ss)
Instruction Syntax
Encoding Comments
Instruction
sb St, i(Ss)
sh St, i(Ss)
sw $t, i($s)
Instruction
mfhi Sd
mflo Sd
mthi Ss
mtlo Ss
Instruction
trap 1
trap 5
trap 10
trap 101
trap 102
Instruction Encodings
000000es sasttttt dddddaan saffffff
oo0o0oss ssttttt iiiiiiiiiiiiiiii
000000ii iiiiiiiiiiiiiiiiiiiiiiii
Opcode Table
sit
situ
alti
sitiu
beq
bgtz
blez
bne
Branch Instructions
1
jal
jalr
jr.
lb
Ibu
Th
Ihu
Iw
Operation
if ($s = $t) pc += i << 2
if ($s > 0) pc += i << 2
sb
sh
ww
if ($s <= 0) pc += 1 << 2
if ($s != $t) pc += i << 2
Exception and Interrupt Instructions
Operation
Immediate
i is high or low 16 bits of immed32
Immediate i is calculated as (label-(current+4))>>2
Immediate i is calculated as (label-(current+4))>>2
Immediate
i is calculated as label<<2
Jump Instructions
mflo
Operation
pc +1 << 2
Store Instructions
Operation
MEM [$s + i]:1= LB ($t)
MEM [$s+ i]:2 = LH ($t)
MEM [$s+ i]:4 = $t
Data Movement Instructions.
malo
trop
$31 pc; pc +=i<< 2
$31 pc; pc = $s
pc = $s
Load Instructions
Operation
$t SE (MEM [$s + i]:1)
$t = ZE (MEM [$s + i]:1)
$t
$t
$t MEM [$s + i]:4
Instruction Opcode/Function Syntax
ArithLog
Arithlog
ArithLogl
ArithLogl
Branch
SE (MEM [$s + i]:2)
ZE (MEM [$s + i]:2)
Operation
$d = hi
$d 10
hi= $s
1o $s
Print integer value in $4
Read integer value into $2
Terminate program execution
Print ASCII character in $4
Read ASCII character into $2
101010
101001
001010
001001
000100
000111
000110
000101
000010
000011
001001
001000
100000
100100
100001
100101
100011
101000
101001
101011
010000
010010
010001
010011
011010
Branch
Branch
Branch
Jump
Jump
JumpR
JumpR
LoadStore
LoadStore
LoadStore
LoadStore
LoadStore
LoadStore
LoadStore
LoadStore
Move From
MoveFrom
Move To
Move To
Trap
Quantities that have magnitude and direction but not position. Some examples of vectors are velocity, displacement, acceleration, and force. They are sometimes called Euclidean or spatial vectors.
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.