I tried to replicate this on my 64 bit machine, so
nasm -f elf64 tiny.s && ld -s tiny.o
; tiny.asm
BITS 64
GLOBAL _start
SECTION .text
_start:
mov eax, 1
mov ebx, 42
int 0x80
and this lands me at 4320 bytes!
Why is there such a stark difference?