2

le stockage de données en .db, dans les zones de mémoires textmem ou autres saferam a une utilité dans chaque cas:

les zones saferam permettent de mettre des données dans des zones de mémoire libre, hors du programme, ce qui réduit sa taille, c'est très utile quand on utilise ces variables que pendant l'execution du programme, par contre, les .db sont utiles notamment pour l'enregistrement des scores d'un jeu car ces données restent dans le programme, et donc on retrouve ces infos d'une éxecution à l'autre...

4

Les zones de mémoire comme textmem ne servent que pour le tios pour sauveragder l'écran texte quand la calc s'éteint avec l'apd (quand on y touche pas pendant 5 minutes...) donc, tant que tu ne dépasse pas la taille de cette zone, y a pas de problème...
now, pour ton truc, à la fin, dans a tu aura rien du tout smile et tu te feras jeter à la compillation! parceque l'instruction ld a,hl n'existe pas, et si elle existait, elle serait abérante car elle voudrait dire charge dans a la valeur de hl, a étant 8 bits et hl 16 bits, y aurait des pertes de données... par contre, l'instruction ld a,(hl) existe, et les parenthèses changent tout
ces parenthèses indiquent que hl est utilisé ici comme pointeur et donc ,a prend la valeur située à l'adresse hl, soit ici 15... en fait, quand on trouve des (xx) , la valeur de xx est toujours considérée comme une adresse à la quelle on va chercher une valeur...

7

en fait la plupart du tps il faut que tu utilises les buffers de la ram (sh_buf, text_mem, ou je sais pas quoi), mais moi je te conseille juste d'utiliser sh_buf, c'est plus simple et il fait 2ko...par contre pour sauver un highscore, il faut impérativement le sauver ds le prog, avec un .db ou .dw
-pacHa

9

ou là "temp = sh_buf, c po de l'assembleur du tout! faut bien comprendre que quand tu met par exemple jp label1 ou ld a,(temp) en réalité, label1 et temp sont directement remplacés par le compillateur par des nombres, des adresses quoi...

et tu ne peux pas copier hl dans a sans perdre des informations, si hl<255 ça se verra pas et il suffit de faire ld a,l mais si hl>255, y aura perte d'info...

et puis pour finir, si tu veux par exemple mettre plusieurs variables en mémoire, il suffit de faire

#define var1 zonedemémoire SH_BUF ou autre)
#define var2 var1+taille de var1
#define var3 var2+taillevar2
...
comme ça, tu as var1, var2 et var3 qui sont les adreses de tes variables...