Arm Assembly Macro Calling

0

My assignment is to create a macro to count the number of ones in a mem address. I already did that. However whenever I call my Macro, it only calls the first case. Cases 2 and 3 cannot be called. I'm not sure how to proceed.

;Your First Macro.
MACRO
$Lab08Code Count1s_Lab08 $a, $b, $c
$Lab08Code
MOV $b, #0
$Lab08Code.loop
CMP $c, #0
BEQ $Lab08Code.stop
CLZ $a, $c
ADD $a, #1
ADD $b, #1
LSL $c, $a
BNE $Lab08Code.loop
$Lab08Code.stop B $Lab08Code.stop
MEND
; Your Second macro.

AREA Lab_11_Kevin_Nguyen, CODE, READONLY
EXPORT __main
__main
LDR R1, =0xFFFFFFFF
LDR R2, =0x2345ABCD
Case_1_Lab_08 Count1s_Lab08 R4, R3, R1
;Case_1_Lab_09 Count1s_Lab09 R5, R2
LDR R1, =0x0
LDR R2, =0x0
Case_2_Lab_08 Count1s_Lab08 R6, R3, R1
;Case_2_Lab_09 Count1s_Lab09 R7, R2
LDR R1, =0xFFFFFFFF
 LDR R2, =0xFFFFFFFF
 Case_3_Lab_08 Count1s_Lab08 R8, R3, R1
;Case_3_Lab_09 Count1s_Lab09 R9, R2

stop B stop
END 
assembly
arm
keil
asked on Stack Overflow Oct 28, 2018 by Kevin Nguyen

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0