Il 19/06/2016 17:36, Luca Alimandi ha scritto:
Questo è un quesito per EMG!
Ho un problema. Sto provando ad usare la funzionalità di ZXASM che permette di raccogliere nella cartella LIB parti di programma che possono essere riutilizzati in vari programmi, ossia delle librerie.
Accade però che se voglio utilizzare una variabile (diciamo, globale, per usare la terminologia generale della programmazione) in modo che sia il programma principale che la libreria possano accedere a tale variabile, il compilatore mi dice che c'è una "undefined label" e non riesce a compilare.
Esempio:
-- main.asm --
org 30000
start ld a, 0
ld (var), a
call invert
ret
var defb 0
-- LIB/invert.asm --
invert ld a,(var)
cpl
ld (var),a
ret
Se metto la definizione della variabile nel programma principale, l'errore di compilazione viene segnalato nella compilazione della libreria, e viceversa. Se la metto in entrambe, ciascuno vedrà una sua variabile locale, diversa da quella dell'altro, per cui non funzionerebbe come voluto.
C'è un modo per poter usare le variabili globali con le librerie?