2016-12-14 3 views
1

Я пытаюсь создать цикл внутри макроса сборки IAR Arm, но не могу понять, как создавать локальные метки, если макрос вызывается более одного раза, я получаю дубликат ошибки метки из ассемблер. Мой код выглядит следующим образом:Создание цикла в макросе сборки - IAR ARM

myMacro MACRO 
    MOV R1, #0 
label: enter code here 
    do some stuff here 
    ADD R1, R1, #1   
    CMP R1, #10 
    BLE label 
    ENDM 
+1

http://vision.gel.ulaval.ca/~jflalonde/cours/1001/h15/docs/IAR_ref.pdf страницы " 60 "в печати (74/137 показывает просмотрщик pdf), похоже, что вы должны использовать директиву' LOCAL' для создания локального символа. На странице «65» в печати есть пример «LOCAL loop» перед меткой «loop:». – Ped7g

+0

Спасибо. У меня уже открыт этот документ, но он полностью упустил его. Решение было намного проще, чем я искал. –

+1

Многие ассемблеры также поддерживают [числовые локальные метки] (http://stackoverflow.com/q/32341112/3156750) для такого рода вещей - я не знаю об IAR. – Notlikethat

ответ

1

решаемые ниже:

myMacro MACRO 
     LOCAL label 
     MOV R1, #0 
    label: enter code here 
     do some stuff here 
     ADD R1, R1, #1   
     CMP R1, #10 
     BLE label 
     ENDM 
Смежные вопросы