Anda di halaman 1dari 47

5/22/12

Langage Assembleur
Modifiez le style des sousIntel 8051 titres du masque

5/22/12

5/22/12

Plan:

Introduction Intel 8051


Caractristiques de Intel 8051

Microprocesseur

Mode

dadressage et Instruction de dplacement Instructions dArithmtique Logiques Drapeaux sauts

Instructions Les Les

5/22/12

Introduction:
Unlangage d'assemblage abrgASMest, enprogrammation informatique, unlangage de bas niveauqui reprsente lelangage machinesous une forme lisible par un humain. Lelangage machineest le seul langage qu'unprocesseurpuisse excuter. Or chaque famille de processeur utilise unjeu d'instructionsdiffrent.

5/22/12

Intel 8051 est un microcontrleur (MC) dvelopp par Intel en 1980 pour tre utilis dans des produits embarqus. structure d'un systme microprocesseur (MP) est:

La

Le MP parfois Unit Centrale mmoire ROM mmoire vive ou RAM ports d'entres/sorties

la La

Les

5/22/12

Le

8051 comporte :
mmoire ROM de 4Ko de 128 octets. nombre de registres appels SFR.

une

RAM

certain

5/22/12

Mode dadressage et Instruction de Intel 8051 autorise de nombreux modes dplacement entre autres des d'adressage permettant
accs rapides aux donnes loges en RAM interne facilitant ainsi des oprations portant sur de petites structures de donnes.

5/22/12

Le jeu d'instructions utilise cinq modes d'adressages qui sont les suivants:
Adressage

immdiat:

Au niveau code machine ce mode d'adressage se traduit par le fait que le code opration est suivi d'un deuxime octet reprsentant une donne. Du fait que cette donne est loge dans la mmoire programme, en gnral mmoire seulement accessible en lecture, elle constitue donc par dfinition

5/22/12

Adressage

direct :

Un des oprandes de l'instruction est une adresse sur le contenu de laquelle va porter l'opration. Aucun signe particulier n'est employ dans la syntaxe du code source et on lcrit: direct . Exemple: Recopier dans le registre A, la donne situe l'adresse 30H.

5/22/12

Adressage

par registre:

Le (ou les) oprande(s) de l'opration sont reprsents par des noms de registres. En fait l'opration porte sur les valeurs contenues dans ces registres. Exemple 1 : Transfrer dans A la valeur contenue dans R1 : MOV A, R1 Exemple 2 : Additionner cette valeur le

5/22/12

Adressage

indirect par registre :

L'adressage indirect par registre utilise le contenu des registres R0 ou R1 comme une adresse 8 bits. Ces pointeurs permettent de travailler sur des donnes situes dans les 256 premiers octets de la RAM interne ( 128 octets pour les 8051/31/8751) Ce mode dadressage ne

5/22/12

Adressage

au niveau du bit:

Un ensemble d'instructions permet des oprations logiques portant sur l'tat de bits. Un adressage au niveau du bit est donc possible. L'adresse tant spcifie sur un octet, le nombre de bits directement adressables est donc limit 256. 128 de ces bits se trouvent dans la zone RAM interne et les

5/22/12

Instructions Arithmtique:
Instructions

arithmtiques de ces microcontrleurs sont trs limites, peut additionner, soustraire, augmentation, diminution et a exceptionnellement t intgre des produits et division de nombres entiers.

5/22/12

Instructions: dec
Fonction : Dcrment de l'oprande "byte" Description: La variable indique est dcrmente de 1. Une valeur originale de 00H se traduira par le dbordement FFH. Aucun indicateur n'est modifi. Quand l'instruction est utilise pour modifier un port, la valeur utilise comme valeur originale sera lue partir du tampon de

5/22/12

inc
Fonction: Incrmente la variable byte. Description: La variable spcifie comme oprande est incrmente de 1. Une valeur d'origine de FFH se traduira par le dbordement vers 00H. Aucun indicateur n'est modifi Quand cette instruction est utilise pour modifier une sortie de port, la valeur utilise comme origine sera lue partir du tampon

5/22/12

add
Fonction: Addition avec la retenue. Description: L'oprande est additionn au contenu de l'accumulateur. Le rsultat est rang dans l'accumulateur. L'indicateur de retenue et l'indicateur de retenue auxiliaire sont respectivement mis 1 pour un report se produisant partir des bits 7 et 3, et mis 0 en absence de report.

5/22/12

addc
Fonction: Addition avec la retenue. Description: L'oprande, l'indicateur de retenue et le contenu de l'accumulateur sont additionns. Le rsultat est rang dans l'accumulateur. L'indicateur de retenue et l'indicateur de retenue auxiliaire sont respectivement mis 1 pour un report se produisant partir des bits 7 et 3, et mis 0 en absence de report. Pour une addition de deux entiers

5/22/12

SUBB
Fonction: soustraction avec retenue. Description: La somme de l'oprande source et de l'indicateur de retenue sont soustraits du contenu de l'accumulateur. Le rsultat est rang dans l'accumulateur. L'indicateur de retenue est mis 1 si un dbordement survient. Ce mcanisme permet une soustraction en multiple prcision o l'on soustrait l'indicateur de retenue rsultant de l'opration

5/22/12

Mul
Fonction: Multiplication. Description: MUL AB ralise la multiplication non signe des entiers contenus dans l'accumulateur et le registre B. Les 8 bits de poids faible du rsultat 16 bits est plac dans l'accumulateur, alors que les 8 bits de poids fort sont placs dans le registre B. Si le produit donne un rsultat suprieur 255, l'indicateur de dbordement OV est mis

5/22/12

div
Fonction: Division. Description: Ralise la division de l'entier non sign, situ dans l'accumulateur, par l'entier non sign, situ dans B. L'accumulateur reoit la partie entire du quotient et le registre B l'entier reprsentant le reste de la division. L'indicateur de retenue et l'indicateur OV sont mis 0. Si B vaut 00 les valeurs retournes par A

5/22/12

Instructions Logiques
ANL Fonction: Et logique. Description: ANL ralise l'opration logique ET entre la variable source et la variable destination. Les indicateurs ne sont pas modifis. Quand l'oprande destination est l'accumulateur, l'oprande source peut tre un registre, une adresse directe, une adresse indirecte

5/22/12

ORL
Fonction : OU logique. Description: Un OU logique est ralis entre l'octet source et l'octet destination. Le rsultat est rang dans l'oprande destination. Aucun indicateur n'est modifi. Les deux oprandes peuvent reprsenter 6 combinaisons de mode d'adressage. Lorsque l'accumulateur est considr comme

5/22/12

XRL
Fonction: OU exclusif logique. Description: Un OU exclusif est ralis entre l'octet source et l'octet destination. Le rsultat est rang dans l'oprande destination. Aucun indicateur n'est modifi. Les oprandes peuvent avoir 6 combinaisons de mode d'adressage. Quand ce type d'instruction est utilis pour modifier l'tat d'un port, la valeur

5/22/12

CLR A
Fonction: Remise zro de l'accumulateur. Description Tous les bits de l'accumulateur sont mis 0. Aucun indicateur n'est modifi. Exemple: L'accumulateur A vaut 5CH (01011100 B) l'instruction CLR A donne l'accumulateur la valeur 00H (00000000B).

5/22/12

CLR Bit
Fonction: Mise zro d'un bit. Description: Le bit spcifi est effac (mis 0). Aucun indicateur n'est modifi. Cette instruction peut porter sur l'indicateur de retenue ou sur un bit directement adressable (en RAM interne). Exemple: Le tampon du port 1 vaut 5DH (01011101B) l'instruction CLR P1.2

5/22/12

CPL A
Fonction: Complmente l'accumulateur. Description Chaque bit de l'accumulateur est complment (complment 1). Chaque bit 1 est mis 0 et vice versa. Aucun indicateur n'est modifi. Exemple: L'accumulateur A vaut 5CH (01011100 B) aprs l'instruction CPL A l'accumulateur aura pour valeur A3H

5/22/12

CPL Bit
Fonction: Complmente un bit. Description: Le bit dsign est complment. Aucun indicateur n'est modifi. Cette instruction peut porter sur l'indicateur de retenue ou sur les bits directement adressables. Exemple: Le port 1 est affect de la valeur 5DH (01011101 B), la squence CPL P1.1 CPL P1.2

5/22/12

RL A
Fonction: Rotation vers gauche. Description: Les 8 bits de l'accumulateur sont dcals d'un cran vers la gauche. Le bit A.7 est plac en poids faible A.0 . Aucun indicateur n'est modifi. A.7 A.6 A.5 A.4 A.3 A.2 A.1 A.0 Exemple: L'accumulateur contient la valeur 8BH (10001011B). L'instruction: RL A

5/22/12

RLC A
Fonction: rotation vers gauche travers l'indicateur de retenue. Description: Les 8 bits de l'accumulateur sont dcals d'un cran vers la gauche. Le bit A.7 est plac dans l'indicateur de retenue, alors que la valeur de celui-ci est place en poids faible de l'accumulateur A.0. Cy A.7 A.6 A.5 A.4 A.3 A.2 A.1 A.0 Exemple: L'accumulateur vaut C5H

5/22/12

RR
Fonction: Rotation vers droite. Description: Les 8 bits de l'accumulateur sont dcals d'un rang vers la droite. Le bit A.0 est plac en pois fort A.7. Aucun indicateur n'est modifi. A.7 A.6 A.5 A.4 A.3 A.2 A.1 A.0 Exemple: L'accumulateur contient la valeur 8BH (10001011B). L'instruction: RR A

5/22/12

RRC
Fonction: Rotation vers droite travers l'indicateur de retenue. Description: Les 8 bits de l'accumulateur et l'indicateur de retenue sont dcals ensemble d'un rang vers la droite. A.0 est plac dans l'indicateur de retenue alors que la valeur de celui-ci est place en a.7. Cy A.7 A.6 A.5 A.4 A.3 A.2 A.1 A.0

5/22/12

SWAP
Fonction: Permutation de quartets dans l'accumulateur. Description: Cette instruction change les 4 bits de poids fort avec les 4 bits de poids faible de l'accumulateur. Elle remplace avantageusement 4 instructions de rotation. Exemple: L'accumulateur contient la valeur C5H (11000101B). L'instruction:

5/22/12

SETB
Fonction: Mise 1 d'un bit. Description: Les instructions SETB positionnent la valeur 1, le bit spcifi par l'oprande. Exemple: L'indicateur de retenue est 0. Le port P1 vaut 34H (00110100B). La squence: SETB C SETB P1.0 positionne l'indicateur de retenue la

5/22/12

ACALL
Fonction : Appel inconditionnel de sousprogramme. Description: Le PC est d'abord incrment deux fois afin d'obtenir l'adresse de retour (adresse de l'instruction qui suit normalement l'instruction "ACALL", cette adresse est sauvegarde sur la pile, puis le saut a lieu. L'adresse du sous-programme est obtenue par la concatnation des 5 bits de poids

5/22/12

LJMP
Fonction: Saut inconditionnel long. Description: Cette instruction ralise un saut inconditionnel une adresse spcifie par 16 bits. La destination peut se situer n'importe quel endroit des 64Ko de la mmoire programme. Aucun registre n'est modifi. Exemple: L'tiquette ailleurs correspond l'adresse 1234H. L'instruction: LJMP

5/22/12

SJMP
Fonction: Saut. Description: Cette instruction ralise un branchement inconditionnel l'adresse indique. L'adresse de destination est calcule par addition du dplacement sign, exprim sur le deuxime octet de l'instruction, la valeur du PC pralablement positionn sur ladresse de linstruction suivante. L'espace de saut est ainsi limit 128

5/22/12

JMP
Fonction: Saut indirect. Description La valeur 8 bits non signe contenue dans l'accumulateur est additionne la valeur 16 bits contenue dans DPTR. Le rsultat constitue l'adresse de la prochaine instruction qui sera excute. Exemple: Une valeur paire comprise entre 0 et 6 est place dans l'accumulateur. La squence

5/22/12

JZ
Fonction: Saut si accumulateur gal 0. Description: Si tous les bits de l'accumulateur sont 0, le branchement l'adresse spcifie est ralis. Dans le cas contraire, c'est l'instruction suivante qui sera excute. L'adresse de destination est calcule par addition de la valeur signe "rel" la valeur du PC pralablement positionn sur ladresse de

5/22/12

JNZ
Fonction: Saut si accumulateur diffrent de 0. Description: Si l'accumulateur contient une valeur diffrente de 0, un branchement l'adresse spcifie est excut. Dans le cas contraire, c'est l'instruction suivante qui sera excute. L'adresse de destination est calcule par addition de la valeur signe "rel"

5/22/12

JC
Fonction: Saut si indicateur de retenue 1. Description: Si l'indicateur de retenue est 1, un saut l'adresse spcifie est excut. Sinon c'est l'instruction suivante qui est excute. L'adresse de destination est calcule par addition de la valeur signe "rel" la valeur du PC pralablement positionn sur ladresse de linstruction suivante. Aucun indicateur n'est modifi.

5/22/12

JNC
Fonction: Saut si l'indicateur de retenue est 0. Description: Si l'indicateur de retenue est 0, un branchement l'adresse indique est excut. Dans le cas contraire, c'est l'instruction suivante qui sera excute. L'adresse de destination est calcule par addition de la valeur signe "rel" la valeur du PC pralablement positionn sur ladresse de

5/22/12

JB
Fonction: Saut si le bit est 1 Description: Si le bit indiqu est 1, un saut relatif est excut. Dans le cas contraire, c'est l'instruction suivante qui est excute. L'adresse de destination est calcule par addition de la valeur signe "rel" la valeur du PC pralablement positionn sur ladresse de linstruction suivante. Le bit test n'est pas modifi. Aucun indicateur

5/22/12

JNB
Fonction: Saut si bit non 1 (saut si Bit = 0). Desciption: Si le bit spcifi est 0, un saut relatif est ralis, sinon l'instruction suivante est normalement excute. L'adresse de destination est calcule par addition de la valeur signe "rel" la valeur du PC pralablement positionn sur ladresse de linstruction suivante.

5/22/12

JBC
Fonction: Saut si le bit est 1 et mise 0 de celui-ci. Desciption: Si le bit indiqu est 1, un saut l'adresse indique est excut. Dans le cas contraire, c'est l'instruction suivante qui est excute. Si le test est positif le bit est remis 0. L'adresse de destination est calcule par addition de la valeur signe "rel" la valeur

5/22/12

CJNE:
Fonction: Comparaison et saut si non galit. Description : CJNE ralise une comparaison entre les deux premiers oprandes et provoque une rupture de squence (saut) en cas d'ingalit. L'adresse du saut est obtenue par addition de la valeur signe, reprsente par le troisime oprande, la valeur du PC

5/22/12

DJNZ:
Fonction: Dcrmente et saut si non gale 0. Description: La variable byte est dcrmente de 1 et si le rsultat est diffrent de 0, un saut relatif est excut. Une valeur originale de 00H provoque un dbordement vers FFH. Aucun indicateur n'est modifi. L'adresse de destination est calcule par addition de la valeur

5/22/12

NOP:
Fonction: Pas d'opration. Description: L'excution continue la prochaine instruction. A part le PC, aucun registre ou indicateur n'est modifi. Exemple: La suite d'instructions: CLR P2.7 NOP NOP

Anda mungkin juga menyukai