So, I wanted to start playing about with assembler again. Mainly so I could use it for data encryption over the internet. Here’s a simple sample of printing 64 bit numbers as hex.
section .text
global main
extern printf
; use printf to print 64 bit hex string
_test: push rbp
mov rsi,0x1234567890abcdef
mov rdi,pf_msg
xor rax,rax
call printf
pop rbp
ret
main: call _test
mov edx,len
mov ecx,msg
mov eax,4
int 128
;mov eax,1
;int 128
xor rax,rax
ret
section .data
msg db "Hello world!",10
len equ $ - msg
; some testing stuff
pf_msg db "Register = %016llx", 10, 0
I set up a simple script to build the executable.
#!/bin/bash nasm -f elf64 test.asm gcc -o test test.o
And the output is just…
Register = 1234567890abcdef Hello world!
