[PDF] Assembleur Les processeurs X86 (`a partir





Previous PDF Next PDF



But de ce sujet Les registres du processeur

L'adresse physique s'obtient en calculant Segment x 16 + Offset. Page 3. Introduction à l'assembleur http://www.courstechinfo.be/Programmation/IntroASM.pdf. 3.



Assembleur

Les processeurs X86 (`a partir du 386) ont huit registres de quatre octets chacun le segment de code permet de stocker les instructions qui.



Chapitre 5

Identificateur (Segment Selector): 16 bits. Offset : 32 bits. Le processeur contient des registres pour obtenir l'identificateur de segment.



Gestion de la mémoire

La valeur du registre de translation est additionnée à chaque adresse générée Allocation d'espace pour l'accroissement de la pile et d'un segment de ...



Programmation Assembleur NASM R´esum´e

Ces derniers sont les registres de segment dont voici la liste et leur utilité : • CS : Code Segment : ce registre contient l'adresse de départ du segment de 



Architecture des ordinateurs

Mov bxax ; mettre le contenu du registre AX dans BX. dont le code et les données partagent un seul segment de 64Ko. Commandes Debug.



20 bits + Registre de segment Registre général Extension sur 20

Registre de segment. Registre général. Extension sur 20 bits. Adresse sur 20 bits. 0.



4. Initiation à lassembleur

Le registre EIP est le compteur ordinal et contient l'adresse de la prochaine instruction à exécuter. Le Pentium possède également six registres de segment: CS 



Ce chapitre est consacré à létude des instructions de transfert des

Les registres de segment sont utilisés pour représenter la base de l'adresse; le registre eip par exemple



LE MICROPROCESSEUR 8086 ) 8088

Un registre est une petite partie de mémoire intégrée au Le 8086 a quatre registres segments de 16 bits chacun : CS (code segment.



[PDF] But de ce sujet Les registres du processeur - CoursTechInfo

L'adresse physique s'obtient en calculant Segment x 16 + Offset Page 3 Introduction à l'assembleur http://www courstechinfo be/Programmation/IntroASM pdf 3



[PDF] 20 bits + Registre de segment Registre général Extension sur - Irif

Registre de segment Registre général Extension sur 20 bits Adresse sur 20 bits 0



[PDF] Architecture des ordinateurs - Ecole Mohammadia dingénieurs

STOSB Instruction qui permet le transfert de AL vers ES:DI (emplacement DI dans l'extra segment ES Son exécution incrémente automatiquement le registre index 



[PDF] Chapitre 5

Identificateur (Segment Selector): 16 bits Offset : 32 bits Le processeur contient des registres pour obtenir l'identificateur de segment



[PDF] 4 Initiation à lassembleur

Le registre EIP est le compteur ordinal et contient l'adresse de la prochaine instruction à exécuter Le Pentium possède également six registres de segment: CS 



[PDF] Premier examen – Corrigé

4) Immédiate Implicite (le registre de drapeaux) 5) Registre 6) Immédiate Le segment de code courant travaille sur des opérandes de 32 bits



[PDF] LASSEMBLEUR SUR PC - IUT de Bayonne

On ne s'intéressera qu'aux registres de 16 bits : La mémoire est divisée en 4 segments de 64K octets chacun désigné par l'un des registres de segment CS



[PDF] Informatique industrielle Niveau 4 - Espace Technologue

Leurs adresses de base se trouvent dans les registres segments - Segment des codes (CS) sert à l'adressage des octets du programme (code) 



[PDF] Assembleur

Segmentation de la mémoire La mémoire est divisée en segments indépendants L'adresse de début de chaque segment est stockée dans un registre



[PDF] 1- Charger les registres AX BX

1- Charger les registres AX BX CX DX avec une information de 16 bits en utilisant l' Ceci en utilisant la valeur actuelle du registre segment DS

:

Assembleur

Rappels d"architecture

Un ordinateur se compose principalementd"un processeur, de m

´emoire.

On y attache ensuite des p

´eriph´eriques, mais ils sont optionnels.

donn

´ees: disque dur ,etc

entr

´eeutilisateur : clavier ,souris

sortie utilisateur :

´ecran, imprimante

processeur suppl

´ementaire : GPU

Le processeur

Le processeur lit et

´ecrit des informations enm´emoireIl peut de plus effectuer desop´erationsarithm´etiques et logiquesChaque action qu"il peut effectuer est appel

´eeinstructionLes instructions effectu

´ees par le processeur sont stock´ees dans

la m ´emoire.Il dispose d"un petit nombre d"emplacements m

´emoire d"acc`es

plus rapide, lesregistres.Un registre sp

´ecial nomm´epc(program counter) (ou ip

(instruction pointer)) contient `a tout moment l"adresse de la prochaine instruction `a ex´ecuterDe fac¸on r

´ep´et´ee le processeur :1lit l"instruction stock´ee`a l"adresse contenue dans pc2l"interpr`ete ce qui peut modifier certains registres (dont pc) et la

m

´emoire

CISC / RISC

C"est principalement le jeu d"instruction qui distingue les processeursLes processeurs CISC (Complex Instruction Set Computer)

Nombre d"instruction

´elev´eLes instructions r

´ealisent souvent les transferts vers et depuis la m

´emoirepeu de registres

Exemples : Intel 8068, Motorola 68000

Les processeurs RISC (Reduced Instruction Set Computer)

Peu d"instructions

Les instructions op

`erent sur des registresRegistres nombreux

Exemples :Alpha, Sparc, MIPS, PowerPC

X86

X86 est un jeu d"instruction commun

`a plusieurs processeursLe nom X86 provient des processeurs Intel utilisant ce jeu d"instructions (8086, 80186, 80286, 80386, 80486)jeu d"instruction des processeurs

´equipant les ordinateurs

personnels

Registres

Les processeurs X86 (

`a partir du 386) ont huit registres de quatre octets chacuneaxaxahal ebxbxbhbl ecxcxchcl edxdxdhdl esi edi esp ebp les registreseax,ebx,ecxetedxpeuventˆetre d´ecoup´es en registres plus petitseaxpeutˆetre d´ecoup´e en trois registres : un registre de deux

octets :axet deux registres d"un octet :ahetal.esppointe sur le sommet de la pileebppointe sur l"adresse de base de l"espace local

Segmentation de la m

´emoireLa m

´emoire est divis´ee ensegmentsind´ependants.L"adresse de d ´ebut de chaque segment est stock´ee dans un registre.Chaque segment contient un type particulier de donn ´ees.lesegment de donn´eespermet de stocker les variables globales et les constantes. La taille de ce segment n"

´evolue pas au cours de

l"ex ´ecution du programme (il est statique).lesegment de codepermet de stocker les instructions qui composent le programmelapilepermet de stocker les variables locales, param`etres de fonctions et certains r ´esultats interm´ediares de calculL"organisation de la m

´emoire en segments est conventionnelleEn th

´eorie tous les segments sont accessibles de la mˆeme mani`ere

Registres li

´es aux segmentsSegment de code

cs(Code Segment) adresse de d´ebut du segment de codeeip(Instruction Pointer) adresse relative de la prochaine

instruction `a effectuer cs+eipest l"adresse absolue de la prochaine instruction`a effectuerSegment de donn ´eesds(Data Segment) adresse de d´ebut du segment de donn´eesPile ss(Stack Segment) adresse de la base de la pileesp(Stack Pointer) adresse relative du sommet de pile

ss+espest l"adresse absolue du sommet de pileebp(Base Pointer) registre utilis´e pour le calcul d"adresses de

variables locales et de param `etres

Segmentation de la m

´emoirestack segmentss!base pointerebp!param

`etres de fonctionspileet variables locales stack pointeresp!espace non allou

´eobjets allou

´estasdynamiquement

variables gobales donn

´eeset constantes

data segmentds!instr. pointereip!codeinstructions code segmentcs! Flags

Les flags sont des variables bool

´eennes (stock´ees sur un bit) qui

donnent des informations sur le d

´eroulement d"une op´eration et

sur l"

´etat du processeur.32 flags sont d

´efinis, ils sont stock´es dans le registreeflags, appel ´e registre d"´etat.Valeur de quelques flags apr `es une op´eration :CF: Carry Flag. Indique une retenue (CF=1) sur les entiers non sign´es.PF: Parity Flag.

Indique que le r

´esultat est pair (PF=1) ou impair (PF=0).ZF: Zero Flag.

Indique si le r

´esultat est nul (ZF=1) ou non nul (ZF=0).SF: Sign Flag.

Indique si le r

´esultat est positif (SF=0) ou n´egatif (SF=1).OF: Overflow Flag.

Indique un d

´ebordement (OF=1) sur les entiers sign´es.

Langage machine

Une instruction de langage machine correspond

`a une instruction possible du processeur.

Elle contient :un code correspondant

`a op´eration`a r´ealiser,les arguments de l"op

´eration : valeurs directes, num´eros de

registres, adresses m

´emoire.code opop

´erandes

Langage machinelisible

Si on ouvre un fichier ex

´ecutable avec un´editeur (hexad´ecimal), on obtient...

01ebe814

063727473747566662e6305f5f43544f525f4c

...C"est une suite d"instructions comme01ebe814, que l"on peut traduire directement de fac¸on plus lisible : mov eax ebx

C"est ce qu"on appelle l"assembleur.L"assembleur est donc unerepr´esentationdu langage machine.Il y a autant d"assembleurs que de type de processeurs diff

´erents.

Langagemachinelisible

Si on ouvre un fichier ex

´ecutable avec un´editeur (hexad´ecimal), on obtient...

01ebe814

063727473747566662e6305f5f43544f525f4c

...C"est une suite d"instructions comme01ebe814, que l"on peut traduire directement de fac¸on plus lisible : mov eax ebx

C"est ce qu"on appelle l"assembleur.L"assembleur est donc unerepr´esentationdu langage machine.Il y a autant d"assembleurs que de type de processeurs diff

´erents.

NASM : exemple

section .data const dw 123
section .bss var resw 1 section .text global _start _start: call main mov eax 1 int 0x80 main: push ebp mov ebp esp mov word var const pop ebp ret

Sections

Un programme NASM est compos

´e de trois sections :.data

D ´eclaration de constantes (leur valeur ne changera pas durant l"execution).bss(Block Started by Symbol) D

´eclaration de variables.text

Instructions qui composent le programme

La sectiondataLa sectiondatapermet de d´efinir des constantesElle commence par section .data Elle est constitu

´ee de lignes de la forme

etiquette pseudo-instruction valeurLes pseudo instructions sont les suivantes : dbdefine byted

´eclare un octetdwdefine wordd

´eclare deux octetsdddefine doublewordd

´eclare quatre octetsdqdefine quadwordd

´eclare huit octetsdtdefine tenbytesd

´eclare dix octetsExemples :

const db 1 const dw

123 les variables d

´eclar´ees en s´equence sont dispos´ees les unes`a cˆot´e des autres en m

´emoire

La sectionbssLa sectionbsspermet de d´efinir des variablesElle commence par section .bss Elle est constitu

´ee de lignes de la forme

etiquette pseudo-instruction nbLes pseudo instructions sont les suivantes : resbreserve byted

´eclare un octetreswreserve wordd

´eclare deux octetsresdreserve doublewordd

´eclare quatre octetsresqreserve quadwordd

´eclare huit octetsrestreserve tenbytesd

´eclare dix octetsnbrepr´esente le nombre d"octets (pour resb) de mots (pour resw) `a r´eserverExemples : buffer resb

64 ; reserve 64 octets

wordvar resw

1 ; reserve un mot (deux octets)

realarray resq

10 ; reserve 10 * 8 octets

La sectiontextLa sectiontextcontient les instructions correspondant au programmeElle commence par section .text Elle est constitu

´ee de lignes de la forme

[etiquette] nomdinstruction [operandes] les parties entre crochets sont optionnellesune ´etiquette correspond`a une adresse (l"adresse dans laquelle est stock

´ee l"instruction)une op

´erande peutˆetre :un registre,

une adresse m

´emoire,une constante,

une expression Acc `es`a la m´emoireSiadrest une adresse m´emoire, alors[adr]repr´esente le contenu de l"adresseadrC"est comme l"op ´erateur de d´er´ef´erencement*du langage CLa taille de l"objet r

´ef´erenc´e peutˆetre sp´ecifi´e si n´ecessairebyte [adr]un octetword [adr]deux octetsdword [adr]quatre octetsadrpeutˆetre :une constante[123]une

´etiquette[var]un registre[eax]une expression[2*eax + var + 1]

Instructions

instructions de transfert : registres$m´emoireCopie :movGestion de la pile :push,popinstructions de calcul

Arithm

´etique :add,sub,mul,divLogique :and,orComparaison :cmpinstructions de saut sauts inconditionnels :jmpsauts conditionnels :je,jne,jg,jlappel et retour de proc

´edure :call,retappels syst

`eme

Copie -movSyntaxe :

mov destination

source Copiesourceversdestinationsource: un registre, une adresse ou une constantedestination: un registre ou une adresseLes copies registre - registre sont possibles, mais pas les copies

m

´emoire - m´emoireExemples :

mov eax ebx ; reg reg mov eax var ]; reg mem mov ebx

12 ; reg constante

mov var eax ; mem reg mov var

1 ; mem constante

Nombre d"octets copi

´esLorsqu"on copie vers un registre ou depuis un registre , c"est la taille du registre qui indique le nombre d"octets copi

´eslorsqu"on copie une constante en m

´emoire, il faut pr´eciser le

nombre d"octets `a copier,`a l"aide des mots clefsbyteun octetworddeux octetsdwordquatre octetsExemples : mov eax ebx ; reg reg mov eax var ]; reg mem mov ebx

12 ; reg constante

mov var eax ; mem reg mov word var

1 ; mem constante

Empile -pushSyntaxe :

push source Copie le contenu desourceau somme de la pile.Commence par d ´ecr´ementerespde 4 puis effectue la copiesource: adresse, constante ou registreExemples push

1 ; empile la constante 1

push eax ; empile le contenu de eax push var ]; empile la valeur se trouvant ; a l'adresse var D

´epile -popSyntaxe :

pop destination Copie les 4 octets qui se trouvent au somme de la pile dans destination.Commence par effectuer la copie puis incrquotesdbs_dbs42.pdfusesText_42
[PDF] les types de registres d'un microprocesseur

[PDF] erreur scientifique bible

[PDF] registre accumulateur

[PDF] sphère armillaire construction

[PDF] sphère armillaire portugal

[PDF] registre de processeur pdf

[PDF] sphère armillaire achat

[PDF] difference entre registre et memoire

[PDF] sphere armillaire

[PDF] registre d'adresse

[PDF] sphère armillaire ancienne

[PDF] registre dinstruction processeur

[PDF] astrolabe

[PDF] circulaire douane maroc 2017

[PDF] dedouanement jet ski maroc prix