Commodore 64 > Programmazione, Grafica e Musica

E Se Volessi Imparare Il Linguaggio Macchina

<< < (2/4) > >>

iAN CooG:

--- Citazione da: "Alberto" --- Dal canto mio potrei dedicare qualche articolo al LM,se viene dimostrato un certo interesse da parte del popolo :)
--- Termina citazione ---
E' il mio stesso intento. Intanto posta qualcosa, che gia' DJWiper l'abbiamo incuriosito ;) +1 sul tabellone  :D  

djwiper:
 Mhhh.. Grazie a tutti per i consigli! Beh, più che incuriosito sono fremente...
Come BASIC dovrei essere a buon punto (sono dieci e passa anni che tra Commodore, Qbasic, Visual Basic) smanetto... Ma come registri del C64, beh devo fare luce! Per caso sono simili all'assembler x86? AX, BX o EAX, EBX?

MarC=ello:
 Beh, devi distinguere fra i registri del microprocessore e i registri degli altri integrati...

Nel 6510 abbiamo essenzialmente il registro A (accumulatore), l'unico fornito di istruzioni per i calcoli matematici (e ciè ADC che somma la memoria all'accumulatore), tuttavia non esiste un'istruzione per incrementare/decrementare l'accumulatore, ma niente paura, ci sono i registri X e Y (tutti questi registri sono ad 8 bit). Abbiamo poi i registri 0 e 1, che hanno un uso specifico per la gestione della memoria e differenziano il 6510 rispetto al 6502.
Inoltre si hanno il registro PC, program counter, che contiene la locazione corrente nella quale si trova l'istruzione o argomento dell'istruzione correntemente eseguita, e lo SP, cioè lo Stack Pointer, il puntatore allo stack.
Si tratta di un assembler diverso dall'assembler della famiglia X86... un assembler con meno istruzioni, le quali però richiedono meno cicli. Quindi, se da un lato l'assembler del 6502 può apparire più semplice per il minor numero di istruzioni, dall'altro c'è la complicazione di un maggior sforzo richiesto al programmatore, ad esempio nell'implementare cose per le quali, nello Z80 ad esempio, esistono istruzioni specifiche. In aiuto a questo sono stati studiati i macroassembler (ad esempio il merlin 64).

I registri del VIC-II sono, possiamo dire, delle particolari locazioni di memoria atte a contenere dei valori i quali servono per scopi particolari. Ad esempio, il registro locato a 53280 ($D020) serve per impostare il colore del bordo. Il registro 53265 è un registro di controllo ed ha varie funzioni (ad esempio può essere usato per impostare il modo bit-map ecc ecc...).

Discorso analogo per i registri del SID.

Il discorso sarebbe ampio, ma spero di aver reso l'idea.

djwiper:
 Capito.... Un pò come accade nelle diverse versioni del Basic, magari per cercare una stringa puoi utilizzare il comando Instr, mentre nelle versioni precedenti dovevi "ciclare" il Mid.

Per i registri spero di far pratica quanto prima, seguirò il consiglio di Alberto per iniziare.
 :ciauz:  

Alberto:
 
--- Citazione ---sono stati studiati i macroassembler (ad esempio il merlin 64).

--- Termina citazione ---
O lo stesso MacroAssembler di mamma Commodore :c64:  :P  ;)  

Navigazione

[0] Indice dei post

[#] Pagina successiva

[*] Pagina precedente

Vai alla versione completa