Assembly
(a) add $t0, $s4, $s5
opcode add: 0
function add: 32
$t0: 8
$s4: 20
$s5: 21
R-TYPE
6bits
op | 5bits
rs | 5bitsrt | 5bits
rd | 5bits
shamt | 6bits
funct |
6bits
0 | 5bits
20 | 5bits
21 | 5bits
8 | 5bits
0 | 6bits
21 |
6bits
000000 | 5bits
10100 | 5bits
10101 | 5bits
01000 | 5bits
00000| 6bits
100000 |
0 2 9 5 4 0 2 0
add $t0, $s4, $s5 = 0x02954020
(b) lw $s3, -24($s4)
opcode lw:35
$s3: 19
$s4:20
I-TYPE
op6bits
| 5bits
rs | 5bits
rt | 16bit
imm |
356bits
| 5bits
20 | 5bits
19 | 16bit
-24 |
1000116bits
| 5bits
10100 | 5bits
10011 | 16bit
1111111111101000 |8 E 9 3 F F E 8
lw $s3, -24($s4) = 0x8E93FFE8
2. Traduzca los siguientes lenguajes máquina a códigoAssembly:
(a) 0x2237FFF1
00100010001101111111111111110001
opcode :0010002= 810 : addi
0010006bits
| 5bits
10001 | 5bits
10111 | 16bit
1111111111110001 |
86bits
| 5bits
17 | 5bits23 | 16bit
-15 |
0x2237FFF1= addi $s7, $s1,-15
(b) 0x02F34022
00000010111100110100000000100010 function: 1000102= 3410: sub
opcode: 0000002 =010: R-TYPE
6bits
000000 |5bits
10111 | 5bits
10011 | 5bits
01000 | 5bits
00000 | 6bits
100010 |
6bits
0 | 5bits
23 | 5bits
19 | 5bits
8 | 5bits
0 | 6bits
34 |
0x02F34022 = sub $t0, $s7, $s3
3. Realizar unpequeño programa en código Assembly que sea capaz de calcular el factorial de un número ingresado por teclado.
.data
cad0: .asciiz "Ingrese numero:"
cad1: .asciiz "el resultado es:"
.text
.globlmain
main:
#se escribe el primer string pidiendo el numero
addi $v0, $zero, 4
la $a0, cad0
syscall
#se lee el numero
addi $v0, $zero, 5
syscall
#guarda el numero en s0
add $s0, $v0,...
Regístrate para leer el documento completo.