adventofcode2023/06/main.s

61 lines
833 B
ArmAsm
Raw Normal View History

2023-12-06 00:10:38 -06:00
%define BUFF_LIM 32768
global _start
[bits 64]
[section .text]
;%include "utils.s"
_start:
xor rcx, rcx ; race
; check race
check_race:
push rcx
mov rsi, 53837288
mov rdi, 0x12F02ACD6888C
;mov rsi, 71530
;mov rdi, 940200
;mov rbx, [(dists+4)+rcx*4]
xor rbp, rbp ; poss
mov rcx, 1 ; test ms
check_strat:
mov rax, rsi
sub rax, rcx ; remaining time
mul rcx
;cmp rdx, rbx ; high part
;jb .cont ; high part is less
cmp rax, rdi ; low part
jbe .cont
inc rbp
.cont:
inc rcx
cmp rcx, rsi
jl check_strat
mov rax, [final_value]
mul rbp
mov [final_value], rax
are_we_done:
pop rcx
inc rcx
cmp rcx, [race_count]
jl check_race
game_over:
mov rbx, [final_value]
jmp $
[section .data]
final_value: dq 1
race_count: dq 1
timelist: dd 53837288
dists: dq 333163512891532 ; 12F02ACD6888C
;timelist: dd 71530
;dists: dq 940200
[section .bss]