Système d’exploitation : Assembleur

Slides:



Advertisements
Présentations similaires
² = 8,16 p
Advertisements

Architecture de machines Codage des informations
Les procédures et interruptions en Assembleur (Tasm)
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Jacques Lonchamp IUT Nancy Charlemagne – DUT Informatique 1A
Programmation assembleur : aperçu
Assembleur
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Le codage de l ’information
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Les structures de données
Architecture de machines Le microprocesseur
Présentation Unité de codage
Système d’exploitation : Assembleur
Système d’exploitation : Assembleur
Système d’exploitation : Assembleur
Points importants de la semaine Les types arithmétiques. Les opérateurs.
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
Architecture de base d’un ordinateur
Addition et soustraction des nombres entiers
Expressions et assignations
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Système d’exploitation : Assembleur
©Pierre Marchand, Objectifs : À la fin de cette unité, vous saurez comment sont implantées les quatre opérations arithmétiques : addition, soustraction,
LE MICROPROCESSEUR 8086/8088 Architecture externe du 8086
Structure de la famille de DSP Motorola 56300
B.Shishedjiev - Informatique
Architecture des Ordinateurs
Particularités des calculs
Système d’exploitation : Assembleur
Arithmétique des “computers”
©Pierre Marchand, Objectifs : Vous apprendrez comment sont implantées les structures de contrôle des langages de haut niveau. Pour y arriver, vous.
Principes de programmation
Expressions et affectations
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Système d’exploitation : Assembleur
Processeur modèle 8086 David Saint-Mellion.
Les bases de l’assembleur
Codage de l’information
Traitement des tableaux et chaînes de caractères
Représentation binaire de nombres entiers et opérations arithmétiques de base Sujets de ce thème
Représentation des informations
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Représentation et opérations.
Codage des nombres réels avec la norme IEEE-754
Architecture Des Ordinateurs Microprocesseur Et Mémoire
Cohen Julien Neville gabriel
Le processeur Xtensa de Tensilica: paramétrage et extensibilité
J100 (JSB) Java : Syntaxe de Base juin 2007 ~ Brigitte Groléas ~
Architecture interne du microprocesseur 8086.
9 décembre 2014J.Callot L.Piedfort1 Chapitre_1 K60 Evolution des machines Introduction au K60 Liaison série.
Cours Architecture des Systèmes Informatiques
3-Présentation d’un µP simple
Architectures des ordinateurs
Représentation des entiers
TI_TP03_"ARITHMETIQUE" CORRECTION
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Cours Architecture des.
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
Introduction aux systèmes numériques
Système d’exploitation : Assembleur Semaine 01 Introduction.
UE MAREP Cours 1 : Algèbre de Boole et entiers naturels
Patricia Renault UPMC 2004/2005
Les expressions. Une expression retourne une valeur lorsqu’elle est exécutée par le programme. a+2, x==0, i++, !isdigit(c) && b, sin(Pi),… On peut donc.
©Pierre Marchand, Unité 2: Représentation interne des informations Objectifs: À la fin de cette unité, -vous saurez comment les caractères et les.
CHAPITRE 5 Les nombres entiers 1. Les entiers 2 Les entiers signés représentations pour le 0.
CHAPITRE 8 Les booléens et les chaines de bits 1.
@Pierre Marchand, IFT Semaine 04 Programmation système.
Opérateurs Toute donnée informatique est stockée en mémoire sous la forme d'une combinaison de bits (mot machine). Les opérateurs bits permettent de modifier.
Exercice Soit le polynôme P(x) = x4 + 7x3 – 238x² + 440x
Codification et représentation de l’information Enseignant: Mahseur mohammed Groupe FB: mi2016ua1 Chaine YT: Cours informatique.
Transcription de la présentation:

Système d’exploitation : Assembleur Semaine 08 Instructions arithmétiques

Instruction arithmétique : ADD (1/3) ADD opérande 1,opérande 2 (addition d’entiers) où opérande 1 devient opérande 1 + opérande 2 Exemples ADD AX, BX avec AX= 1234h (par exemple) ADD AX, [BX] ADD [BX], AX ADD AL, 20h ADD CX, 0ABCDh ADD BYTE PTR[3],12h ADD WORD PTR ES:[3], 1235h Addition purement binaire d’où pas de distinction entre signés et non-signés Possibilités d’utilisation ADD reg (8 ou 16 bits), reg (8 ou 16 bits) ADD reg(8 ou 16), mem (8 ou 16) ADD mem(8 ou 16), reg (8 ou 16) ADD reg(8 ou 16), imm (8) ADD reg(16),imm(16) ADD mem(8 ou 16), imm(8) ADD mem(16), imm(16)

Instruction arithmétique : ADD (2/3) Les indicateurs d’état affectés par ADD sont CF, ZF, OF, SF, AF, PF OF = 0 : résultat correct pour des entiers signés = 1 : résultat incorrect pour des entiers signés (overflow) SF = 0 : bit de gauche à 0 (résultat >= 0 si signé) = 1 : bit de gauche à 1 (résultat <0 si signé) ZF = 0 : indique un résultat différent de 0 (signé ou non) = 1 : indique un résultat égal à 0 AF = 0 : pas de report auxiliaire du quartet de droite sur le suivant = 1 : report auxiliaire du quartet de droite sur le suivant PF = 0 : nombre impair de bits à 1 dans le byte de droite = 1 : nombre pair de bits à 1 dans le byte de droite CF = 0 : pas de report au-delà du bit le plus significatif = 1 : report au-delà du bit le plus significatif Pour les entiers signés, les indicateurs les plus utiles sont : OF, SF, ZF Pour les entiers non-signés, les indicateurs les plus utiles sont : CF, ZF

Instruction arithmétique : ADD (3/3) Exemple : Que valent les indicateurs d’état ? (sur 8 bits) 9A + 3E = D8 11111 10011010 00111110 ++++++++ 11011000 OF= 0 SF=1 ZF=0 AF=1 PF=1 CF=0 non signé : 154 + 62 = 216 signé : -102 + 62 = -40 OF=1 si pour le bit de poids fort: 0+0=1 1+1=0 0-1=1 1-0=0

Instruction arithmétique : ADC ADC (ADd with Carry) : Idem ADD, mais carry ajouté à la somme (valeur du Carry Flag) Exemple ADC AX,0FFAh avec AX= 2000 et CF=1 résultat : AX contient 2000+0FFA+1 = 2FFB Exemple d’utilisation : addition de nombres codés sur 32 bits additionner les nombres 84536d et 118331d soit 14A38h + 1CE3Bh mov ax, 4A38h mov dx, 0001h add ax, 0CE3Bh adc dx, 0001h résultat : AX contient 1873h et DX contient 0003h (0001+0001+0001) le résultat de l’addition vaut 31873h, soit 202867d

Instruction arithmétique : INC INC additionne 1 à l’opérande destination Exemples : INC AL INC byte ptr [BX] Possibilités d’utilisation : INC reg(8 ou 16 bits) INC mem(8 ou 16 bits) Attention : INC modifie les mêmes indicateurs que ADD sauf le CF

Instruction arithmétique : SUB (1/3) SUB opérande 1,opérande 2 (soustraction d’entiers) où opérande 1 devient opérande 1 - opérande 2 Exemples SUB AX, BX avec AX= 1234h (par exemple) SUB AX, [BX] SUB [BX], AX SUB AL, 20h SUB CX, 0ABCDh SUB BYTE PTR[3],12h SUB WORD PTR ES:[3], 1235h Soustraction purement binaire d’où pas de distinction entre signés et non-signés Possibilités d’utilisation SUB reg (8 ou 16 bits), reg (8 ou 16 bits) SUB reg(8 ou 16), mem (8 ou 16) SUB mem(8 ou 16), reg (8 ou 16) SUB reg(8 ou 16), imm (8) SUB reg(16),imm(16) SUB mem(8 ou 16), imm(8) SUB mem(16), imm(16)

Instruction arithmétique : SUB (2/3) Les indicateurs d’état affectés par SUB : OF = 0 : résultat correct pour des entiers signés = 1 : résultat incorrect pour des entiers signés (overflow) SF = 0 : bit de gauche à 0 (résultat >= 0 si signé) = 1 : bit de gauche à 1 (résultat <0 si signé) ZF = 0 : indique un résultat différent de 0 (signé ou non) = 1 : indique un résultat égal à 0 AF = 0 : pas d’emprunt auxiliaire du quartet de droite sur le suivant = 1 : emprunt auxiliaire du quartet de droite sur le suivant PF = 0 : nombre impair de bits à 1 dans le byte de droite = 1 : nombre pair de bits à 1 dans le byte de droite CF = 0 : pas d’emprunt au-delà du bit le plus significatif = 1 : emprunt au-delà du bit le plus significatif

Instruction arithmétique : SUB (3/3) Exemple : Que valent les indicateurs d’état ? (sur 8 bits) 9A - 3E = 5C 10011010 – 0011 1110 = 1111 1 1001 1010 0011 1110 -------------- 0101 1100 OF=1 SF=0 ZF=0 AF=1 PF=1 CF=0 non signé : 154 - 62 = 92 signé : -102 - 62 = 92 OF=1 si pour le bit de poids fort: 0+0=1 1+1=0 0-1=1 1-0=0

Exemple d’utilisation .model small .code mov ax,1234h add ax,20h ;ok dans les 2 cas mov ax,0E123h add ax,2000h ;ok si signés - dépassement de capacité si non-signés mov ax,8000h add ax,8000h ;résult =0 - erreur si signés et si non-signés add word ptr ds:[3],0D123h ;----------------------------------------------------------------------- mov ax,0FFF0h adc ax,0Fh mov ax,0A00h sub ah,2 ;ok dans les 2 cas mov ax,0100h sub ah,2 ;ok si signés - erreur si non-signés sub ax,ds:[2] mov bx,1111h mov cx,2222h sub bx,cx ...

Instruction arithmétique : SBB SBB (SuB with Borrow) Idem SUB, mais carry retiré au résultat Exemple SBB AX,0FFFh avec AX= 2000 et CF=1 résultat : AX contient 2000-0FFF-1 = 1000h Exemple d’utilisation : soustraction de nombres codés sur 32 bits soustraire les nombres 183867d et 121400d soit 2CE3Bh-1DA38h mov ax, 0CE3Bh mov dx, 0002h sub ax, 0DA38h sbb dx, 0001h résultat : AX contient F403h et DX contient 0000h (0002-0001-0001) le résultat de la soustraction 0F403h, soit 62467d CF

Instruction arithmétique : DEC DEC soustrait 1 à l’opérande destination Exemples DEC AL DEC [BX] Possibilités d’utilisation : DEC reg(8 ou 16 bits) DEC mem(8 ou 16 bits) Attention : DEC modifie les mêmes indicateurs que SUB sauf le CF

Instruction arithmétique : NEG NEG remplace l’opérande destination par son complément à 2 destination devient 0-destination Exemples NEG AX si AX = 1234h, AX devient EDCCh NEG byte ptr [BX] Possibilités d’utilisation : NEG reg(8 ou 16 bits) NEG mem(8 ou 16 bits) NEG modifie les mêmes indicateurs que SUB

Instruction arithmétique : CMP CMP compare les 2 opérandes positionne les indicateurs OF, SF, ZF, AF, PF, et CF en fonction du résultat de la comparaison (destination – source) Exemples : CMP AL, BL Possibilités d’utilisation : CMP reg(8 ou 16), reg(8 ou 16) CMP reg(8 ou 16), mem(8 ou 16) CMP mem(8 ou 16), reg(8 ou 16) CMP reg(8 ou 16), imm(8) CMP reg(16), imm(16) CMP mem(8 ou 16), imm(8) CMP mem(16), imm(16) L’instruction CMP est toujours utilisée en relation avec l’instruction de branchement conditionnel Jcond

Overflow Flag OF=1 si pour le bit de poids fort: 0+0=1 1+1=0 0-1=1 1-0=0