30 lines
702 B
ArmAsm
30 lines
702 B
ArmAsm
.global _start
|
|
_start:
|
|
mov.l start,r8
|
|
mov.l end,r9
|
|
|
|
/* returns stride in r1 */
|
|
mov.l input_stride_ptr,r0
|
|
jsr @r0
|
|
mov r8,r1 /* r1 arg: copy of r8 */
|
|
|
|
mov r1,r10 /* r10: stride */
|
|
|
|
/* return r1: number */
|
|
/* return r0: digits */
|
|
next_number:
|
|
mov.l parse_base10_ptr,r0
|
|
jsr @r0
|
|
mov r8,r11 /* r11: temporary for r8 original value */
|
|
cmp/eq #0,r0
|
|
bt next_number
|
|
nop
|
|
|
|
.balign 4
|
|
parse_base10_ptr: .long _parse_base10
|
|
input_stride_ptr: .long _input_stride
|
|
|
|
.balign 4
|
|
start: .long _binary_2023_day3_sample_txt_start
|
|
end: .long _binary_2023_day3_sample_txt_end
|