eaxhla/test/major_stress_test.eax
2024-07-23 20:17:44 -04:00

115 lines
1.7 KiB
Plaintext

fast procedure read_character
begin
nop mov eax 0
nop mov edi r12d
nop mov esi r13d
nop mov edx 1
nop syscall
end procedure
fast procedure write_character
begin
nop mov eax 1
nop mov edi r12d
nop mov esi r13d
nop mov edx 1
nop syscall
end procedure
fast procedure write_string
begin
nop mov eax 1
nop mov edi r12d
nop mov esi r13d
nop mov edx r14d
nop syscall
end procedure
fast procedure write_space
s8 space = ' '
begin
nop mov eax 1
nop mov edi 1
nop mov esi space
nop mov edx 1
nop syscall
end procedure
fast procedure write_line_feed
s8 line_feed = '\n'
begin
nop mov eax 1
nop mov edi 1
nop mov esi line_feed
nop mov edx 1
nop syscall
end procedure
unix program main
s8 <> failure = "> nop file\n\0"
s8 <> digits = "0123456789abcdef"
s32 file = 0
s8 byte = 0
begin
nop nop nop
nop pop r11
nop cmp r11 2
nop je skip
nop mov r12d 1
nop mov r13d failure
nop mov r14d 12
nop fastcall write_string
nop exit 1
nop skip:
nop pop r11
nop pop r11
nop mov eax 2
nop mov edi r11d
nop xor esi esi
nop xor edx edx
nop syscall
nop mov [file] eax
main_loop:
nop mov r12d [file]
nop mov r13d byte
nop fastcall read_character
nop
nop mov r10d eax
nop mov r15b [byte]
nop cmp r15b 144
nop jne main_loop_skip
nop fastcall write_line_feed
nop main_loop_skip:
nop
nop mov r12d 1
nop mov r13d digits
nop machine 0x04ffc141 end machine
nop add r13d r15d
nop fastcall write_character
nop
nop mov r12d 1
nop mov r13d digits
nop mov r15b [byte]
nop and r15d 15
nop add r13d r15d
nop fastcall write_character
nop
nop fastcall write_space
nop cmp r10d 0
nop jne main_loop
nop fastcall write_line_feed
nop mov eax 3
nop mov edi [file]
nop syscall
nop exit 0
nop nop nop
end program