bitbornsize lab

LINUX X86-64 / REVIEWED LITERAL BYTES

Four fewer bytes.
A visible tradeoff.

Both programs ask Linux to exit with status 42. The smaller payload uses more instructions and stack traffic. Its byte savings are measurable; no runtime speedup is claimed.

Instruction bytes and executable container sizes
MeasureBeforeAfter
Payload bytes128
ELF bytes132128
Instructions35
Stack trafficNoneTwo pushes, two pops

33⅓% less executable instruction data; about 3% less ELF container data. The 120-byte ELF headers are unchanged.

SELECT AN OFFSET

Inspect the changed bits.

Rows align by byte offset. These are positional differences, not a claim that instructions correspond one to one.

Loading canonical source bytes…

Select a byte to see its XOR mask.

Why eight bytes work.

Before: direct immediates

MOV EAX,60 · MOV EDI,42 · SYSCALL

The two five-byte moves zero-extend their 32-bit values to RAX/RDI. SYSCALL contributes two bytes.

After: small immediates on the stack

PUSH 60 · POP RAX · PUSH 42 · POP RDI · SYSCALL

Each two-byte PUSH sign-extends an eight-bit immediate to a 64-bit word. A one-byte POP selects the register and restores RSP. These positive constants retain their intended values.

These mnemonics explain the handwritten bytes. Linux x86-64 CI runs the two curated ELF files and checks status 42; this page does not execute them in the browser.