AVRщики, переведите кусок асма на си.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Alkur 28 июля 2004 г. 11:36

Помогите разобраться - переведите на си или как-то иначе растолкуйте как это работает.

;------- skip -----------

.def value = r8
.def real_value = r11
.def tbl_index = r12
.def tbl_value = r13
.def temp = r16
.def byte = r18

;------- skip -----------

Interpolate:
mov tbl_index,real_value
lsr tbl_index
lsr tbl_index
lsr tbl_index
ldi temp,0x1F
add tbl_index,temp
ee_loop:
sbic EECR,EEWE
rjmp ee_loop

out EEAR,tbl_index
sbi EECR,EERE
in value,EEDR

ldi temp,7
and temp,real_value
brne Inter2
ret
Inter2:
inc tbl_index
out EEAR,tbl_index
sbi EECR,EERE
in tbl_value,EEDR

mov temp,tbl_value
sub temp,value
clr byte
sbrc real_value,0
add byte,temp
lsl temp
sbrc real_value,1
add byte,temp
lsl temp
sbrc real_value,2
add byte,temp

asr byte
asr byte
asr byte
add value,byte
ret

;------- skip -----------

.ESEG
.org 0x1F
Calibration:
.db 4
.db 8
.db 12
.db 16
.db 20
.db 24
.db 36
.db 75
.db 82
.db 99
.db 105
.db 134
.db 152
.db 176
.db 181
.db 190
.db 192
.db 192
.db 192
.db 175
.db 165
.db 155
.db 144
.db 133
.db 122
.db 111
.db 167

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru