С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Есть вроде подходящая процедура - DIV 12/12=8.8
А возможно её под 16 бит переделать?Код:;DIV 12/12=8.8 ;HL(SIGN)=HL(SIGN)/DE(UNSIGN) FDIVW LD BC,0 EX DE,HL INC H:DEC H JR Z,FDVW2 .3 INC B:SRA H:JR Z,FDVW1:RR L INC B:SRA H FDVW1 RR L FDVW2 LD H,TBLOG2[ LD A,(HL):INC H LD H,(HL):LD L,A ADD HL,BC EX DE,HL LD A,H:RLA JR NC,FDVW3 LD A,L:CPL:LD L,A LD A,H:CPL:LD H,A:INC HL SCF FDVW3 EX AF,AF LD BC,#0800 INC H:DEC H JR Z,FDVW5 .3 INC B:SRA H:JR Z,FDVW4:RR L INC B:SRA H FDVW4 RR L FDVW5 LD H,TBLOG2[ LD A,(HL):INC H LD H,(HL):LD L,A ADD HL,BC OR A:SBC HL,DE JP M,FDVW8 LD A,H:LD B,A LD H,TB2X[ LD L,(HL):LD H,1 SUB 8:JR NC,FDVW7 LD A,7:SUB B LD ($+4),A JR NZ,$ .7 ADD HL,HL LD L,H,H,0 FDVW6 EX AF,AF RET NC LD A,L:CPL:LD L,A LD A,H:CPL:LD H,A:INC HL RET FDVW7 LD A,#0F:SUB B JR C,FDVW8 LD ($+4),A JR NZ,$ .7 ADD HL,HL JR FDVW6 FDVW8 LD HL,0 RET
Destr, там еще какая то таблица требуется
ты бы размерность таблицы посмотрелКод:FDVW2 LD H,TBLOG2[
С уважением,
Jerri / Red Triangle.
Так, с делилкой вроде разобрались.
Как насчёт умножайки?
16*16=32 (HL*DE=HLDE)
Сейчас юзаю такую:
Бывают быстрей?Код:IMULW ; (+-) HLDE = HL*DE LD A,H:XOR D:PUSH AF BIT 7,H:CALL NZ,NEGHL BIT 7,D:CALL NZ,NEGDE CALL MULW POP AF RET P NEGHLDE XOR A:SUB E:LD E,A LD A,0:SBC A,D:LD D,A LD A,0:SBC A,L:LD L,A SBC A,H:SUB L:LD H,A RET MLW0 LD HL,0 RET NEGHL XOR A:SUB L:LD L,A SBC A,H:SUB L:LD H,A RET NEGDE XOR A:SUB E:LD E,A SBC A,D:SUB E:LD D,A RET MULW ; HLDE = HL * DE LD A,L:OR H:JR Z,MLW0 LD A,E:OR D:JR Z,MLW0 LD A,L,B,H:LD HL,0:OR A JP Z,MLW3 DUP 8 RRA:JR NC,$+3:ADD HL,DE:RR H,L EDUP RRA:LD C,A LD A,B MULW1 OR A:JR Z,MLW2 DUP 8 RRA:JR NC,$+3:ADD HL,DE:RR H,L EDUP RRA:LD D,A,E,C RET MLW3 LD A,L,L,H,H,0 LD C,A,A,B JR MULW1 MLW2 LD A,L,L,H,H,0 LD D,A,E,C RET
Ребята, а отсюда:
http://baze.au.com/misc/z80bits.html
процедуры пройдут?
Вообще нужна процедура 16=16*16
Но хитрая.
Сейчас делаю так:
CALL IMULW ;HLDE=HL*DE
LD E,D,D,L
Т.е. нужны собственно не HLDE, а только LD
Как-бы сократить чтоб шустрей было?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)