Ancora meglio:
LD D,A
AND 15 ; low
LD E,A
XOR D ; high x 16
SRL A ; high x 8
LD D,A
SRL A ; high x 4
SRL A ; high x 2
ADD A,D ; high x 10
ADD A,E ; high x 10 + low
2016-05-09 23:16 GMT-07:00 Paolo Ferraris <pieffe8@xxxxxxxxx>:
Forse questo funziona?
LD D,A
AND 15 ; low
LD E,A
LD A,D
XOR E ; high x 16
SRL A ; high x 8
LD D,A
SRL A ; high x 4
SRL A ; high x 2
ADD A,D ; high x 10
ADD A,E ; high x 10 + low
Chiedo scusa, non ho a portata di mano l'assembler per provarlo.
2016-05-09 23:08 GMT-07:00 Paolo Ferraris <pieffe8@xxxxxxxxx>:
Hai ragione. Nella "divisione per 8" rimane un bit non cancellato.
2016-05-09 14:01 GMT-07:00 Enrico Maria Giordano <
e.m.giordano@xxxxxxxxxxxxxxx>:
Il 09/05/2016 22:58, Enrico Maria Giordano ha scritto:
Ok, allora a posto così. La routine, con l'ottimizzazione di Paolo
diventa:
BCDTOBIN
LD D,A
AND 15
LD E,A
LD A,D
SRL A
SRL A
SRL A
LD D,A
ADD A,A
ADD A,A
ADD A,D
ADD A,E
RET
Ho fatto un po' di prove e purtroppo no, non funziona. Ci vuole quella
originale.
EMG
--
EMAG Software Homepage: http://www.emagsoftware.it
The EMG Music page: http://www.emagsoftware.it/emgmusic
The EMG's ZX-Spectrum Page: http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: http://www.emagsoftware.it/tbosg