%include "rw32-2015.inc" section .data ; vstupni ip adresa (big endian) ip_addr db 10,132,15,253 ; pocet bitu adresy site net_len db 13 ; retezce pro vypisy r_ipv4 db "IPv4 adresa: ",0 r_mask db "Maska site: ",0 r_net db "Adresa site: ",0 r_broad db "Broadcast: ",0 r_dot db ".",0 section .text main: ; cast 1: nactete IP adresu z [ip_addr] do eax a prevedte ji na little endian ; zde doplnte vas kod ; vypis vysledku (z eax!) mov esi,r_ipv4 call WriteString call WriteIPv4 mov ebx,eax mov al,'/' call WriteChar mov al,[net_len] call WriteUInt8 mov eax,ebx call WriteNewLine ; cast 2: vytvorte masku site do registru ebx ; zde doplnte vas kod ; vypis vysledku (z ebx!) mov esi,r_mask call WriteString xchg eax,ebx call WriteIPv4 xchg eax,ebx call WriteNewLine ; cast 3: spoctete adresu site pomoci masky do eax ; zde doplnte vas kod ; poznamka: IPv4 jiz nemusite uchovavat ; vypis vysledku (z eax!) mov esi,r_net call WriteString call WriteIPv4 call WriteNewLine ; cast 4: spoctete broadcast adresu (posledni platnou adresu v rozsahu) do eax ; zde doplnte vas kod ; poznamka: adresu site jiz nemusite uchovavat ; vypis vysledku (z eax!) mov esi,r_broad call WriteString call WriteIPv4 call WriteNewLine ; ukonceni xor eax,eax ret ; funkce pro vypis IPv4 adresy po oktetech ; vstup: eax ; funkce nemeni stav GP registru WriteIPv4: mov esi,r_dot rol eax,8 call WriteUInt8 call WriteString rol eax,8 call WriteUInt8 call WriteString rol eax,8 call WriteUInt8 call WriteString rol eax,8 call WriteUInt8 ret