2016-12-14 3 views
1

Ich versuche, eine Schleife innerhalb eines IAR Arm Assembly-Makros zu erstellen, kann aber nicht herausfinden, wie lokale Labels erstellt werden. Wenn das Makro mehr als einmal aufgerufen wird, erhalte ich doppelte Labelfehler der Assembler. Mein Code ist wie folgt:Erstellen einer Schleife innerhalb eines Assembly-Makros - 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 Seite " 60 "im Druck (74/137 zeigt PDF-Viewer), sieht so aus, als ob Sie die Anweisung' LOCAL' verwenden sollten, um ein lokales Symbol zu erstellen. Auf der Seite "65" im Ausdruck gibt es ein Beispiel für 'LOCAL loop' vor 'loop:' label. – Ped7g

+0

Danke. Ich habe dieses Dokument bereits geöffnet, habe es aber völlig vermisst. Die Lösung war viel einfacher als ich gesucht hatte. –

+1

Viele Assembler unterstützen auch [numerische lokale Labels] (http://stackoverflow.com/q/32341112/3156750) für genau diese Art von Sache - ich weiß jedoch nicht über IAR. – Notlikethat

Antwort

1

Gelöst unten:

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 
Verwandte Themen