0% ont trouvé ce document utile (0 vote)
522 vues3 pages

Exercice sur le langage MIPS et code machine

Le document décrit un exercice sur le langage assembleur MIPS. Il présente des instructions MIPS à traduire en code machine et l'inverse, et inclut des informations sur le jeu d'instructions et le registre MIPS.

Transféré par

benazizaaya8
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
522 vues3 pages

Exercice sur le langage MIPS et code machine

Le document décrit un exercice sur le langage assembleur MIPS. Il présente des instructions MIPS à traduire en code machine et l'inverse, et inclut des informations sur le jeu d'instructions et le registre MIPS.

Transféré par

benazizaaya8
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exercice : langage assembleur et machine MIPS

1. Soit à stocker les instructions du programme considéré, en mémoire à partir de l’adresse (00400000). Donnez l’adresse
mémoire et le code machine (en hexa) de chaque instruction.

Code machine (en hexa)


addi $s0, $0, 0x4f3c Adresse
sll $t0, $s0, 16
addi $s1, $0, 0x39 ………………... ……………………………..
or $s0, $t0, $s1 ……………… ……………………………..
add $s1, $s1, $t0
………………... ……………………………..
sub $t0, $S0, $S1
………………...
……………………………..
………………...
……………………………..
………………
……………………………..

Mémoire Centrale

2. Traduisez le programme suivant du code machine au code assembleur MIPS. Les nombres de gauche
représentent les adresses des instructions dans la mémoire et les nombre de droite correspondent aux
instructions du programme (en Hexa).

0x00400000 0x20080000 .......................................................................................................


0x00400004 0x20090001 .......................................................................................................
0x00400008 0x0089502a .......................................................................................................
0x0040000c 0x15400003 .......................................................................................................
0x00400010 0x01094020 .......................................................................................................
0x00400014 0x21290002 .......................................................................................................

P. 1
Annexe
MIPS register Set

MIPS instructions
R-type instructions (add, sub, and, or, slt): rd <-- rs funct rt

RI-type instructions (addiu): rt <-- rs funct (Immidiat 16)

Load: rt <-- Mem[rs + I16] Store: Mem[rs + I16] <-- rt

Branch equal: PC <-- (rs == rt) ? PC + 4 + I16 <<2 : PC + 4

J instruction (J, Jal) : PC <-- PC31-28 IR25-0 00


2 I26

Code opération et code fonction de quelques instructions :

P. 2
Instruction Code opération Code fonction
Addi (RI type) 001000 (8) X
Sll (R type) 000000 (0) 000000 (0)
Or (R type) 000000 (0) 100101 (37)
Add (R type) 000000 (0) 100000 (32)
Sub (R type) 000000 (0) 100010 (34)
slt(R type) 000000 (0) 101010 (42)
beq 000100 (4) x
bne 000101 (5) x
J 000010 (2) x
Jal 000011 (3) X
SW 101011 (43) X
LW 100011 (35) x
Jr 000000 (0) 001000 (8)

P. 3

Vous aimerez peut-être aussi