On Tue, Mar 23, 2004 at 08:27:15PM +0100, Enrico Maria Giordano wrote: > megabug wrote: > > Si puo' sfruttare l'istruzione RLD per shiftare di 4 bit in colpo solo: > > > > LD A,0 > > LD L,C ; Assert (C<8) > > RLD > > Non capisco come possa funzionare. RLD sposta tra l'accumulatore e la > locazione di memoria puntata da HL. Ma tu in HL non hai messo un > indirizzo. Hai ragione, ho letto male l'instruction set e non mi ero accorto di quei strani piccoli caratteri intorno ad HL (le parentesi :)) e ho pensato che la rotazione avvenisse con il contenuto diretto di HL. Troppo comodo eh? Mmmmm..... vediamo, si potrebbe cmq. sfruttare in questo modo: LD HL, x ; dove x e' una locazione di memoria libera LD (HL), 0 LD A, C ; Assert (C<8) A=C RLD ; A=C*16 ADD A, A ; A=C*32 ADD A, B ; Assert (B<32) A=C*32+B LD L, A LD H, 88 ; HL = C*32+B+22528 Se poi la locazione x e' nel range $58xx si puo' eliminare anche l'ultima istruzione. E' corretto oppure ho detto fesserie anche stavolta? (No. Non ho fumato. Si'. Sono un feticista dell'assembly.) saluti -- megabug