Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ассемблер от IAR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
amator
Господа, проясните ситуацию. До сих пор писал только на ассемблере от Atmel, а тут начал осваивать Си от IAR, и использую пп. преобразования в BCD на ассемблере. Но при ассемблировании компилятор выдаёт кучу ошибок «Error[43]: Illegal effective address». Ассемблировать-то я смог, заменив символьные имена абсолютными, но вопрос остался. Как работать с символьными именами регистров??? Подпрограмму привожу ниже:

Код
NAME    bin16BCD5
#include <io4433.h>

#define    fbinL   r16            
#define    fbinH   r17            
#define    tBCD0   r17            
#define    tBCD1   r18            
#define    tBCD2   r19          
       PUBLIC bin16BCD5    
       RSEG CODE

bin16BCD5:
       ldi     tBCD2, -1
bin16BCD5_loop_1:
       inc     tBCD2
       subi    fbinL, low(10000)
       sbci    fbinH, high(10000)
       brsh    bin16BCD5_loop_1
       subi    fbinL, low(-10000)
       sbci    fbinH, high(-10000)
       ldi     tBCD1, -0x11
bin16BCD5_loop_2:
       subi    tBCD1, -0x10
       subi    fbinL, low(1000)
       sbci    fbinH, high(1000)
       brsh bin16BCD5_loop_2
       subi    fbinL, low(-1000)
       sbci    fbinH, high(-1000)
bin16BCD5_loop_3:
       inc     tBCD1
       subi    fbinL, low(100)
       sbci    fbinH, high(100)
       brsh bin16BCD5_loop_3
       subi    fbinL, -100
       ldi     tBCD0, -0x10
bin16BCD5_loop_4:
       subi    tBCD0, -0x10
       subi    fbinL, 10
       brsh bin16BCD5_loop_4
       subi    fbinL, -10
       add     tBCD0, fbinL

       mov     fbinL, tBCD0
       mov     tBCD0, tBCD1
       ret                  
LeoLabs
странно у меня все скомпилилось без ошибки. правда в конце написал END.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.