Où pointeur va?

N

Navid T

Guest
Salut ingénieurs
J'ai écrit ce code pour envoyer 55 millions de USART et il fonctionne correctement.
Que faire si je n'écris pas (Fin: RJMP FIN)??où le pointeur ira?pourquoi??
J'ai vu 55 millions de plus en plus quand je n'ai pas écrit de fin de ligne.
--------------------------------------------------
# include "m16def.inc"
. ORG $ 0
RJMP SETUP
SETUP:
LDI R16, HIGH (RAMEND)
OUT SPH, R16
LDI R16, LOW (RAMEND)
OUT SPL, R16
CLI
LDI R16, 0 $
OUT UCSRA, R16
LDI R16, 08 $
OUT UCSRB, R16
LDI R16, 86 $
OUT UCSRC, R16
CLR R16
OUT UBRRH, R16
LDI R16, 23 $
OUT UBRRL, R16
SEI
LOOP: SBIS UCSRA, 5
RJMP LOOP
LDI R16, 55 $
OUT UDR, R16
END: END RJMP
--------------------------------------------------
Cordialement

 
Salut,
Commence à courir une fois, l'UC continue de fonctionner que s'il est arrêté ou placé dans une boucle d'attente.Quand il franchit les limites de vos instructions, il prend l'octet suivant que l'instruction et le lance jusqu'à l'adresse mémoire réinitialise à zéro et là, il détecte votre code à nouveau, à condition traversant par la zone non définie de la mémoire a eu lieu dans une ordonnée de la mode.Sinon, il commence à faire des choses folles.

Observe,
Laktronics

 
Salut,
En passant le mot "fin" est normalement utilisée par les assembleurs de connaître la limite de l'assemblage des instructions, même si le «:» supplémentaire en fait une étiquette.Toutefois, il est une meilleure pratique d'utiliser une étiquette autre boucle et l'utilisation 'END' que comme une directive de l'Assemblée pour marquer la fin des programmes destinés à être assemblés.

Observe,
Laktronics

 

Welcome to EDABoard.com

Sponsor

Back
Top