[zxspectrum] Re: Re[2]: compito in classe

  • From: Paolo Ferraris <pieffe8@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Tue, 10 May 2016 00:02:42 -0700

Ultima mia versione del primo algoritmo (BCD -> BIN). Identico al
precedente ma usa RRCA (1 byte) invece di SRL A (2 byte).

LD D,A
AND 15   ; low
LD E,A
XOR D    ; high x 16
RRCA     ; high x 8
LD D,A
RRCA     ; high x 4
RRCA     ; high x 2
ADD A,D  ; high x 10
ADD A,E  ; high x 10 + low


2016-05-09 23:51 GMT-07:00 Paolo Ferraris <pieffe8@xxxxxxxxx>:

Algoritmo inverso. Purtroppo richede divisione per 10.

LD C,-1
LOOP:
INC C
SUB 10
JR C,LOOP
ADD A,10
LD B,A
LD A,C
ADD A,A
ADD A,A
ADD A,A
ADD A,A
ADD A,B


2016-05-09 23:29 GMT-07:00 Paolo Ferraris <pieffe8@xxxxxxxxx>:

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






Other related posts: