La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les P 80x86 dIntel : histoire et caractéristiques 1.Rappel historique Bref sur la famille 80x86 2. A lintérieur du P 8088/8086 3. Introduction a la programmation.

Présentations similaires


Présentation au sujet: "Les P 80x86 dIntel : histoire et caractéristiques 1.Rappel historique Bref sur la famille 80x86 2. A lintérieur du P 8088/8086 3. Introduction a la programmation."— Transcription de la présentation:

1 Les P 80x86 dIntel : histoire et caractéristiques 1.Rappel historique Bref sur la famille 80x86 2. A lintérieur du P 8088/ Introduction a la programmation Assembleur 4. Segmentation des programmes 5. Modes dAdressage

2 1 Rappel historique Bref sur la famille 80x86 -Évolution de 8080/8085 à 8086: En 1978, Intel introduit le P8086 à 16-bit, qui améliore les performances de la série P8080/85 de plusieurs façons. - Le P 8086 possède 16 lignes dadresses (64Ko de mémoire), alors que le P 8080/8085 en possède 8 lignes dadresses (256 octets). - Le P 8080/8085 a une architecture 8-bit, i.e. les données de plus de 8bits sont traitées en morceaux de 8-bits par la CPU. Alors que le 8086 est un P à 16-bits. - Le P 8086 est de conception pipeline contrairement au P 8080/8085. Dans un système à base de pipeline, les bus de données et dadresses sont occupés à transférer des données pendant que la CPU traite une information. Ceci a pour avantage de croître la puissance de traitement du P. - Évolution de 8086 a 8088: - Le P 8086 a une architecture interne et externe de 16-bit, i.e. tout ses registres sont de 16-bits et un bus de données également de 16-bits pour transférer des données de/vers la CPU. - Le P 8086 a marqué une grande avancée par rapport aux générations précédentes, mais il a rencontré une résistance dutilisation du au fait que son bus de données externe de 16-bits ne prêtait pas aux périphériques existants en ce moment conçus pour des P à 8-bits. En plus du fait que les cartes de circuits imprimés avec un bus de données 16-bits étaient chères. - Ceci explique pourquoi Intel a conçu le P8088, qui est le même que le P8086 au niveau de la programmation avec la même capacité mémoire, 1Mo. Seulement son bus de données externe est 8-bits au lieu de 16-bits.

3 1 Rappel historique Bref sur la famille 80x86 -Succès du P 8088: La situation financière dIntel sest considérablement amélioré lorsque IBM a choisi le 8086 comme le P de choix pour son micro-ordinateur IBM PC, qui a connu un énorme succès, a cause du fait quIBM et Microsoft (qui a développé MSDOS), lont rendu système ouvert, i.e. la documentation hardware et software du PC est accessible au public. Ceci a permis aux autres vendeurs de cloner le hardware avec succès. -Le P Avec le succès qua connu Intel et devant le besoin manifeste des utilisateurs PC pour un P plus puissant, Il a introduit le P en Ses principales caractéristiques sont: un bus de donnes interne et externe de 16-bit, un bus dadresses de 24-bit (ciblant 16Mbytes de mémoire), et surtout sa mémoire virtuelle. - Le P opère en 2 modes: réel et protégé. Le mode réel nest autre que la version rapide du P 8088/8086 avec la même mémoire de 1Mo. Le mode protégé permet dadresser une mémoire de 16Mo, mais aussi capable de protéger le OS et programmes dune destruction accidentelle par lutilisateur. Cette caractéristique est absente avec le P 8088/86. - La mémoire virtuelle est une façon de tromper le P en pensant quil a accès a une mémoire illimité en inter-changeant les données entre le disque et la RAM. - IBM a choisi le P pour son micro-ordinateur IBM PC/AT et les fabricants clones ont suivi.

4 1 Rappel historique Bref sur la famille 80x86 Les P et Les utilisateurs demandent toujours des P plus puissants. Ainsi Intel introduit en 1985 le P (Appelé également 80386DX). Un P darchitecture 32-bits (interne et externe) et un bus dadresses de 32-bits, capable de cibler une mémoire physique de 4Go. Sa mémoire virtuelle a été augmenté à 64 To. -Tout les P précédents sont a utilisation générale, donc ne sont pas capable de traiter rapidement des opérations mathématiques. Intel a mis sur le marche des circuits co- processeurs mathématiques, comme les 8087, et Plus tard Intel a introduit le P 80386SX, qui a la même architecture interne que le P mais avec un bus de données a 16-bits et un un bus dadresses a 24-bits (1Mo de mémoire). Ce qui rend son prix moins cher. -Avec lintroduction du P 80486, Intel a amélioré le P en intégrant un co-processeur mathématique dans une seule puce. En plus dautres caractéristiques telles que mémoire cache (mémoire SRAM a temps daccès très rapide), ont été introduites. -Il est important de noter que les programmes écrit pour le P 8088/86 peuvent être exécutés également sur les P 80x86. -Dautres générations qui sont venus après les P 80x86 ont pour noms P Pentium.

5 2 : A lintérieur du P 8088/8086 Pipeline -Avec les P 8088/86 Intel unités EU et BIU concurrentes (travaillent simultanément). -BIU la mémoire et les périphériques + EU exécute les instructions recherchées précédemment. -BIU possède un buffer (chaîne), qui permet de stocker les instructions précédentes: P8088 possède une chaîne de 4 octets et le P8086 en possède 6 octets. -Si une instruction est lente pour sexécuter, le buffer se voit remplir vite et y restera ainsi La BIU ne cherche une nouvelle instruction que sil ya 2 octets inoccupés dans le buffer ( P8086) et 1 octet ( P8088). -Pour P8088/86, il existe 2 stages de pipeline: fetch et exécute. Avec les P plus puissants, il ya plusieurs niveaux de pipeline. -Pipeline + largeur du bus de données conception de puissants Ps. Fetch 1 Execute 1 Execute 2 Fetch 2 Fetch 1 Fetch 2 Fetch 3 Execute 1 Execute 2 Execute 3 Execution avec Pipeline P 80x86 Execution Sans Pipeline P8085

6 2 : A lintérieur du P 8088/8086 Registres -Dans une CPU, les registres sont utilisés pour stocker de linformation temporairement. Celle-ci peut être 1 octet ou 2 octets dune donnée à traiter ou une adresse dune donnée. -Quelques instructions utilisent des registres spécifiques pour accomplir leurs taches. Daprès la 1 ere lettre, on peut deviner son utilisation. CATEGORIESREGISTRES Générale AX, BX, CX, DX (AH, AL), (BH, BL), (CH, CL), (DH, DL), PointeurSP, BP IndexSI, DI SegmentCS, DS, SS, ES InstructionIP FlagFR AH0AH1 AH6AH7 IP0IP1 IP14IP15 AX0AX1 AX14AX15 AX7AX8 AL0AL1 AL6AL7 16-bits 8 bits ou 16-bits

7 Bloc Diagramme de du P 8088/86 AHAL BHBL CHCL DHDL Registres généraux SI DI BP SP AX BX CX DX Registres de Segment CS DS SS ES 150 Registres d'état et de contrôle Source index Destination index Base pointer Stack pointer FR IP OPERANDES ALU CHAINE DINSTRUCTIONS GENERATION DADRESSES & BUS DE CONTROLE BUS MULTIPLIXE EXECUTION UNIT (EU) BUS INTERFACE UNIT (BIU) Accumulateur Base Compteur Données (E/S) SEQUENCEUR Buffer

8 3 : Introduction à la programmation Assembleur RAM h 1407h RAM B0h 21h 04h 42h A7h 18h 00h F4h MOV AL, 21h ADD AL, 42h ADD AL, [1800h] HALT MNEMONIQUES (facile a se rappeler) Programmer vite et moins derreurs Programme ASSEMBLEUR Langage ASSEMBLEUR ( Langage bas-niveau ) Langage MACHINE ( Code Objet ) Bin Hex Meilleure programmation Bonne connaissance des registres, leur taille et de la CPU en générale Langage C, Pascal, Basic ( Langage haut-niveau ) Programme COMPILATEUR ( Code Source ) Pas besoin de connaître la CPU MASM (Microsoft), DEBUG, TASM (Turbo Borland)

9 3 : Introduction à la programmation Assembleur Programme en langage Assembleur = série dinstructions écrite en langage assembleur. Une instruction en langage assembleur = mnémonique suivi de un/deux opérandes (données à manipuler). Une mnémonique = une commande a la CPU lui montrant ce que doit faire avec les opérandes. Instruction MOV : copie (déplacer) une donnée dune location à une autre. MOV destination, source; copie opérande source destination MOVCL, 55h; déplacer 55h vers le registre CL. Attention: spécifie h pour MASM sinon décimal. Avec DEBUG pas besoin, tout HEX MOVDL, CL; copie le contenu du registre CL vers le registre DL MOVAH, DL; copie le contenu du registre DL vers le registre AH Avec les registres 16-bits: MOVCX, 468Fh; déplacer 468Fh vers le registre CX (CH = 46h et CL = 8Fh) MOVAX, CX; copie le contenu du registre CX vers le registre AX MOVDS, AX; copie le contenu du registre AX vers le registre DS MOVBX, 9; copie la donnée 0009h vers le registre BX BL = 09h et BH = 00h Attention!!! MOVAL, CX; erreur, les registres nont pas la même taille MOVAL, 2345h; erreur, la donnée et le registre AL nont pas la même taille MOVFR, AX; erreur, on on ne déplace pas le contenu du registre détat et de contrôle MOVCS, 3D15h; erreur, les données ne peuvent être déplacées aux registres segments Solution: MOVAX, 3D15h MOVCS, AX

10 3 : Introduction à la programmation Assembleur Instruction ADD: MOVAL, 35h; déplacer 35h vers le registre AL MOVBL, 94h; déplacer 94h vers le registre AL ADDAL, BL; AL = AL + BL ( C9h) Il existe plusieurs façons décrire le même programme: MOVAL, 35h ; déplacer 35h vers le registre AL ADDAL, 94h ; AL = AL + 94h ( C9h) Avec registres 16-bits: MOVCX, 235h ; déplacer 0235h vers le registre CX ADDCX, 594h ; CX = CX h ( 07C9h) Lopérande source est un opérande immédiat ou registre. Lopérande destination est toujours registre. ADD destination, source; ajouter lopérande source a destination et le résultat vers destination

11 4 : Introduction aux Segments du programme -Chaque segment = 64Ko ( P8088 a 16 lignes dadresses). -Un segment peut se trouver à nimporte quelle adresse multiple de 16. -Les segments (C, D, S et E) peuvent être disjoints, se recouvrir, ou confondus. -La segmentation procure lavantage de déplacer un programme en mémoire, il suffit de modifier le contenu du registre CS (pagination du code sur le disque). -Mécanisme dadressage Pour éviter dutiliser des registres de 20-bits pour stocker et calculer les adresses Adresse logique = Adr. Seg. : Adr. Offset Adresse physique = (Adr. Seg.)0h + Adr. Offset Exemple: Pour exécuter un programme, le P8086 « fetch » les instructions à partir de CS CS : IP (2500h : 95F3h) Adr. Phy. = 25000h + 95F3h = 2E5F3h ici Offset = IP DS : DI (7521h : 85FBh) Adr. Phy. = 75210h + 85FBh = 7D81Bh ici Offset = DI Adresse Physique 20 bits Adresse Offset ( Effective ) 16 bits Adresse Segment (CS, DS, SS, ES) ( sur un segment de 64 Ko ) ( adresse mémoire ) 64Ko SS ESDS CS 00000h FFFFFh (= 2 20 =1Mo) RAM

12 5 : Modes dAdressage du P80x86 - La CPU peut adresser des opérandes (Données) de plusieurs manières, appelés Modes dAdressage. - Leur nombre est déterminé une fois le P conçu et ne peut être changé. Les P80x86 en possède 7: Registre, Immédiat, Direct, Indirect par registre, Base relative, Indexe relative et Base indexe relative. 1.Adressage par RegistreMOV DX, BXADD AL, AH 2. Adressage ImmédiatMOV AX, 2550hADD BL, 40h Note: ce mode est utilisé pour charger une donnée dans un registre quelconque sauf FR et (CS, DS, S, ES) MAIS MOV AX, 2550hMOV DS, AX 3.Adressage DirectMOV DL, [2550];contenu de DS:2500 dans DL 4.Adressage IndirectMOV AL, [BX]; contenu de DS:BX dans AL Notes: 1. Attention: différent de (MOV AL, BX); BX AL (erreur!! taille des registres) 2. MOV [DI], AH ( copie un octet ) et MOV [SI], AX 5.Adressage Base relative MOV CX, [BX]+9 ; copie DS:BX+9 et DS:BX+9+1 dans CX MOV AL, [BP]+5 ; copie SS:BP+5 dans AL Note: MOV AL,[BP+5] ou MOV AL,5[BP] BP+5 est appelé adresse effective 6.Adressage Index relatif MOV DX, [SI]+5; copie DS:SI+5 et DS:SI+5+1 dans CX MOV CL, [DI]+8; copie DS:DI+8 dans CL 7.Adressage Base Index relatif MOV CL, [BX][DI]+8; copie DS:BX+DI+8 dans CL MOV CH, [BX+SI+20]; copie DS:BX+SI+20 dans CH MOV AL, [BP][DI]+12; copie SS:BP+DI+12 dans AL MOV AH, [BP+SI+29]; copie SS:BP+SI+29 dans AH Attention: MOV AL, [SI][DI]+12ou MOV AL, [BX][BP]+12; illégales!!!!! ACCÉSRAPIDEACCÉSRAPIDE MÉMOIREMÉMOIRE REGISTRESREGISTRES ACCÉSLENTACCÉSLENT

13 5 : Modes dAdressage du P80x86 Récapitulatif Modes dAdressageOpérandeSegment par défaut Registrereg/ Immédiatdata/ Direct[offset]DS Registre Indirect[BX] [SI] [DI] DS Base relative[BX] + dépl. [BP] + dépl. DS SS Index relatif[DI] + dépl. [SI] + dépl. DS Base Index relatif[BX][DI] + dépl. [BX][SI] + dépl. [BP][DI] + dépl. [BP][SI] + dépl. DS SS

14 Registres Segment et Offset Registres Segment CSDSESSS Registres Offset IPSI, DI, BX SP, BP Registres Offset utilisés pour les différents segments

15 EXERCICES

16 1.Si les P80286 et P80386SX possède tout deux un bus de données externe de 16-bit, cest quoi donc la différence entre eux? 2.Un P 32-bit désigne-t-il un cheminement des données internes ou externes? 3.Est ce quun programme écrit pour le P88/86 peut sexécuter dans un P80486? 4.Cest quoi les différences majeures entre un P88 et un P86? 5.Cest quoi la deuxième méthodologie pour améliorer la puissance de traitement dun P, autre quaugmenter la fréquence? 6.Cest quoi les fonctions de BIU et EU? 7.Parmi ces registres, lesquels sont désignés comme généraux, et quels sont les registres que nous ne pouvons pas diviser en octets: a- CS b- AX c- DS d- SSe- BX f- DX g- CXh- SI i- DI 8.Parmi ces instructions, lesquelles ne peuvent être codées dans le P88/86 : a- MOV AX, 27b- MOV AL, 97Fc- MOV DS, 9BF2d- MOV CX, 397 e- MOV SI, 9516f- MOV CS, 3490g- MOV DS, BXh- MOV BX, CS i- MOV CH, AXj- MOV AX, 23FB9k- MOV CS, BHl- MOV AX, DL 9.Si CS=3499H (ensuite 1296H) et IP=2500H (ensuite 100H), trouver: a- ladresse logiqueb- ladresse physiquec- les limites du code segment 10.Si DS=3499H (ensuite 1298H) et Offset=3FB9H (ensuite 7CC8H), trouver: a- ladresse physiqueb- ladresse logique de la donnée a rechercher (fetch) c- les limites du segment de données 11.En assumant que ladresse physique dune location mémoire est 0046H, suggérer des adresses logiques possibles? 12.Si une instruction à rechercher est dans ladresse physique 389F2H et CS=2700H, est ce que la bande du code segment linclut ou pas? Si cest non, quelle valeur a donner a CS si IP=1282?

17 13.La pile est-elle: a- une section de ROMb- une section de la RAM utilisée pour un stockage temporaire c- un registre 16-bit dans la CPUd- une mémoire quelconque dans la CPU. 14.Quand une donnée est empilée dans la pile, le pointeur de pile est incrémente ou décrémente? Quen est-il quand la donnée est dépilée? 15.Choisir une réponse correcte: a- les segments de pile et de code commencent du même point de la mémoire et augmentent vers le haut. b- les segments de pile et de code commencent des points opposes de la mémoire et augmentent vers des sens opposes. c-Ce nest pas grave si les deux segments se rencontrent. 16.Cest quoi linconvénient davoir la pile dans la CPU comme un grand nombre de registres? 17.Si SS=2000H (ensuite 1298H) et SP=4578H (ensuite 7CC8H), trouver: a- ladresse physiqueb- ladresse logique c- les limites du segment de pile 18.Si SP=24FCH, cest quoi ladresse offset de la première location de la pile dans laquelle une donnée peut être empilée? 19.Assumant que SP=FF2EH, AX=3291H, BX=F43CH, et CX=09, trouver le contenu de la pile et le pointeur de pile après lexécution de chacune des instructions: PUSH AX, PUSH BX, PUSH CX. 20.Pour retrouver le contenu original de chaque registre, du problème 19, montrer la séquence dinstructions à exécuter. Cest quoi le contenu de SP après chaque instruction exécutée? 21.Les registres suivants sont utilisés comme Offset. Assumant que le segment défaut est utilisé pour obtenir ladresse logique, donner le registre segment associé avec chaque offset: a- BPb- DIc- IPd- SIe- SPf- BX

18 22.Montrer le registre segment décrasement et celui par défaut (sil ny a pas eu décrasement) dans chacun des cas suivants: a- MOVSS:[BX], AX b- MOVAL, [DI]+BX c- MOVDX, DS:[BP+6] 23. Cest quoi létat des CF, PF, AF, ZF, et SF pour les opérations suivantes: a- MOV BL, 9FHADD BL, 61H b- MOV DX, 10FFHINC DX 24. Assumant que les registres ont les valeurs suivantes (en Hex): CX=1000,DS=2000,SS=3000,SI=4000,DI=5000, BX=6080,BP=7000,AX=25FF,CX=8791,DX=1299. Calculer ladresse physique de la mémoire ou lopérande est stocke, ainsi que le contenu des locations mémoires dans chacun des modes dadressage suivants: a- MOV [SI], AL b- MOV [SI+BX+8], AHc- MOV [BX], AX d- MOV [DI+6], BX e- MOV [DI][BX]+28, CXf- MOV [BP][SI]+10, DX g- MOV [3600], AX h- MOV [BX]+30, DXi- MOV [BP]+200, AX j- MOV [BP+SI+100], BX k- MOV [SI]+50, AHl- MOV [DI+BP+100], AX

19 25. Donner le mode dadressage de chacune des instructions suivantes: a- MOV AX, DS b- MOV BX, 5678Hc- MOV CX, [3000] d- MOV AL, CH e- MOV [DI], BXf- MOV AL, [BX] g- MOV DX, [BP+DI+4]h- MOV CX, DSi- MOV [BP+6], AL j- MOV AH, [BX+SI+50] k- MOV BL,[SI]+10l- MOV [BP][SI]+12, AX 26. Montrer le contenu des locations mémoire après lexécution de chacune des instructions suivantes: a- MOV BX, 129FHb-MOV DX, 8C63H MOV [1450], BXMOV [2348], DX DS:1450 …DS:2348 … DS:1451 …DS:2349 …


Télécharger ppt "Les P 80x86 dIntel : histoire et caractéristiques 1.Rappel historique Bref sur la famille 80x86 2. A lintérieur du P 8088/8086 3. Introduction a la programmation."

Présentations similaires


Annonces Google