This commit is contained in:
Zack Buhman 2024-04-09 12:20:52 +08:00
parent 98746b4fb4
commit 8441a7cda3
7 changed files with 68 additions and 17 deletions

View File

@ -8,9 +8,9 @@ _input:
mov.l size,r9
/* returns stride in r1 */
mova _calculate_stride,r0
mov.l input_stride_ptr,r0
jsr @r0
mov r8,r1
mov r8,r1 /* r1 arg: copy of r8 */
mov r1,r10 /* r10: stride */
@ -135,19 +135,7 @@ end_of_slope:
.balign 4
div32_16_ptr: .long _div32_16
.balign 4
_calculate_stride:
/* r8: const input start */
/* r1: input start (initialized by caller) */
/* return r1 : stride */
loop:
mov.b @r1+,r0
cmp/eq #0xa,r0 /* ascii space */
bf loop
sub r8,r1 /* r1 - r8 r1 */
rts
nop
input_stride_ptr: .long _input_stride
.balign 4
start: .long _binary_2020_day3_input_txt_start

View File

@ -11,7 +11,8 @@
2020/day3/solution.o \
2020/day3/sample.txt.o \
2020/day3/input.txt.o \
common/div32_16.o
common/div32_16.o \
common/input_stride.o
2020/day3/solution.elf: $(2020_DAY3_OBJ)
$(DEFAULT_LINK)

10
2023/day3/sample.txt Normal file
View File

@ -0,0 +1,10 @@
467..114..
...*......
..35..633.
......#...
617*......
.....+.58.
..592.....
......755.
...$.*....
.664.598..

29
2023/day3/solution.s Normal file
View File

@ -0,0 +1,29 @@
.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

11
2023/deps.mk Normal file
View File

@ -0,0 +1,11 @@
2023_DAY3_OBJ = \
2023/day3/solution.o \
2023/day3/sample.txt.o \
common/parse_base10.o \
common/input_stride.o
2023/day3/solution.elf: $(2023_DAY3_OBJ)
$(DEFAULT_LINK)
ALL_ELF += \
2023/day3/solution.elf

View File

@ -79,5 +79,6 @@ MAKEFLAGS += --no-builtin-rules
include 2019/deps.mk
include 2020/deps.mk
include 2023/deps.mk
all: $(subst .elf,.bin,$(ALL_ELF))

11
common/input_stride.s Normal file
View File

@ -0,0 +1,11 @@
.global _input_stride
_input_stride:
/* r8: const input start */
/* r1: input start (initialized by caller) */
/* return r1 : stride */
loop:
mov.b @r1+,r0
cmp/eq #0xa,r0 /* ascii space */
bf loop
rts
sub r8,r1 /* r1 - r8 r1 */