forked from KolibriOS/kolibrios
16f5992719
New functions for work with system calls KolibriOS are added. Functions for format output are added: printf (), fprintf (), sprintf (), snprintf (), vsnprintf (). For material numbers it is meanwhile supported only format output the (%f), and exponential output a (%e) is not realized yet. Functions for format output correctly work only in GCC because TinyC incorrectly works with the functions containing variable number of arguments. git-svn-id: svn://kolibrios.org@647 a494cfbc-eb01-0410-851d-a64ba20cac60
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
|