4. Неявное табличное вычисление. ( Осторожно - взрыв мозгов ! )
LD A,H ; 4 : 1
CP 16 ; 7 : 2
JR NC,M1 ; 12/7: 2
OR 128 ; 7 : 2
LD H,A ; 4 : 1
LD A,(HL) ; 7 : 1
RET ; 10 : 1
M1: LD L,H ; 4 : 1
LD H,127 ; 7 : 2
LD H,(HL) ; 7 : 1
LD L,A ; 4 : 1
ADD A,(HL); 7 : 1
RET ; 10 : 1
----------------------
17 байт.
Пpи HL = от 0 до 4095, Вpемя = 46 тактов.
Пpи HL = от 4096 до 65535, Вpемя = 62 такта.
Pазмеp таблицы 5120 . ( адрес в памяти 32768 )
Таблица состоит:
0000-4095 - ответы для HL от 0-4095
4096-4351 - интерполирование диапазона 4096-19199
4352-4607 - интерполирование диапазона 19200-33791
4608-4863 - интерполирование диапазона 33792-34815
4864-5119 - интерполирование диапазона 34816-65535
Почему именно так - можете и не спрашивать.
Дополнительная 256-байтная таблица с адреса 32512.
Состав:
DS 75 ,144
DS 57 ,145
DS 4 ,146
DS 120,147
===== НУ, ЧТО - БАШНЮ ОТОРВАЛО ??? =====
Сейчас отпустит, когда расскажу о точности вычисления:
Абсолютно точно = 50046 чисел. 77%
Ошибка на -1 = 10321 число. 15%
Ошибка на +1 = 5199 чисел. 8%
Ну, что сказать в свое оправдание - надо лучше интерполировать !
( Но так впадлу ... да и времени нет совсем ... )