advent-of-sh/2023/day3/solution.s
2024-04-09 12:20:52 +08:00

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