Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Кто знает ассемблер для AVR- что означает следующий код:

Отправлено Flasher 04 ноября 2008 г. 23:13


Сижу ковряю в IDA Pro hex под мегу- осталось пару функций осмыслить и писать свой вариант. Но вот беда- голова уже не варит и не могу врубиться зачем нужен следующий кусок кода и для чего его применили :

st -Y, r8
st -Y, r9
st -Y, r10
st -Y, r11
st -Y, r30
st -Y, r24
st -Y, r25
st -Y, r26
st -Y, r27 ; Сохранили регистры

ldd r24, Y+9 ; Из стека загружаем число 0x02
ldd r25, Y+0xA ; Из стека загружаем число 0x00
ldd r26, Y+0xB ; Из стека загружаем число 0x00
ldd r27, Y+0xC ; Из стека загружаем число 0x00

; Проверка на ноль
сlr r30 ; В R19:R16 находится 0x00000258
or r30, r16
or r30, r17
or r30, r18
or r30, r19
breq loc_DD9


clr r8 ; Обнуляем счетчик (???)
clr r9
clr r10
clr r11
; Проверка на ноль
сlr r30 ; В R27:R24 находится 0x00000002
or r30, r24
or r30, r25
or r30, r26
or r30, r27
breq loc_DD5
; Собственно с этого момента уже не понимаю что это делает
loc_DC6:
lsr r19
ror r18
ror r17
ror r16
brcc loc_DCF


add r8, r24
adc r9, r25
adc r10, r26
adc r11, r27

loc_DCF:
lsl r24
rol r25
rol r26
rol r27
; Проверка на ноль
сlr r30 ;
or r30, r16
or r30, r17
or r30, r18
or r30, r19
brne loc_DC6

loc_DD5:
mov r16, r8
mov r17, r9
mov r18, r10
mov r19, r11



loc_D98:

ld r27, Y+ ; Возвращаем на родину регистры
ld r26, Y+
ld r25, Y+
ld r24, Y+
ld r30, Y+
ld r11, Y+
ld r10, Y+
ld r9, Y+
ld r8, Y+
adiw YL, 4 ; Забиваем на то что передавали в стеке
ret

По программе могу сказать, что писали студенты, которые не очень понимают в программировании на непонятном компиляторе, предположительно CV. Интересно какой эквивалент кода сей непонятной мне конструкции на языке более высокого уровня.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 234:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru