57 lines
686 B
NASM
57 lines
686 B
NASM
|
format ELF
|
||
|
|
||
|
include "proc32.inc"
|
||
|
|
||
|
section '.text' executable
|
||
|
|
||
|
public _ksys_debug_out
|
||
|
public debug_out_str
|
||
|
|
||
|
align 4
|
||
|
proc _ksys_debug_out stdcall, c:dword
|
||
|
|
||
|
pushad
|
||
|
|
||
|
xor ecx,ecx
|
||
|
mov cl,byte[c]
|
||
|
mov ebx,1
|
||
|
mov eax,63
|
||
|
int 0x40
|
||
|
|
||
|
popad
|
||
|
|
||
|
ret
|
||
|
|
||
|
endp
|
||
|
|
||
|
align 4
|
||
|
proc debug_out_str stdcall, s:dword
|
||
|
|
||
|
pushad
|
||
|
|
||
|
mov eax,[s] ;eax=pointer to string
|
||
|
next_simbol_print:
|
||
|
|
||
|
xor ebx,ebx
|
||
|
mov bl,[eax]
|
||
|
test bl,bl
|
||
|
jz exit_print_str
|
||
|
|
||
|
cmp bl,10
|
||
|
jne no_new_line
|
||
|
mov ecx,13
|
||
|
stdcall _ksys_debug_out, ecx
|
||
|
no_new_line:
|
||
|
|
||
|
stdcall _ksys_debug_out, ebx
|
||
|
add eax,1
|
||
|
|
||
|
jmp next_simbol_print
|
||
|
|
||
|
exit_print_str:
|
||
|
|
||
|
popad
|
||
|
|
||
|
ret
|
||
|
endp
|