30 lines
353 B
ArmAsm
30 lines
353 B
ArmAsm
|
.equ SYS_EXIT,93
|
||
|
.data
|
||
|
int1: .word 0xa2
|
||
|
int2: .word 0xb
|
||
|
.text
|
||
|
.globl _start
|
||
|
_start:
|
||
|
|
||
|
adr x5,int1
|
||
|
ldr w1,[x5]
|
||
|
uxtw x1,w1 // int1 is in x1
|
||
|
|
||
|
adr x6,int2
|
||
|
ldr w2,[x6]
|
||
|
uxtw x2, w2// int2 is in x2
|
||
|
|
||
|
mov x0,#0 // result is in x0
|
||
|
|
||
|
loop:
|
||
|
cbz x2,exit
|
||
|
tbz x2,#0,next
|
||
|
add x0,x0,x2
|
||
|
next:
|
||
|
lsl x1,x1,#1
|
||
|
lsr x2,x2,#1
|
||
|
b loop
|
||
|
exit: mov x0,#0
|
||
|
mov w8,#SYS_EXIT
|
||
|
svc #0x0
|
||
|
.end
|