Untitled
unknown
plain_text
4 years ago
4.4 kB
6
Indexable
%include 'mio.inc' %include 'io.inc' global main section .text OlvasDecimalis: push ebx push ecx push edi .olvas: mov eax,str_a call mio_writestr xor eax,eax xor ebx,ebx mov ecx,10 .kovetkezo: call mio_readchar call mio_writechar cmp al,'-' je .negativ cmp al,13 je .end cmp al,'0' jl .hiba cmp al, '9' jg .hiba sub eax,'0' imul ebx,ecx add ebx,eax jmp .kovetkezo .negativ: mov edi,1 jmp .kovetkezo .hiba: mov eax,hibauzenet call mio_writestr call mio_writeln jmp .olvas .end: mov eax,ebx cmp edi,1 je .neg jmp .folytat .folytat: pop edi pop ecx pop ebx clc ret .neg: neg eax jmp .folytat KiirDecimalis: push ebx push ecx push edx push esi push eax mov eax,str_dec call mio_writestr pop eax push eax mov ebx,10 xor ecx,ecx cmp eax,0 jl .minusz jmp .kovetkezoSzj .minusz: xchg eax,esi mov eax,'-' call mio_writechar xchg eax,esi neg eax .kovetkezoSzj: cdq idiv ebx push edx inc ecx cmp eax,0 jne .kovetkezoSzj cmp eax,0 je .kovetkezoKi .kovetkezoKi: pop eax add eax,'0' call mio_writechar sub ecx,1 cmp ecx,0 jne .kovetkezoKi pop eax pop esi pop edx pop ecx pop ebx ret KiirHexadecimalis: push ebx push ecx push edx push eax mov eax,str_hex call mio_writestr mov eax,str_pre call mio_writestr pop eax push eax xor ecx,ecx .kovetkezo: mov ebx,eax and ebx,0xf push ebx inc ecx shr eax,4 cmp eax,0 jne .kovetkezo push ecx mov edx,8 sub edx,ecx cmp edx,0 jne .zerosok pop ecx jmp .kiirKov .zerosok: mov eax,'0' call mio_writechar dec edx cmp edx,0 jne .zerosok pop ecx .kiirKov: pop eax dec ecx cmp eax,9 jle .atalakitszam cmp eax,15 jle .atalakitbetu .atalakitszam: add eax,48 jmp .kiir .atalakitbetu: add eax,55 jmp .kiir .kiir: call mio_writechar cmp ecx,0 jne .kiirKov .end: pop eax pop edx pop ecx pop ebx ret OlvasHexadecimalis: push ebx push ecx push edx push eax .olvashex: mov eax,str_b call mio_writestr xor eax,eax xor ebx,ebx .kovetkezobe: call mio_readchar call mio_writechar cmp al,13 je .end cmp al,48 jl .hiba2 cmp al,102 jg .hiba2 cmp al,57 jle .folytatas cmp al,65 jl .hiba2 cmp al,70 jle .folytatas cmp al,97 jl .hiba2 cmp al,102 jle .kicsibolNagy jmp .kovetkezobe .kicsibolNagy: sub eax,32 jmp .folytatas .hiba2: mov eax,hibauzenet call mio_writestr call mio_writeln jmp .olvashex .folytatas: cmp eax,'9' jle .alakitSzam cmp eax,'F' jle .alakitBetu .alakitSzam: sub eax,'0' jmp .felepitSzam .alakitBetu: sub eax,'55' jmp .felepitSzam .felepitSzam: rol ebx,4 add bl,al jmp .kovetkezobe .end: ror ebx,4 mov eax,ebx pop eax pop edx pop ecx pop ebx ret main: call OlvasHexadecimalis call mio_writeln call io_writehex ret section .data str_a db "A= ", 0 hibauzenet db " Helytelen bemenet, irjon uj szamot", 0 str_dec db "A szam decimalis alakja: ", 0 str_hex db "A szam hexadecimalis alakja ", 0 str_pre db "0x",0 str_b db "B= ", 0
Editor is loading...