Escolar Documentos
Profissional Documentos
Cultura Documentos
Abdelali EL BDOURI
Un langage trop proche du matriel oblige le programmeur se soucier de concepts proches du fonctionnement de la machine
niveau accessible facilement un humain. Un logiciel transformant un fichier source contenant des instructions, en un fichier excutable que le processeur peut comprendre.
fastidieux crire.
Les programmes crits en
assembleur sont trs peu portables vers une autre architecture, existante ou future.
Raliser un programme complet
lassembleur : Avantages.
la possibilit de faire tout et n'importe quoi avec la mmoire. L'ASM n'a pas de limite et de scurit. Autant il peut tre utile, autant il peut dtruire. Les programmes faits en ASM sont plus petits, plus rapides et beaucoup plus efficaces que ceux fait avec des compilateurs.
lassembleur : Avantages.
le seul langage permettant de modifier un programme compil dont on na pas les sources (utiles pour le Reverse Engineering entre autres).
Possibilit d'intgration dans des langages de plus haut niveau pour les parties ncessitant d'tre optimiser, d'ailleurs bon nombre de langages de programmation permettent, afin de combler leurs lacunes (vitesse d'excution, accs aux priphriques, etc.), d'appeler des routines crites en assembleur.
lassembleur : Avantages.
Vu que lassembleur est qualifi comme tant le langage de programmation le plus bas niveau, il dpend donc fortement du type de processeur. Ainsi il n'existe pas un langage assembleur, mais un langage assembleur par type de processeur.
Processor)
processeur 3-D (carte
graphique)
contrleur de bus, ...
Inconvnients :
Mise en uvre plus complexe
Cots de dveloppement
lev
Un microprocesseur constitue le coeur de tout ordinateur: il excute les instructions qui composent les programmes que nous lui demandons dexcuter. caractris par une trs grande intgration et dot des facults fonctionnelles dinterprtation et dexcution des instructions dun programme .
rduits.
Inconvnients :
Plus lent. Utilisation sous optimale
Linterfaage Entre/Sortie:
Constitu de deux modules :
Le module dentre:
contient tous les dispositifs servant prlever des informations et des donnes de lextrieur du calculateur et les transfrer dans sa mmoire.
Lunit de mmoire:
Comprenant aussi bien de la
mmoire vive RAM que de la mmoire morte ROM, EPROM, ... Cette section reoit le programme et les donnes, ces derniers tant modifis au fur et mesure que se droule le traitement. Cette section sert galement la mmorisation des valeurs intermdiaires et des valeurs finales des calculs raliss pendant lexcution du programme.
Le module de sortie:
regroupe tous les lments que lon a prvu pour transfrer des donnes et des informations du calculateur vers le monde extrieur.
Des lignes utilises par lUC pour rpondre aux priphriques, par exemple : acceptation dune demande dinterruption ou dun accs direct mmoire, ...
Dfinition
Un P est gnralement une puce intgre programmable renfermant tous les circuits de lunit de commande, des registres et de lunit arithmtique et logique.
le microprocesseur regroupe un certain nombre de transistors lmentaires interconnects, caractris par une trs grande intgration et dot des facults fonctionnelles dinterprtation et dexcution des instructions dun programme Il se charge des fonctions suivantes: Fournir les signaux de synchronisation et de commande tous les lments du calculateur. Prendre en charge les instructions et les donnes en mmoire. Transfrer les donnes entre la mmoire et les dispositifs dEntre/Sortie et vice versa. Dcoder les instructions des programmes. Effectuer les oprations arithmtiques et logiques correspondant aux instructions. Ragir aux signaux de commande produits par les E/S comme le signal dinitialisation (Reset),les signaux correspondant aux interruptions, ...
Evolution :
le premier micro processeur a t
Elle permet de "squencer" le droulement des instructions. Elle effectue la recherche en mmoire de l'instruction, le dcodage, l'excution et la prparation de l'instruction suivante. L'unit de commande labore tous les signaux de synchronisation internes ou externes (bus des commandes) au microprocesseur.
Son rle est : denvoyer des signaux de contrle pour connecter les registres au bus.
de superviser le fonctionnement de lUAL. de donner des signaux dhorloge lensemble de P.
ils sont en nombre trs limite. Certains d'entre eux sont affects des oprations d'ordre gnral et sont accessibles au programmeur tout moment. Nous disons alors qu'il s'agit de registres gnraux. D'autres registres ont des rles bien plus spcifiques et ne peuvent pas servir un usage non spcialis. Enfin, d'autres registres sont invisibles et par consquent inaccessible au programmeur. Ces registres ne sont accessibles qu'au microprocesseur.
Le jeu de registre contient l'ensemble des registres du microprocesseur. Loges directement sur le processeur
rpandu
plus rapide
Fonctionnalits :
CISC).
Taille des mmoires
UART (Communication
srie), USB, I2C, ... Facilit de programmation
programme et donne.
Nombre de ports
dentre/sortie.
Caractristiques lectriques :
Frquence dhorloge Tensions dalimentation
Consommation dnergie,
...
Registres du CPU
Les registres les plus importants: Compteur ordinal (CO). Registre d'instruction (RI). Accumulateur (ACC). Registres gnraux. Registres d'index (XR). Registre d'tat . Registre pointeur de pile.
Le nombre et le types des registres que possde le CPU sont une partie dterminante de son architecture et ont une influence importante sur la programmation.
"PC") contient toujours l'adresse mmoire de la prochaine instruction excuter . Le CO est automatiquement incrment aprs chaque utilisation. Le programme est ainsi excut en squence moins qu'il ne contienne une instruction modifiant la squence (ex :instruction de saut). La taille du CO dpend du nombre de positions de mmoire adressables par le p. Le programmateur n'a pas accs direct au CO.
Ex: (PC)=10000H ; il pointe la mmoire qui contient l'instruction MOV C,B qui est code sur deux octets (89 D9H) ; l'unit de commande incrmentera de deux le contenu du PC : (PC) =10002H (la mmoire sera suppose tre organise en octets).
RI
du mot mmoire.
Sa valeur est dcode par un
Dcodeur
Squenceur
Accumulateur (ACC)
Le registre le plus important de
lUAL
Dans la plupart des oprations
arithmtiques et logique , laccumulateur contient un des oprandes avant l'excution et le rsultat aprs.
Il a la mme taille que le mot
Registres gnraux
Permettent de sauvegarder
des information frquemment utilises pendant le programme ou des rsultats intermdiaires pour viter des accs la mmoire acclrant ainsi lexcution du programme.
Ils sont la disposition du
programmeur qui peut les utiliser avec les instructions qui les manipulent :
partir de la mmoire ou dun autre registre. Enregistrement en mmoire du contenu registre. Transfert du contenu registre dans l'accumulateur et viceversa. Incrmentation ou dcrmentation d'un registre.
tableaux de donnes.
Utiliss dans le mode d'adressage
index.
Registre dtat
Appel aussi registre condition.
Il contient diffrents bits appels
une pile dans la mmoire, dans laquelle on rserve une zone mmoire. Il contient l'adresse du sommet de la pile. Celle-ci est une partie de la mmoire, elle permet de stocker des informations (le contenu des registres) relatives au traitement des interruptions et des sousprogrammes. La pile est gre en LIFO : (Last IN First Out) dernier entr premier sorti. Le pointeur de pile SP pointe le haut de la pile, il est dcrment avant chaque empilement, et incrment aprs chaque dpilement.
commenant en 12E30H?
Que vaudra SP et que contiendra
Opcode
Oprande
instruction
Le champ tiquette, qui peut tre vide. Le champ mnmonique (obligatoire) Le champ oprande, par exemple EAX, BX, DH,
CL, MonCompteur, 10 (normalement obligatoire) Et dun champ commentaire, qui peut tre vide.
o Une instruction peut tre prcde d'un identificateur qui reprsente l'adresse de stockage de cette instruction. On appelle cet identificateur une tiquette (label en anglais).
o Ie label permet un reprage plus ais lintrieur du programme. Le nom du label est
arbitraire. Vous pouvez le nommer comme a vous chante tant qu'il est unique et ne viole pas la convention de nom de lassembleur.
nom de label.
Nutilisez pas de labels qui peuvent tre confondus avec dautres
labels.
Evitez les lettres I, O, Z, et les chiffres 0, 1, 2. Evitez aussi des labels tels que XXXX et XXXXX car on ne les
loprande de gauche comme oprande destination, celui dans lequel on trouve le rsultat de linstruction. Loprande de droite est appel oprande source. Le champ oprande est un champ optionnel selon linstruction. Une instruction peut avoir entre zro et trois oprandes.
Dans la plupart des assembleurs, il ne peut y avoir quune seule instruction par ligne. Chaque oprande peut tre le nom dun registre, une constante, une expression constante ou un emplacement mmoire.(suivant le mode d'adressage)
Intel 8086
Intel 80x86 (8086, 80186, 80286, 80386, 80486,Pentium, ...). Il se prsente sous la forme dun botier DIP (Dual In-line Package) 40 broches
microprocesseur. Lorsque cette entre est mise ltat haut pendant au moins 4 priodes dhorloge, le microprocesseur est rinitialis : il va excuter linstruction se trouvant ladresse FFFF0H. Le signal de RESET est fourni par le gnrateur dhorloge. READY : entre de synchronisation avec la mmoire. Ce signal provient galement du gnrateur dhorloge.
dun vnement extrieur. MN/MX : entre de choix du mode de fonctionnement du microprocesseur : mode minimum (MN/MX = 1) : le 8086 fonctionne de manire autonome, il gnre lui-mme le bus de commande (RD, WR, ...) ; mode maximum (MN/MX = 0) : ces signaux de commande sont produits par un contrleur de bus, le 8288. Ce mode permet de raliser des systmes multiprocesseurs.
dinterruption. INTR : interruption normale. NMI (Non Maskable Interrupt) : interruption prioritaire. INTA : Interrupt Acknowledge, indique que le microprocesseur accepte linterruption. HOLD et HLDA: signaux de demande daccord daccs direct la mmoire (DMA).
dadresses, multiplexs avec 16 bits de donnes. Le bus A/D est multiplex (multiplexage temporel) do la ncessit dun demultiplexage pour obtenir sparment les bus dadresses et de donnes
Il se fait en mmorisant ladresse lorsque celle-ci est prsente sur le bus A/D, laide dun verrou (latch), ensemble de bascules D. La commande de mmorisation de ladresse est gnre par le microprocesseur : cest le signal ALE, Address Latch Enable.
mmoire (M/IO = 1) ou les entres/sorties (M/IO = 0). DEN : Data Enable, indique que des donnes sont en train de circuler sur le bus A/D (quivalent de ALE pour les donnes). DT/R : Data Transmit/Receive, indique le sens de transfert des donnes : DT/R = 1 : donnes mises par le microprocesseur (criture) DT/R = 0 : donnes reues par le microprocesseur (lecture).
fonctionnant en parallle : lunit dexcution (EU : Execution Unit) . lunite dinterface de bus (BIU : Bus Interface Unit).
les instructions en mmoire et les range dans une file dattente ; lunit dexcution (EU) excute les instructions contenues dans la file dattente. Les deux units fonctionnent simultanment, do une acclration du processus dexcution dun programme (fonctionnement selon le principe du pipe-line).
rpartis en 4 groupes :
Registres gnraux : 4 registres sur 16 bits. Registres de pointeurs et dindex : 4 registres sur 16 bits. Pointeur dinstruction et indicateurs (flags) : 2 registres sur
16 bits.
Registres de segments : 4 registres sur 16 bits.