summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2016-12-02 04:58:57 -0500
committerJune McEnroe <june@causal.agency>2016-12-02 04:58:57 -0500
commit5c3858a91442a331866049802fa57381e5cbb1ee (patch)
treee08b59b1e842f2bd948626c87624cee71c2d2e7f
parentRewrite day 1 solution (diff)
downloadaoc-5c3858a91442a331866049802fa57381e5cbb1ee.tar.gz
aoc-5c3858a91442a331866049802fa57381e5cbb1ee.zip
Add 32-bit hex formatting
-rw-r--r--Makefile2
-rw-r--r--day01.asm8
-rw-r--r--lib.asm19
3 files changed, 27 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index df4adfd..7f63807 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ all: $(BINS)
 %: %.o
 	ld -o $@ $<
 
-%.o: %.asm sys.asm
+%.o: %.asm sys.asm lib.asm
 	nasm -f elf64 -o $@ $<
 
 clean:
diff --git a/day01.asm b/day01.asm
index 8ad4c66..fd31fce 100644
--- a/day01.asm
+++ b/day01.asm
@@ -1,4 +1,5 @@
 %include "sys.asm"
+%include "lib.asm"
 
 %define rPosX r8
 %define rPosY r9
@@ -65,5 +66,10 @@ _start:
   xor rPosY, rax
   sub rPosY, rax
 
-  lea rax, [rPosX + rPosY]
+  lea rdi, [rPosX + rPosY]
+  call hex32
+  push rax
+  syscall SYS_WRITE, FD_STDOUT, rsp, 8
+
+  xor rax, rax
 syscall SYS_EXIT, rax
diff --git a/lib.asm b/lib.asm
new file mode 100644
index 0000000..10d0e1c
--- /dev/null
+++ b/lib.asm
@@ -0,0 +1,19 @@
+section .rodata
+hexDigits: db '0123456789ABCDEF'
+
+section .text
+hex32:
+  push rbx
+  mov rbx, hexDigits
+  xor rax, rax
+
+%rep 8
+  shl rax, 8
+  mov al, dil
+  and al, 0x0F
+  xlatb
+  shr rdi, 4
+%endrep
+
+  pop rbx
+ret
header'>2021-09-16Fix /* **/ comment matchingJune McEnroe 2021-09-15Remove typer, add downgrade to READMEJune McEnroe 2021-09-15Set bot mode on downgradeJune McEnroe 2021-09-15Enter capsicum in downgradeJune McEnroe 2021-09-15Factor out common parts of downgrade messagesJune McEnroe Also bump the message cap to 1024 because that is ostensibly useful for replying to older messages. 2021-09-14Add downgrade IRC botJune McEnroe 2021-09-14Sort by title if authors matchJune McEnroe There are probably better things to sort by but title definitely always exists. 2021-09-13Swap-remove tags as they're foundJune McEnroe This makes it even faster. From ~1s on a sqlite3.c amalgamation to ~0.85s. 2021-09-12Replace htagml regex with strncmpJune McEnroe Since ctags only ever produces regular expressions of the form /^re$/ or /^re/ with no other special characters, instead unescape the pattern and simply use strncmp. Running on a sqlite3.c amalgamation, the regex version takes ~37s while the strncmp version takes ~1s, producing identical output. Big win! 2021-09-11Also defer printing comment for lone close-parensJune McEnroe 2021-09-10Publish "git-comment"June McEnroe 2021-09-10Add git comment --pretty optionJune McEnroe 2021-09-08Defer printing comment if line is blank or closing braceJune McEnroe This fixes badly indented comments. 2021-09-08Up default min-repeat to 30 linesJune McEnroe 2021-09-08Handle dirty lines in git-commentJune McEnroe 2021-09-08Document and install git-commentJune McEnroe 2021-09-08Add repeat and all options to git-commentJune McEnroe 2021-09-08Add group threshold to git-commentJune McEnroe