eaxhla/test/nop.eax
2024-07-23 21:55:15 -04:00

49 lines
936 B
Plaintext

fast procedure getchar
begin
nop mov eax 0
nop mov edi 0
nop mov edx 1
nop syscall
end procedure
fast procedure putchar
begin
nop mov eax 1
nop mov edi 1
nop mov edx 1
nop syscall
end procedure
unix program main
s8 <> digits = "0123456789ABCDEF"
s8 byte = 0
s8 space = ' '
s8 line = '\n'
begin
main_loop:
nop mov esi byte
nop fastcall getchar
nop cmp eax 0
nop je main_skip
nop cmp [byte] 144 // Compare byte to "nop" instruction.
nop jne main_loop_skip // Skip if not "nop" instruction.
nop mov esi line
nop fastcall putchar
main_loop_skip:
nop mov esi digits
# nop sar [byte] 4
# nop add esi [byte]
nop fastcall putchar
nop mov esi digits
nop and [byte] 15
nop add esi [byte]
nop fastcall putchar
nop mov esi space
nop fastcall putchar
nop jmp main_loop // Loop back if not equal.
main_skip:
nop mov esi line
nop fastcall putchar
nop exit 0
end program