1
Université ELMANAR Institut !In"or#ati$ue
Supérieur
Architecture Avancée
Zouhour Ben Azouz Hanane Ben Fraj A%U% &'1'(&'11
TD 1 : Jeux d’instructions
Exercice 1 Soit )e processeur *L+% ,ous )es re-istres ont .& /its% Le processeur a .& re-istres entiers0 e R' R.1% Le re-istre R' est c2/)é ' 3R'4'5% 6n peut )ire son contenu0 #ais )!écriture ans R' ne prouit aucun résu)tat% R.1 contient )!aresse e retour es procéures% Les instructions sont e )on-ueur "i7e 3.& /its5% Le jeu !instructions est onné ans )a ta/)e 1% La #é#oire est aressa/)e par octets% NB 8 Les instructions e co#paraison S99 positionnent )e re-istre estination 1 si )a conition est vraie0 et ' si )a conition est "ausse% E7 8 SNE R:0 R;0 R< #et R: 1 si R;≠R< Les s=nta7es asse#/)eur sont )es suivantes8 Instructions re-istres>re-istre 8 ?oe op0 re-istre estination0 re-istre source 10 re-istre source & Instructions re-istres>i##éiat 8 ?oe op0 re-istre estination0 re-istre source 10 i##éiat Instructions #é#oire 8 ?oe op0 re-istre onnée0 ép)ace#ent 3re-istre aresse5 Instructions /ranche#ent 8 ?oe op0 re-istre0 ép)ace#ent Instructions e saut 8 ?oe op0 ép)ace#ent ou ?oe op0 re-istre% 1% @ue))es est )a nature e ce processeur RIS? ou ?IS?0 justi"ier votre réponse% &% ?o#/ien e /its sont réservés au code op ans )e "or#at RI% .% ?o##ent peut>on e7écuter avec uni$ue#ent )e jeu !instruction *L+ onné par )a ta/)e 1 )es actions suivantes 8
a) Mettre F'''A'''H ans )e re-istre R. b) *iviser par & )e contenu u re-istre R:0 interprété en si-né c) Mu)tip)ier par 1 )e contenu u re-istre R;
&
d) Mettre ans R& )a va)eur a/so)u e R& ca R& R& si R& ' R& >R& si R& C' Indication : il faut tester le bit de signe de R2
Table 1 : Jeu d'instructions DLX Type d'instruction et code-op
Signification de l'instruction
Transferts de donnes !depuis ou "ers la ##oire$
Transf%re les donnes entre des registres et la ##oire & le seul #ode d'adressage ##oire est !registre dplace#ent sign de 1( bits$
LB, LBU, SB
?har-e#ent octet0 octet non si-né0 ran-e#ent octet ?har-e#ent e#i>#ot0 e#i>#ot non si-né0 ran-e#ent e#i>#ot ?har-e#ent #ot0 ran-e#ent #ot 3e(vers es re-istres entiers5 ,prations sur les donnes enti%res ou logi+ues dans des registres entiers& Aition0 aition i##éiats 3tous )es i##éiats ont 1< /its5% Les opéranes sont si-nés pour A** et A**I 3avec e7tension e si-ne e )!i##éiat5% Les opéranes sont non si-nés pour A**U et A**UI 3avec e7tension e ' pour )!i##éiat5
LH, LHU, SH LW, SW
)rit*#ti+ue et logi+ue ADD, ADDI, ADDU, ADDUI
SUB, SUBU AND, ANDI OR, ORI, XOR, XORI LHI SLL, SRL, SRA, SLLI, SRLI,
Soustraction si-née0 non si-nee Et0 et i##éiat 3e7tension e ' pour )!i##éiat5 6u0 ou i##éiat0 ou e7c)usi"0 ou e7c)usi" i##éiat 3e7tension e ' pour )!i##éiat5 ?har-e#ent haut i##éiat 3char-e )a partie haute Dun re-istre avec un i##éiat5 et #et zéro )a partie /asse *éca)a-es 8 sous "or#e i##éiate 3 S__I5 ou varia/)e 3 S__5 )es éca)a-es sont )o-i$ue -auche0 )o-i$ue roite0 et arith#éti$ue
SRAI S__, S__I
ositionner )a conition 8 "__" peut Gtre
EQ, NE, LT, GT, LE,
GE
ontr.le BEQZ, BNEZ J, JR
/ranc*e#ents conditionnels et sauts& relatifs 0 ou par registre Branche#ent si re-istre entier é-a)(non é-a) zéro ép)ace#ent re)ati" e 1< /its ajouté ? Sauts 8 ép)ace#ent e &< /its ajouté ? (J) ou estination ans )e re-istre (JR)
.
Exercice : Exe#ples 230S et )42 pour les instructions arit*#ti+ues 2ultiplication par des constantes L!instruction e #u)tip)ication sur es entiers pren p)us !une izaine e c=c)es !hor)o-e sur )a p)upart es processeurs% Les instructions )o-i$ues0 )!aition et )a soustraction prennent -énéra)e#ent un seu) c=c)e !hor)o-e% I) est onc p)us e""icace !i#p)anter )a #u)tip)ication u contenu !un re-istre par une constante en uti)isant es opérations co##e )!aition0 )a soustraction et )es éca)a-es% En uti)isant )es instructions ci>essous pour )e MIS et pour )!ARM0 onner )a suite !instructions MIS et )a suite !instructions ARM pour e""ectuer )a #u)tip)ication u contenu u re-istre R1 par )es constantes 8 ..0.1et .% 3nstructions 230S
o IMM1< est une constante sur 1< /its et SIMM1< est )a constante .& /its o/tenue par e7tension e si-ne%
)42 For#at es instructions arith#éti$ues et )o-i$ues 8
I41 si )!opérane & est une va)eur i##éiate ' sinon% n 8 nu#éro u re-istre opérane 1 • d 8 nu#éro u re-istre estination
:
•
operand2 8 secon opérane% ,rois "or#ats sont possi/)es 8 o opérane re-istre0 éca)a-e éventue) spéci"ié par une constante 8 11 1' J < ; : . & 1 ' #shift
Sh 0 Rm
#shift 8 no#/re e positions e éca)a-e Sh 8 t=pe e éca)a-e 3'' 4 LSL0 '1 4 LSR0 1' 4 ASR0 11 4 R6R5 Rm 8 nu#éro u re-istre opérane re-istre0 éca)a-e éventue) spéci"ié par un re-istre 8
o
11 1' J < ; : . & 1 ' Rs
0 Sh 1 Rm
Rs 8 nu#éro u re-istre contenant )e no#/re e positions e éca)a-e Sh 8 t=pe e éca)a-e 3'' 4 LSL0 '1 4 LSR0 1' 4 ASR0 11 4 R6R5 Rm 8 nu#éro u re-istre opérane i##éiat 3e )a "or#e va)eur99/its K &&k 5 8
o
11 1' J < ; : . & 1 ' K
value
value 8 va)eur sur /its
E7e#p)e A** R&0 R10 R' LSL : si-ni"ie R& 4R1 O 3R' CC:5 4 R1 O 1
Exercice 5 8 6n consiPre une architecture co#portant 1< re-istres 1< /its% Le jeu Dinstructions est )e suivant 8
;
@uestions 1% ?a)cu)er )e no#/re tota) N Dinstructions istinctes0 &% Si on uti)ise un "or#at Dinstruction e )on-ueur constante0 $ue))e est )a )on-ueur #ini#u# Dune instruction Q .% Un "or#at Dinstruction e )on-ueur varia/)e per#et>i) Do/tenir une )on-ueur #o=enne Dinstruction p)us petite $uDun "or#at e )on-ueur constanteQ :% roposer une #oi"ication #ini#a)e u jeu Dinstruction $ui per#et un coa-e e )on-ueur constante sur 1< /its 3i) e7iste p)usieurs so)utions accepta/)es5% ?a)cu)er )e no#/re tota) N' Dinstructions istinctes et véri"ier $uDi) est co#pati/)e avec un coa-e sur 1< /its% roposer un coa-e 1< /its pour )e jeu !instructions #oi"ié%
<