Ready64 Forum
Commodore 64 => Aiuto & Domande => Topic aperto da: input - 02 Gennaio 2020, 10:56:55
-
salve ragazzi, sono un nuovo, poiche ho voglia di imparare l assembly , e sono alle prime armi,
chiedevo per favore qualche delucidazione sul perche
scrivendo questo piccolissimo programma in basic e in assembly funziona , ma in codice macchina no,
(poiche secondo il mio modesto parere, anche se laborioso fa capire come si programma in assembly.)
volevo sapere dove sta l errore, perche sono bloccato , se non capisco non vado avanti
. per una chiara comprensione elenco i tre listati
grazie
BASIC
10 for x=1 to 1000
20 poke 53280,x
30 next
ASSEMBLY
A2000 INC$ d020
A2003 JMP$ 2000
G2000
LM
10 for l=49152 to 49156
20 read a
30 pokel,a: next
40 data 238,32,208,76,96
ready.
run
ready.
sys49152
-
Punto primo: non puoi mettere valori maggiori di 255 in locazioni di memoria a 8 bit.
Punto secondo: la JMP prende 3 bytes, quindi il codice macchina e l'assembly relativo non corrispondono.
Punto terzo: per chiarezza, le prossime volte racchiudi il codice tra i tag code.
-
scusa la mia ignoranza,
ma per il primo punto , non riesco a seguirti, vuoi per favore farmi notare dove ho messo questo valore superiore a 255 perche non ci arrivo .
per il secondo punto, vuoi farmi un esempio come si scrive il codice il LM
il terzo punto ho capito e non si ripetera piu
grazie
-
per il primo punto , non riesco a seguirti, vuoi per favore farmi notare dove ho messo questo valore superiore a 255 perche non ci arrivo .
grazie
Nel ciclo FOR del programma BASIC usi una variabile che assume tutti i valori interi da 1 a 1000, quindi... :)
per il secondo punto, vuoi farmi un esempio come si scrive il codice il LM
Ogni istruzione assembly 65xx si traduce in un byte di opcode e un numero variabile di bytes (0,1 o 2) che rappresentano eventuali operandi. L'istruzione JMP prende un byte per l'opcode e 2 bytes per l'operando (l'indirizzo di salto a una locazione di memoria assoluta, nel formato basso/alto).
Detto questo non posso che rimandarti a un qualunque testo introduttivo sulla programmazione del C64 (personalmente consiglio la sempreverde "Commodore 64 Programmer's reference guide").
Un saluto
-
grazie molto per avermi aiutato, sono riuscito nell intendo