реклама на сайте
подробности

 
 
> Calling conventions, Проблемы при вызове ассемблерной процедуры из С
Zlumd
сообщение Apr 21 2010, 07:40
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057



Не подскажет ли уважаемый All что-нибудь по следующему вопросу:

Пытаюсь вызвать из своей С-шной программы ассемблерную процедуру DES_CBC_Encrypt из атмеловского апнота AVR1317. Вижу в дебаггере, что после вызова процедуры адреса всех локальных переменных уменьшаются на 3 байта (при модели памяти Small). При модели памяти Large или Huge адреса всех локальных переменных уменьшаются на 8 байт.

Вот что компилируется при модели памяти Small при оптимизации None:
Код
    966           DES_CBC_Encrypt(Buf+1,Buf+1,pKey,pChainBlock,true,2);
   \   000000BA   E002               LDI     R16, 2
   \   000000BC   E010               LDI     R17, 0
   \   000000BE   931A               ST      -Y, R17
   \   000000C0   930A               ST      -Y, R16
   \   000000C2   E001               LDI     R16, 1
   \   000000C4   930A               ST      -Y, R16
   \   000000C6   01BE               MOVW    R23:R22, R29:R28
   \   000000C8   5E64               SUBI    R22, 228
   \   000000CA   4F7F               SBCI    R23, 255
   \   000000CC   01A2               MOVW    R21:R20, R5:R4
   \   000000CE   019E               MOVW    R19:R18, R29:R28
   \   000000D0   5F2C               SUBI    R18, 252
   \   000000D2   4F3F               SBCI    R19, 255
   \   000000D4   018E               MOVW    R17:R16, R29:R28
   \   000000D6   5F0C               SUBI    R16, 252
   \   000000D8   4F1F               SBCI    R17, 255
   \   000000DA   ........           CALL    DES_CBC_Encrypt

Похоже, что три команды ST -Y, Rxx и смещают указатель стека. Это глюк IARa или я просто не умею им пользоваться? Подскажите, что не так.
Использую IAR AVR v5.30.
Процессор ATXmega128A1.

Сообщение отредактировал Zlumd - Apr 21 2010, 07:47
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 12:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016