DI HALT (18:58:45 10/03/2010)
занимаюсь кусочно линейной аппроксимацией логарифической функции на ассемблере
norguhtar(18:58:52 10/03/2010)
мдаа…
лечиццо не пробовал ? :)
DI HALT (18:59:17 10/03/2010)
да не, нормально, в 50 команд укладываюсь
Вот, зырь:
LineAPPROX: LDS OSRG,ADC_Data MuchFAR: CPI OSRG,20 BRCS MuchFar CPI OSRG,56 BRCS Far CPI OSRG,118 BRCS Near CPI ОSRG,250 BRCS Close ToClose: LDI OSRG,0 RET ; X = 63-0.25Y Close: LSR OSRG ;0.25Y LSR OSRG LDI ACC,63 SUB ACC,OSRG RJMP JABA ; X= 150 - Y Near: LDI ACC,150 SUB ACC,OSRG ; 150-Y JABA: MOV OSRG,ACC RET ; X = 63+255-4Y Far: LSL OSRG ; Y*4 LSL OSRG COM OSRG ; 255-(Y*4) SUBI OSRG,-63 ; 63+(255-(Y*4)) RET MuchFar: LDI OSRG,255 RET
DI HALT (19:04:32 10/03/2010)
а JABA это меня жаба задавила тратить лишние два байта
norguhtar (19:04:36 10/03/2010)
%))
DI HALT (19:04:37 10/03/2010)
взял из другой процедуры джампнув туда — на джамп всего одна команда,
в два байта
DI HALT (19:05:06 10/03/2010)
экономия! Правда по тактам также вышло. Джамп он в два машинных цикла. Хотя, если подумать, то можно зажать еще четыре байта.
Скоро дойдет до того, что вместо массива данных вздумается размещать его хэш и размер, а потом за много процессорных тактов перебирать все возможные значения массива указанного размера, загоняя их в функцию, пока не совпадет с хэшем. Как совпало — считать данные верными и использовать:) экономия по объему постоянной памяти потрясающая…
Дадада Число Пи содержит все данные мира, надо только знать нужное смещение
Шутки — шутками, а этот алгоритм сжатия называется арифметическим кодированием, мой лучший друг его ещё на Спекртуме в ассемблере воплотил)
Кстати, на самом деле НЕХ расшифровается «Неведемая Е..ная Х..ня» :)
«история одного байта» :)
Почему-то напомнило эту игрушку: http://www.gameroo.com/games/light-bot?r=nl