Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .686
- .model flat
- extern _ExitProcess@4: PROC
- extern __write: PROC
- extern __read: PROC
- public _main
- .data
- mnoznik dd 10
- dzielnik dd 10
- wynikArray db 10 dup (?)
- obszar db 11 dup (?)
- kom1 db 'Nastapilo przepelnienie',0
- kom2 db 'Nie dziel przez zero',0
- .code
- wprowadzLiczbe PROC
- push ebp
- push esi
- push edi
- push ecx
- push ebx
- push edx
- push dword PTR 11 ;liczba wprowadzanych znakow
- push dword PTR offset obszar
- push dword PTR 0
- call __read
- add esp, 12
- mov ebx, offset obszar
- mov ecx, 0
- mov eax, 0
- konwersja:
- mov cl, [ebx]
- inc ebx
- cmp cl, 10
- jz jestEnter
- cmp cl, '0'
- jb znak
- sub cl, 30h
- movzx ecx, cl
- mul mnoznik
- add eax, ecx
- jmp konwersja
- znak:
- movzx ecx, cl
- mov eax, ecx
- jestEnter:
- pop edx
- pop ebx
- pop ecx
- pop edi
- pop esi
- pop ebp
- ret
- wprowadzLiczbe ENDP
- obliczenie PROC
- push edi
- push esi
- push ebp
- mov esi, 9
- cmp ecx, '+'
- jz dodawanie
- cmp ecx, '-'
- jz odejmowanie
- cmp ecx, '*'
- jz mnozenie
- cmp ecx, '/'
- jz dzielenie
- dodawanie:
- clc
- add eax, ebx
- jc komunikat1
- jmp wynik
- odejmowanie:
- clc
- sub ebx, eax
- jc komunikat1
- mov eax, ebx
- jmp wynik
- mnozenie:
- clc
- mul ebx
- jc komunikat1
- jmp wynik
- dzielenie:
- mov edi, eax
- mov eax, ebx
- mov ebx, edi
- mov edx, 0
- cmp ebx,0
- jz komunikat2
- div ebx
- jmp wynik
- wynik:
- mov edx, 0
- div dzielnik
- add dl, 30h
- mov wynikArray[esi], dl
- dec esi
- cmp eax, 0
- jne wynik
- jmp skocz
- ;wypelnienie:
- ; mov wynikArray[esi], 20h
- ; dec esi
- ; cmp esi, 0
- ; jz skocz
- ; jmp wypelnienie
- komunikat1:
- push dword PTR 24
- push dword PTR offset kom1
- push dword PTR 1
- call __write
- add esp, 12
- jmp koniec
- komunikat2:
- push dword PTR 21
- push dword PTR offset kom2
- push dword PTR 1
- call __write
- add esp, 12
- jmp koniec
- skocz:
- push dword PTR 10
- push dword PTR offset wynikArray
- push dword PTR 1
- call __write
- add esp, 12
- koniec:
- pop ebp
- pop esi
- pop edi
- ret
- obliczenie ENDP
- _main PROC
- call wprowadzLiczbe
- mov ebx, eax
- call wprowadzLiczbe
- mov ecx, eax
- call wprowadzLiczbe
- call obliczenie
- push 0
- call _ExitProcess@4
- _main ENDP
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement