Il set di opcode del 6510 (processore del C64) non comprende in modo nativo l'operazione di moltiplicazione e divisione. Su codebase64 sono disponibili algoritmi per il calcolo e' ho provato ad usare quello piu' semplice (8 bit * 8 bit = 8 bit) usando sia la sintassi di Acme che di KickAss (anche come promemoria)
Il risultato viene salvato nell'accumulatore e quindi spostato in una variabile
KickAss
--------------
*=$c000
//sys 49152
lda #$00
beq enterLoop
doAdd:
clc
adc num1
loop:
asl num1
enterLoop:
lsr num2
bcs doAdd
bne loop
end:
sta num3
rts
num1: .byte 7
num2: .byte 3
num3: .byte 0
--------------
Acme
--------------
; Moltiplicazione 8bit*8bit=8bit
!source "./stdlib/stdlib.a"
!to "fixed.prg", cbm
!sl "fixed.map"
!cpu 6510
!ct pet
*=$c000
;sys 49152
lda #$00
beq enterLoop
doAdd:
clc
adc num1
loop:
asl num1
enterLoop:
lsr num2
bcs doAdd
bne loop
end:
sta num3
rts
num1: !by 7
num2: !by 3
num3: !by 0
Iscriviti a:
Commenti sul post (Atom)
Alpine Linux 2024 su IBM A31
Ho provato a far resuscitare un IBM A31 destinato alla discarica. La macchina ha processore P4, 256 Mb di RAM, la batteria CMOS morta ed e...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
Nessun commento:
Posta un commento