%include "rw32-2018.inc" section .data format db "This %s will cover %u%% o%c the features including %d.",EOL,0 string db "test",0 fail db "Malformed %",0 section .text CMAIN: push dword -42 push dword 'f' push dword 100 push dword string push dword format call FmtPrint add esp, 20 call WriteInt32 call WriteNewLine push fail call FmtPrint add esp,4 call WriteNewLine call WriteInt32 call WriteNewLine ; nastaveni navratove hodnoty a ukonceni xor eax, eax ret ; Ukol: Napiste telo funkce FmtPrint ktera prijima formatovaci retezec a predem neurceny pocet dalsich parametru. ; Funkce bude podporovat nasledujici formatovaci sekvence: ; %% vypise znak '%', %c pro znak, %s pro retezec, %u pro cislo bez znamenka a %d pro cislo se znamenkem ; Volaci konvence: ; - parametry pres zasobnik *zleva doprava* (posledni je vlozen na zasobnik formatovaci retezec) ; - kazdy parametr je siroky 4B (32b) ; - parametry uklizi volajici ; - funkce zalohuje vsechny registry ktere pouziva ; - navratova hodnota je vracena pres eax; -1 pro neplatny format, 0 uspesny vypis ; Pseudokod k funkci je k dispozici v PDF dokumentu ke cviceni. FmtPrint: ret