Architecture des ordinateurs – M´ emento MIPS – Olivier Marchetti Liste des ins
Architecture des ordinateurs – M´ emento MIPS – Olivier Marchetti Liste des instructions MIPS Instructions de transferts Syntaxe Assembleur Op´ erations Commentaires Effet Format Op´ erations de transferts ALU (move from/to) mfhi Rd Copie du champ Hi cf. mult/div Rd ←Hi R mflo Rd Copie du champ Lo cf. mult/div Rd ←Lo R mthi Rs Chargement du champ Hi cf. mult/div Hi ←Rs R mtlo Rs Chargement du champ Lo cf. mult/div Lo ←Rs R lui Rt, I Chargement imm´ ediat Chargement d’une constante Rt ←I << 16 I Op´ erations de transferts registre-RAM (load/store) lw Rt, I(Rs) Chargement mot Rt ←RAM[Rs+I] I sw Rt, I(Rs) D´ echargement mot RAM[Rs+I] ←Rt I lh Rt, I(Rs) Chargement demi-mot Extension de signe Rt ←RAM[Rs+I] I lhu Rt, I(Rs) Chargement demi-mot non-sign´ e Sans extension de signe Rt ←RAM[Rs+I] I sh Rt, I(Rs) D´ echargement demi-mot RAM[Rs+I] ←Rt I lb Rt, I(Rs) Chargement octet Extension de signe Rt ←RAM[Rs+I] I lbu Rt, I(Rs) Chargement octet non-sign´ e Sans extension de signe Rt ←RAM[Rs+I] I sb Rt, I(Rs) D´ echargement octet RAM[Rs+I] ←Rt I Instructions de branchement de code Syntaxe Assembleur Op´ erations Commentaires Effet Format Saut conditionnel (branch if equal/not equal/greater/less... [than zero] [and link]) beq Rs, Rt, Etq Branchement si ´ egalit´ e PC ←PC + 4 + 4 × I si Rs=Rt PC ←PC + 4 sinon I bne Rs, Rt, Etq Branchement si diff´ erent PC ←PC + 4 + 4 × I si Rs̸=Rt PC ←PC + 4 sinon I bgez Rs, Etq Branchement si sup. ou ´ egal ` a 0 PC ←PC + 4 + 4 × I si Rs⩾0 PC ←PC + 4 sinon I bgtz Rs, Etq Branchement si sup. ` a 0 PC ←PC + 4 + 4 × I si Rs > 0 PC ←PC + 4 sinon I blez Rs, Etq Branchement si inf. ou ´ egal ` a 0 PC ←PC + 4 + 4 × I si Rs ⩽0 PC ←PC + 4 sinon I bltz Rs, Etq Branchement si inf. ` a 0 PC ←PC + 4 + 4 × I si Rs < 0 PC ←PC + 4 sinon I bgezal Rs, Etq Branchement si sup. ou ´ egal et liaison PC ←PC + 4 + 4 × I si Rs ⩾0 PC ←PC + 4 sinon R31 ←PC + 4 dans tous les cas I bltzal Rs, Etq Branchement si inf. ou ´ egal et liaison PC ←PC + 4 + 4 × I si Rs < 0 PC ←PC + 4 sinon R31 ←PC + 4 dans tous les cas I Saut inconditionnel (jump [and link]) j Etq Saut ´ etiquette PC ←PC + 4[31...28].4×Etq J jal Etq Saut et liaison R31 ←PC + 4 PC ←PC + 4[31...28].4×Etq J jr Rs Saut sur registre PC ←Rs R jalr Rs Saut et lien sur re- gistre R31 ←PC + 4 PC ←Rs R jalr Rd, Rs Saut et lien sur re- gistre Rd ←PC + 4 PC ←Rs R Architecture des ordinateurs – M´ emento MIPS – Olivier Marchetti Instructions arithm´ etiques Syntaxe Assembleur Op´ erations Commentaires Effet Format Op´ erations d’addition et de soustraction add Rd, Rs, Rt addition D´ etection de d´ epassement de capacit´ e Rd ←Rs + Rt R sub Rd, Rs, Rt soustraction D´ etection de d´ epassement de capacit´ e Rd ←Rs −Rt R addu Rd, Rs, Rt addition (non-sign´ ee) Pas de d´ etection de d´ epassement de capacit´ e Rd ←Rs + Rt R subu Rd, Rs, Rt soustraction (non- sign´ ee) Pas de d´ etection de d´ epassement de capacit´ e Rd ←Rs −Rt R addi Rt, Rs, I addition (op. imm.) D´ etection de d´ epassement de capacit´ e Rt ←Rs + I I addiu Rt, Rs, I addition (op. imm., non sign´ ee) Pas de d´ etection de d´ epassement de capacit´ e Rt ←Rs + I I Op´ erations de multiplication et de division mult Rs, Rt multiplication Hi ←pref32(Rs × Rt) Lo ←suff32(Rs × Rt) R multu Rs, Rt multiplication op´ erandes non sign´ es Hi ←pref32(Rs × Rt) Lo ←suff32(Rs × Rt) R div Rs, Rt division Hi ←Rs mod Rt Lo ←Rs/Rt R divu Rs, Rt division op´ erandes non sign´ es Hi ←Rs mod Rt Lo ←Rs/Rt R Instructions logiques Syntaxe Assembleur Op´ erations Commentaires Effet Format Op´ erations logiques de base (bits-` a-bits) or Rd, Rs, Rt OU logique Rd ←Rs | Rt R and Rd, Rs, Rt ET logique Rd ←Rs & Rt R xor Rd, Rs, Rt OU exclusif logique Rd ←Rs ˆ Rt R nor Rd, Rs, Rt NON OU logique Rd ←∼(Rs | Rt) R ori Rt, Rs, I OU logique avec op. imm. imm´ ediat non-sign´ e Rt ←Rs | I I andi Rt, Rs, I ET logique avec op. imm. imm´ ediat non-sign´ e Rt ←Rs & I I xori Rt, Rs, I OU exclusif avec op. imm. imm´ ediat non-sign´ e Rt ←Rs ˆ I I Op´ erations de d´ ecalage de bits (shift left/right logical) sllv Rd, Rt, Rs D´ ecalage ` a gauche avec re- gistre Rs : 5 bits de poids faibles Rd ←Rt << Rs R srlv Rd, Rt, Rs D´ ecalage ` a droite avec re- gistre Rs : 5 bits de poids faibles Rd ←Rt >> Rs R srav Rd, Rt, Rs D´ ecalage arithm´ etique⋆` a droite avec registre Rs : 5 bits de poids faibles Rd ←Rt >>⋆Rs R sll Rd, Rt, Dec D´ ecalage ` a gauche Rd ←Rt << Dec R srl Rd, Rt, Dec D´ ecalage ` a droite Rd ←Rt >> Dec R sra Rd, Rt, Dec D´ ecalage ` a droite arithm´ etique Extension de signe Rd ←Rt >>⋆Dec R Op´ erations de test de conditions (set if less than) slt Rd, Rs, Rt positionn´ e si inf´ erieur ` a Rd ←1 si (Rs < Rt) Rd ←0 sinon R sltu Rd, Rs, Rt positionn´ e si inf´ erieur ` a (op. non-sign´ e) Rd ←1 si (Rs < Rt) Rd ←0 sinon R slti Rt, Rs, I positionn´ e si inf´ erieur ` a (op. imm´ ediat) extension de signe pour l’imm´ ediat Rt ←1 si (Rs < I) Rt ←0 sinon I sltiu Rt, Rs, I positionn´ e si inf´ erieur ` a (op. imm´ ediat, non-sign´ e) Rt ←1 si (Rs < I) Rt ←0 sinon I Architecture des ordinateurs – M´ emento MIPS – Olivier Marchetti Directives assembleur Indiquer le segment m´ emoire — .text [adr] : la donn´ ee sera dans le segment texte (i.e. avec les instructions du programme – ` a l’adresse adr si fournie). — .data [adr] : la donn´ ee sera stock´ ee dans le segment des donn´ ees (` a l’adresse adr si fournie). — .stack : la donn´ ee sera sur la pile. — .k{text,data} : la donn´ ee sera dans le segment {texte, donn´ ees} du noyau du syst` eme d’ex- ploitation. D´ ecrire la visibilit´ e — .extern Etq taille : d´ eclare la donn´ ee enregistr´ ee ` a l’adresse Etq sur taille octets cons´ ecutifs comme ´ etant globale au fichier. Place la donn´ ee dans le segment des donn´ ees. — .globl Etq : d´ eclare l’´ etiquette Etq est un symbole globale visible dans d’autres fichiers as- sembleur. D´ ecrire et enregistrer les donn´ ees Les enregistrements m´ emoire suivants sont r´ ealis´ es ` a des adresses cons´ ecutives. — .align n : r´ ealise l’alignement m´ emoire de la donn´ ee suivante sur une fronti` ere de 2n octects. — .space n : d´ efinit un espace de n octets cons´ ecutifs dans le segment des donn´ ees. — .ascii ch : enregistre en m´ emoire la chaˆ ıne de caract` ere ch sans le caract` ere de fin de chaˆ ıne. — .asciiz ch : idem, mais avec le caract` ere de fin de chaˆ ıne. — .byte b1,...,bn : enregistre n octets. — .double d1,...,dn : enregistre n flottants double pr´ ecision. — .float f1,...,fn : enregistre n flottants simple pr´ ecision. — .half h1,...,hn : enregistre n quantit´ es 16 bits (alignement demi-mot). — .word w1,...,wn : enregistre n quantit´ es 32 bits (alignement mot). Appels syst` eme M´ ethodologie 1. Ecrire l’instruction pour charger le service voulu dans le registre $v0. 2. [ Ecrire les instructions pour charger des arguments dans les registres $a0, $a1...(cf. documen- tation MIPS). ] 3. Ecrire l’instruction syscall. 4. [ Ecrire les instructions pour r´ ecup´ erer une valeur de retour de l’appel syscall. ] Service Code Service Arguments Valeur de retour afficher entier 1 $a0 : stocke l’entier voulu afficher ch. car. 4 $a0 : adresse de la chaˆ ıne lire entier 5 $v0 : entier lu lire ch. car. 8 $a0 : adresse du tampon $a1 : nb max car. lu exit 10 Architecture des ordinateurs – M´ emento MIPS – Olivier Marchetti Fonction M´ ethodologie Proc´ eder uploads/S4/ archi-memento-mips-nup.pdf
Documents similaires










-
29
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 18, 2022
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.3280MB