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

194 lines
1.7 KiB
NASM

format ELF64 executable 3
segment executable readable
entry main
read_character:
nop
mov eax, 0
nop
mov edi, r12d
nop
mov esi, r13d
nop
mov edx, 1
nop
syscall
ret
write_character:
nop
mov eax, 1
nop
mov edi, r12d
nop
mov esi, r13d
nop
mov edx, 1
nop
syscall
ret
write_string:
nop
mov eax, 1
nop
mov edi, r12d
nop
mov esi, r13d
nop
mov edx, r14d
nop
syscall
ret
write_space:
nop
mov eax, 1
nop
mov edi, 1
nop
mov esi, space
nop
mov edx, 1
nop
syscall
ret
write_line_feed:
nop
mov eax, 1
nop
mov edi, 1
nop
mov esi, line_feed
nop
mov edx, 1
nop
syscall
ret
main:
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
call write_string
nop
mov eax, 60
mov edi, 1
syscall
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 dword[filaa], eax
main_loop:
nop
mov r12d, [filaa]
nop
mov r13, bytaa
nop
call read_character
nop
nop
mov r10d, eax
nop
mov r15b, [bytaa]
nop
cmp r15b, 144
nop
jne main_loop_skip
nop
call write_line_feed
nop
main_loop_skip:
nop
nop
mov r12d, 1
nop
mov r13d, digits
nop
sar r15d, 4
nop
add r13d, r15d
nop
call write_character
nop
nop
mov r12d, 1
nop
mov r13d, digits
nop
mov r15b, [bytaa]
nop
and r15d, 15
nop
add r13d, r15d
nop
call write_character
nop
nop
call write_space
nop
cmp r10d, 0
nop
jne main_loop
nop
call write_line_feed
nop
mov eax, 3
nop
mov edi, [filaa]
nop
syscall
nop
mov eax, 60
mov edi, 0
syscall
nop
nop
nop
segment readable writable
space db ' '
line_feed db '\n'
failure db "> nopfilaa", 10
digits db "0123456789abcdef"
filaa dd 0
bytaa db 0