From a1010618a24474e4c8253d2fc1df300474bac609 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Fri, 2 Dec 2016 04:58:57 -0500 Subject: Add 32-bit hex formatting --- Makefile | 2 +- day01.asm | 8 +++++++- lib.asm | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 lib.asm 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 -- cgit 1.4.1