Logicielsmoto.com
http://www.logicielsmoto.com/phpBB/

Directive ORG et LOADM,,R
http://www.logicielsmoto.com/phpBB/viewtopic.php?f=3&t=649
Page 1 sur 1

Auteur:  fxrobin [ 15 Juil 2021, 15:46 ]
Sujet du message:  Directive ORG et LOADM,,R

Bonjour à tous,

alors j'ai une question de gros débutant, j'ai presque honte de la poser ... (en fait oui j'ai carrément honte).

voici mon code ASM

Code:
(main)hello.asm   * Marquage du programme principal
    ORG $A000
DEBUT   
    LDX #MESSAGE
AFFICHE
    LDB ,X+
    BEQ FIN
    JSR $E803
    BRA AFFICHE
FIN   
    SWI
MESSAGE
    FCS "HELLO LES THOMSONISTES !",0
    END   


compilé avec C6809, aucun problème.

Quand je charge le .BIN avec LOADM "HELLO.BIN",,R
ça ne s'exécute pas directement, je dois faire un EXEC &HA000

Pourquoi ne le lance-t-il pas directement, malgré le ",,R"

J'ai honte pour cette question, mais quelque-chose m'échappe et je ne sais pas quoi :oops:

Auteur:  Samuel Devulder [ 18 Juil 2021, 10:14 ]
Sujet du message:  Re: Directive ORG et LOADM,,R

Le loadm va bel et bien charger à l'adresse du ORG, mais le point de lancement n'est pas forcément là. En fait suivant l'organisation du source tu peux te retrouver à mettre le point de lancement plus loin. Aussi il n'y a pas d'adresse de lancement implicite. Il faut explicitement indiquer au code asm où on veut que le EXEC sans argument ou le LOADM avec ",,r" lancera l'ASM en donnant une adresse (souvent sous la forme d'une étiquette) en argument à la directrive END.

Auteur:  Samuel Devulder [ 18 Juil 2021, 10:50 ]
Sujet du message:  Re: Directive ORG et LOADM,,R

Le BM16 avec les couleurs d'origine type atari (16 couls aussi) rendent bien une fois le gamma corrigé.

Auteur:  adnz [ 18 Juil 2021, 15:37 ]
Sujet du message:  Re: Directive ORG et LOADM,,R

Donc j'imagine que ton code asm se termine comme cela ?

Code:
ORG $A000
...
...
...
END $A000

Auteur:  fxrobin [ 19 Juil 2021, 09:44 ]
Sujet du message:  Re: Directive ORG et LOADM,,R

Merci Samuel, effectivement avec ça, le LOADM,,R lance le programme directement.

Code:
(main)hello.asm   * Marquage du programme principal
    ORG $A000
DEBUT   
    LDX #MESSAGE
AFFICHE
    LDB ,X+
    BEQ FIN
    JSR $E803
    BRA AFFICHE
FIN   
    SWI
MESSAGE
    FCC \HELLO LES THOMSONISTES !\
    FCB $0A,$0D,$00
    END DEBUT


La différence sur le binaire généré :

SANS l'étiquette sur le END

Code:
/*--------------------------------------------------------------*
 * Compilé avec C6809 v0.83                                     *
 *--------------------------------------------------------------*
 * Fichier source      : hello.small.noend.6809
 * Fichier destination : HELLO.BIN
 * Contenu :
 *     Main     0:hello.asm    180
 *--------------------------------------------------------------*/

Macro Pass
Pass1
Pass2
      2        A000                   ORG $A000
      3        A000               DEBUT
      4  3     A000 8E   A00D         LDX #MESSAGE
      5        A003               AFFICHE
      6  4+2   A003 E6   80           LDB ,X+
      7  3     A005 27   05           BEQ FIN
      8  8     A007 BD   E803         JSR $E803
      9  3     A00A 20   F7           BRA AFFICHE
     10        A00C               FIN
     11  19    A00C 3F                SWI
     12        A00D               MESSAGE
     13        A00D 48 45 4C 4C       FCC \HELLO LES THOMSONISTES !\
               A011 4F 20 4C 45
               A015 53 20 54 48
               A019 4F 4D 53 4F
               A01D 4E 49 53 54
               A021 45 53 20 21
     14        A025 0A 0D 00          FCB $0A,$0D,$00
     15                  0000         END

000000 Total Errors

000004 Total Symbols
     1x          Label A003 AFFICHE
     0x          Label A000 DEBUT
     1x          Label A00C FIN
     1x          Label A00D MESSAGE



AVEC l'étiquette sur le END

Code:
/*--------------------------------------------------------------*
 * Compilé avec C6809 v0.83                                     *
 *--------------------------------------------------------------*
 * Fichier source      : hello.small.6809
 * Fichier destination : HELLO.BIN
 * Contenu :
 *     Main     0:hello.asm    186
 *--------------------------------------------------------------*/

Macro Pass
Pass1
Pass2
      2        A000                   ORG $A000
      3        A000               DEBUT
      4  3     A000 8E   A00D         LDX #MESSAGE
      5        A003               AFFICHE
      6  4+2   A003 E6   80           LDB ,X+
      7  3     A005 27   05           BEQ FIN
      8  8     A007 BD   E803         JSR $E803
      9  3     A00A 20   F7           BRA AFFICHE
     10        A00C               FIN
     11  19    A00C 3F                SWI
     12        A00D               MESSAGE
     13        A00D 48 45 4C 4C       FCC \HELLO LES THOMSONISTES !\
               A011 4F 20 4C 45
               A015 53 20 54 48
               A019 4F 4D 53 4F
               A01D 4E 49 53 54
               A021 45 53 20 21
     14        A025 0A 0D 00          FCB $0A,$0D,$00
     15                  A000         END DEBUT

000000 Total Errors

000004 Total Symbols
     1x          Label A003 AFFICHE
     1x          Label A000 DEBUT
     1x          Label A00C FIN
     1x          Label A00D MESSAGE



Samuel Devulder a écrit:
Le BM16 avec les couleurs d'origine type atari (16 couls aussi) rendent bien une fois le gamma corrigé.


Uhmm, trompage de fil de discussion peut-être ? :W

Auteur:  Samuel Devulder [ 22 Juil 2021, 21:01 ]
Sujet du message:  Re: Directive ORG et LOADM,,R

fxrobin a écrit:
Uhmm, trompage de fil de discussion peut-être ? :W

Oui lol. Je suis pas habitué à autant d'activités sur le forum :D

Page 1 sur 1 Heures au format UTC + 1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/