%include "CONSTANTS.h" extern printf global main section .data fmtString1: db `the number is %d\n`, 0 fmtString2: db "the number is %#x", 0x0A, 0 decimal: dq 100 bigDecimal: dq 100_000 ; the _ is optional, but nice smallDecimal: dw 10 section .bss section .text main: mov rdi, fmtString1 mov rsi, [decimal] call PrintNumber mov rdi, fmtString1 mov rsi, [smallDecimal] call PrintNumber mov rdi, fmtString2 mov rsi, 0x11 call PrintNumber mov rdi, fmtString2 mov rsi, 33h call PrintNumber mov rdi, fmtString2 mov rsi, 44x call PrintNumber mov rdi, fmtString1 mov rsi, [bigDecimal] call PrintNumber mov rdi, fmtString2 mov rsi, 0111_1000_1001b call PrintNumber mov rdi, fmtString2 mov rsi, 0b0001_0010_0011 call PrintNumber mov rdi, fmtString2 mov rsi, 0b1_00_10_001_1100 call PrintNumber ; Exit mov eax, SYS_EXIT mov edx, SUCCESS syscall PrintNumber: push rbp mov rbp, rsp sub rsp, 8 mov rax, 0 call printf ;add rsp, 8 mov rsp, rbp pop rbp ret