Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- model tiny
- STACK 256
- DATASEG
- mes1 db '1. Suma',0dh,0ah,'$'
- mes2 db '2. Riznyzja',0dh,0ah,'$'
- mes3 db '3. Dobutok',0dh,0ah,'$'
- mes4 db '4. Chastka',0dh,0ah,'$'
- info db 'Vyberit variant',0dh,0ah,'$'
- lol db 'Input Error!',0dh,0ah,'$'
- info2 db 'Vvedit pershe chuslo',0dh,0ah,'$'
- info3 db 'Vvedit druge chuslo',0dh,0ah,'$'
- errormes db 'incorrect number',0dh,0ah,'$'
- buff db 6,7 Dup(?)
- CODESEG
- start:
- mov ax,@data
- mov ds,ax
- mov dx,offset mes1
- mov ah,09h
- int 21h
- mov dx,offset mes2
- mov ah,09h
- int 21h
- mov dx,offset mes3
- mov ah,09h
- int 21h
- mov dx,offset mes4
- mov ah,09h
- int 21h
- mov dx,offset info
- mov ah,09h
- int 21h
- CALL InputInt
- cmp ax,1
- je suma
- cmp ax,2
- je rizn
- cmp ax,3
- je dobutok
- cmp ax,4
- je chastka
- jmp error
- suma:
- lea dx,info2
- mov ah,09h
- int 21h
- CALL InputInt
- mov bx,ax
- mov dx,offset info3
- mov ah,09h
- int 21h
- CALL InputInt
- add ax,bx
- jmp kinez
- rizn: mov dx,offset info2
- mov ah,09h
- int 21h
- CALL InputInt
- mov bx,ax
- mov dx,offset info3
- mov ah,09h
- int 21h
- CALL InputInt
- sub ax,bx
- jmp kinez
- dobutok: mov dx,offset info2
- mov ah,09h
- int 21h
- CALL InputInt
- mov bx,ax
- mov dx,offset info3
- mov ah,09h
- int 21h
- CALL InputInt
- mul bx
- jmp kinez
- chastka: mov dx,offset info2
- mov ah,09h
- int 21h
- CALL InputInt
- mov bx,ax
- mov dx,offset info3
- mov ah,09h
- int 21h
- CALL InputInt
- xor dx,dx
- div bx
- jmp kinez
- error: mov dx,offset lol
- mov ah,09h
- int 21h
- CALL InputInt
- xor ah,ah
- int 16h
- kinez:
- CALL OutputInt
- xor ah,ah
- int 16h
- mov ah,04Ch
- mov al,1h
- int 21h
- InputInt proc
- push bx
- mov ah,0ah
- xor di,di
- mov dx,offset buff
- int 21h
- mov ah,02h
- int 21h
- mov si,offset buff+2
- cmp byte ptr [si],"-"
- jnz ii1
- mov di,1
- inc si
- ii1: xor ax,ax
- mov bx,10
- ii2: mov cl,[si]
- cmp cl,0dh
- jz endin
- cmp cl,'0'
- jl er
- cmp cl,'9'
- ja er
- sub cl,'0'
- mul bx
- add ax,cx
- inc si
- jmp ii2
- er:
- mov dx,offset errormes
- mov ah,09h
- int 21h
- int 20h
- endin:
- cmp di,1
- jnz ii3
- neg ax
- ii3:
- pop bx
- ret
- InputInt endp
- OutputInt proc
- test ax,ax
- jns oi1
- mov cx,ax
- mov ah,02h
- mov dl,'-'
- int 21h
- mov ax,cx
- neg ax
- oi1:
- xor cx,cx
- mov bx,10
- oi2:
- xor dx,dx
- div bx
- push dx
- inc cx
- test ax,ax
- jnz oi2
- mov ah,02h
- oi3:
- pop dx
- cmp dl,9
- jbe oi4
- add dl,7
- oi4:
- add dl,'0'
- int 21h
- loop oi3
- ret
- OutputInt endp
- END start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement