Code assembleur 8051

Electronique numérique / Circuits logiques programmables EPLD, CPLD, FPGA d'Altera ou de Xilinx VHDL, Verilog ou SystemC

Modérateur : Modérateur

Avatar de l’utilisateur
Belgitaes
PONCTUEL
PONCTUEL
Messages : 29
Inscription : 21 juin 2005 16:51

Code assembleur 8051

Message par Belgitaes »

voila cela est la premier foit que je post ici
excusé moi pour mon francais car je suis españole je ferais le mieux pour ne pas faire des errores de ortographie
je suis entrain d´etudié le micro 8051 et ces registre
voila ma question si quelqun pourrait máider sil vous plait
jéssaye de comprendre un code en asm

0009 : E4 CLR A ;A=0
000A : F8 MOV R0,A ;R0=A(0)
000B : 7E 30 MOV R6,#30H ;R6=#30
000D : DE FE DJNZ R6,000DH ;Decrement and ;Jump R6 if Not Zero Jump@000D

000F : 20 90 2C JB 90H,003EH ;if 90H(I/O) is High Jump@003E

Debug Mode
TestModeStartup
0012 : 30 90 FD JNB 90H,0012H ;If 90H(I/O) is LOW Jump@0012
0015 : 7E 20 MOV R6,#20H ;R6=#20(32)
0017 : F9 MOV R1,A ;R1=A(0)

voila ma question
000D : DE FE DJNZ R6,000DH ;Decrement and ;Jump R6 if Not Zero Jump@000D Le contenu du registre R6 est diminué de 1.
Si le contenu est alors différent de zéro, saute relativement à l’adresse rel.
voila ceci Si le contenu est alors différent de zéro??????
comment savoir si le contenu est different de zero comment calculé cela ?
si la direccion 30H qui vaut 00110000 comment savoir si il different de zero
et comment savoir
JB 90H,003EH ;if 90H(I/O) is High
90 est = 10010000 comment savoir ou meilleur dit comment calcule si il est high ou LOW

merci
Avatar de l’utilisateur
vincevg
ACCRO
ACCRO
Messages : 803
Inscription : 05 mars 2005 16:58
Localisation : SMalville
Contact :

Message par vincevg »

Salut Belgitae,
000B : 7E 30 MOV R6,#30H ;R6=#30
Tu initialises R6 à 48d (30h)
000D : DE FE DJNZ R6,000DH ;Decrement and ;Jump R6 if Not Zero Jump@000D
Tu boucles sur cette ligne (tu fait une tempo donc) 48 fois. A chaque tour du décrémente R6 et quand il arrive à 0 tu sort de la boucle.
000F : 20 90 2C JB 90H,003EH ;if 90H(I/O) is High Jump@003E
JB est un saut conditionnel. Là le saut se produit quand une Entrée (à l'adresse 90) passe à 1. Il s'agit de détecter un évènement.
Vince
http://anyedit.free.fr/
http://electropol.free.fr/

Les amis, ça va, ça vient, mais les ennemis, ça s’accumule.
Avatar de l’utilisateur
vincevg
ACCRO
ACCRO
Messages : 803
Inscription : 05 mars 2005 16:58
Localisation : SMalville
Contact :

Message par vincevg »

Ca fait des année que je n'ai pas touché à l'assembleur 8051 donc si quelqu'un relève une erreur qu'il ne se gène pas pour corriger.
Vince
http://anyedit.free.fr/
http://electropol.free.fr/

Les amis, ça va, ça vient, mais les ennemis, ça s’accumule.
Avatar de l’utilisateur
Belgitaes
PONCTUEL
PONCTUEL
Messages : 29
Inscription : 21 juin 2005 16:51

Message par Belgitaes »

oui ; Merci Vince
je comprend bien la reponse maintenant par apport au port 90
passe à 1. Il s'agit de détecter un évènement.

mais jái encore des petites doutes avec
Tu boucles sur cette ligne (tu fait une tempo donc) 48 fois.
cela voudrais dire que je saute 48 fois en decrementant mon registre
jusquil arrive a zero sinon il ira a la direccion 0DH

Merci baucoup pour la reponse
et un gran bonjour de léspagne :-D
Avatar de l’utilisateur
vincevg
ACCRO
ACCRO
Messages : 803
Inscription : 05 mars 2005 16:58
Localisation : SMalville
Contact :

Message par vincevg »

cela voudrais dire que je saute 48 fois en decrementant mon registre
jusquil arrive a zero sinon il ira a la direccion 0DH

Non en fait
  1. 000B : 7E 30 MOV R6,#30H ;R6=#30
    Tu charge R6 à 30h,
  2. Tu boucles 48 fois sur 000Dh. R6 est décrémenté à chaque tours.
  3. R6 = 0 tu arrête de boucler sur 000D et le programme continue.
Vince
http://anyedit.free.fr/
http://electropol.free.fr/

Les amis, ça va, ça vient, mais les ennemis, ça s’accumule.
Avatar de l’utilisateur
Belgitaes
PONCTUEL
PONCTUEL
Messages : 29
Inscription : 21 juin 2005 16:51

Message par Belgitaes »

Merciiiiii baucoup Vince
une petite question ""Tu boucles ""
excuse moi pour mon francais
Tu boucles voudrais dire sautte ?? :oops:
Avatar de l’utilisateur
Belgitaes
PONCTUEL
PONCTUEL
Messages : 29
Inscription : 21 juin 2005 16:51

Message par Belgitaes »

oui maintenat jái compris je viens de lire cela dans un post
cet parce que certaine expression francaise me son dificile de comprendre

Tu boucles :(

Par définition, une boucle est une suite d'instructions répétées jusqu'à ce que la condition de sortie soit vérifiée
On va donner une instruction, puis on va demander au programme de répéter cette instruction tant que la condition (qu'on a définie) est vraie. :-D
il faut mexcusé car je suis vraiment debutante

Merci Vince
JP
Administrateur
Administrateur
Messages : 2327
Inscription : 23 sept. 2003 19:14
Localisation : Strasbourg
Contact :

Message par JP »

:welcome: Belgitaes,

( Je change le titre de la discussion pour qu'il soit un peu plus explicite )
Répondre