Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2521 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  Motorola 68000, aide sur un programme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Motorola 68000, aide sur un programme

n°315594
Giz
Posté le 22-02-2003 à 18:31:34  profilanswer
 

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).

mood
Publicité
Posté le 22-02-2003 à 18:31:34  profilanswer
 

n°336614
mani
Posté le 18-03-2003 à 19:49:29  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  Motorola 68000, aide sur un programme

 

Sujets relatifs
[C/C++] [Win32 API] Récupérer le nom du dossier contenant ce programmeProgramme sur les polynomes !
[JAVA] - Tester la non nullité d'un champ - Besoin Aide 1 min maxi !Besoin d'aide en Visual Basic!
Besoin d'aideRequête SQL toute simple.... AIDE SVP
Quelqu'un connais les combobox en VB 6 ici? AIDE SVP!Transformer un programme JAVA en fichier .EXE
[Windows] Comment lancer un programme en tache de fond ? RESOLUMySQL : sélection multi-consoles pour un programme de news
Plus de sujets relatifs à : Motorola 68000, aide sur un programme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR