Motorola 68000, aide sur un programme

Motorola 68000, aide sur un programme - ASM - Programmation

Marsh Posté le 22-02-2003 à 18:31:34    

ORG $0    
 DC.L $1E00  
 DC.L START  
 
 ORG $0800  
N1 DC.L $40200000
N2 DC.L $C0200000
N3 DS.L 1
 
START MOVE.L (N1),-(A7) On place la valeur de N1 sur la pile
 PEA N3  On place l'adresse de N3 sur la pile
 BSR ABS
 ADD.L #8,A7  On restitue la valeur de la pile
 
 MOVE.L (N2),-(A7) On place la valeur de N2 sur la pile
 PEA N3  On place l'adresse de N3 sur la pile
 BSR ABS
 ADD.L #8,A7  On restitue la valeur de la pile
 
 BREAK   Fin du programme principal
 
ABS MOVE.L 4(A7),A0 On récupère l'adresse où stocker le résultat
 MOVE.L 8(A7),D0 On récupère la valeur du flottant
 
 BCLR #31,D0  On met le bit S du flottant à 0
 MOVE.L D0,(A0)  On stocke le flottant
 
 RTS   Fin du sous programme
 
 
Le but de ce programme est de retourner la valeur absolue d'un nombre. Les parties en gras, je ne comprends pas  :cry:  
en fait c surtout que je n'arrive pas a voir ou se situe le pointeur de pile A7 après les instruction en gras !
Chaque donnée de la pile st sur 16 bits. faire (A7)+ incremente-t-il l'adresse pointée par A7 de 2 octets ? 8(A7), je sais que c l'addition pour un déplacement (adressage indirect) de A7+8 , mais 8 koi ?? (octet ou bit)...que je considère que ce soit des déplacements en octets ou en bit, je n'arrive pas a suivre le pointeur de pile (= A7).

Reply

Marsh Posté le 22-02-2003 à 18:31:34   

Reply

Marsh Posté le 18-03-2003 à 19:49:29    

Code :
  1. ABS MOVE.L 4(A7),A0 On récupère l'adresse où stocker le résultat
  2. MOVE.L 8(A7),D0 On récupère la valeur du flottant


 
le "8" est en octets, et signifie que l'on recopie la valeur qui est pointée 8 octets avant par la pile. Il faut faire attention au fait que : quand on rajoute qlq chose dans la pile, on la decremente. Donc quand on veut recupérer qlq chose mis avant dedans, il faut incrementer. c'est une autre façon de penser ... quand on parle du fond de pile, il s'agit de l'adresse maximale de la pile. En fait on remplit la pile par le "haut".
 
les 2 MOVE permettent de recuperer les parametres passés (@ de stockage et valeur du flottant) au sous programme.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed