Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
; r0 = input value
; r0r1 = output value
; exp_table = 256-entry exponent table
exp_x:
push zl ; Save Z (if necessary)
push zh ;
ldi zl,low(exp_table*2) ; Initialize table pointer
ldi zh,high(exp_table*2) ;
clr r1 ; Zero
lsl r0 ; r0r1 = r0*2 because each table entry = 2 bytes
rol r1 ;
add zl,r0 ; Add input value (index) to table pointer
addc zh,r1 ;
lpm r0,z+ ; Load output value from table
lpm r1,z+ ;
pop zh ; Restore Z (if saved)
pop zl ;
ret ; All done, return
exp_table: ; 256-entry EXP table
.dw -1400,-1385,-1362,....,1362,1380,1400