Exécution des
instructions machine
Eduardo Sanchez
EPFL
Exemple: le processeur MIPS
add a, b, c
lw a, addr
j addr
destination du
résultat
opérandes
sources
adresse
(donnée, instruction suivante)
type d'opération
(mnémonique)
a = b + c
a = mem[addr]
goto addr
Eduardo Sanchez 2
Le processeur MIPS possède 32 registres
Les opérations arithmétiques et logiques se font toujours entre
registres
Les seules instructions qui utilisent la mémoire comme opérande
sont lw (load) et sw (store)
La façon de donner l'adresse d'un opérande est appelée le mode
d'adressage. Le processeur MIPS connaît cinq modes d'adressage:
registre
immédiat
direct ou absolu
indirect
déplacement ou relatif
Eduardo Sanchez 3
Exemples des modes d'adressage:
registre:
add $s0,$s1,$s2 s0=s1+s2
immédiat:
add $s0,$s1,123 s0=s1+123
direct ou absolu:
add $s0,$s1,(1234) s0=s1+mem[1234]
indirect:
add $s0,$s1,($s2) s0=s1+mem[s2]
déplacement ou relatif:
add $s0,$s1,123($s2) s0=s1+mem[s2+123]
Eduardo Sanchez 4
opcode adresse de la mémoire
registre source
LW $t0,32($s3)
registre
destination
opcode adresse de la mémoire
J addr
0
0
0
0
0
0
opcode
shift
amount
registre source
ADD $t1,$t2,$t0 0
0
0
0
0
0
1
0
0
0
0
registre
source 2
Format I:
transfert de
données et
branchements
Format J:
saut
Format R:
opérations
arithmétiques
registre
destination
fonction
Eduardo Sanchez 5
Le format de l'architecture
x86 est complètement
diérent:
codage des instructions: 1 à
17 bytes
l'opcode peut contenir un bit
qui indique si l’opérande a 8
ou 32 bits (bit w)
le bit d indique la direction du
transfert: registre memoire
certains opcodes contiennent
le type d’adressage et le
registre utilisé
quelques instructions utilisent
un post-byte qui indique le
type d’adressage
JE
CALLF
MOV
PUSH
ADD
SHL
TEST
cond displ
offset segment number
displ
r-m
postbyte
d/
w
reg
reg constant
v/
w
w
w postbyte immediat
JE PC+displacement
CALLF
MOV BX,[DI+45]
PUSH SI
ADD AX,#6765
SHL BX,1
TEST DX,#42
4 4 8
8 16 16
6 2 8
5 3
8
4 3 16
6 2 8
7 1 8
1
8
Eduardo Sanchez 6
Repertoire d'instructions
Instructions arithmétiques et logiques
Eduardo Sanchez 7
Instructions de comparaison
Eduardo Sanchez 8
Instructions de saut conditionnel
Eduardo Sanchez 9
Instructions de saut inconditionnel
Eduardo Sanchez 10
1 / 13 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !