Advertisement
Guest User

Untitled

a guest
Mar 5th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. model tiny
  2. STACK 256
  3. DATASEG
  4.   mes1 db '1. Suma',0dh,0ah,'$'
  5.   mes2 db '2. Riznyzja',0dh,0ah,'$'
  6.   mes3 db '3. Dobutok',0dh,0ah,'$'
  7.   mes4 db '4. Chastka',0dh,0ah,'$'
  8.   info db 'Vyberit variant',0dh,0ah,'$'
  9.   lol db 'Input Error!',0dh,0ah,'$'
  10.   info2 db 'Vvedit pershe chuslo',0dh,0ah,'$'
  11.   info3 db 'Vvedit druge chuslo',0dh,0ah,'$'
  12.   errormes db 'incorrect number',0dh,0ah,'$'
  13.   buff db 6,7 Dup(?)
  14. CODESEG
  15.  start:
  16.          mov ax,@data
  17.          mov ds,ax
  18.  
  19.          mov dx,offset mes1
  20.          mov ah,09h
  21.          int 21h
  22.          mov dx,offset mes2
  23.          mov ah,09h
  24.          int 21h
  25.          mov dx,offset mes3
  26.          mov ah,09h
  27.          int 21h
  28.          mov dx,offset mes4
  29.          mov ah,09h
  30.          int 21h
  31.          mov dx,offset info
  32.          mov ah,09h
  33.          int 21h
  34.  
  35.     CALL InputInt
  36.  
  37.        
  38.          cmp ax,1
  39.          je suma
  40.          cmp ax,2
  41.          je rizn
  42.          cmp ax,3
  43.          je dobutok
  44.          cmp ax,4
  45.          je chastka
  46.          jmp error
  47.  
  48.    suma:
  49.          lea dx,info2
  50.          mov ah,09h
  51.          int 21h
  52.  
  53.    CALL InputInt
  54.          
  55.          mov bx,ax
  56.          mov dx,offset info3
  57.          mov ah,09h
  58.          int 21h
  59.    CALL InputInt
  60.          add ax,bx
  61.          jmp kinez
  62.  
  63.    rizn: mov dx,offset info2
  64.          mov ah,09h
  65.          int 21h
  66.  
  67.    CALL InputInt
  68.    
  69.          mov bx,ax
  70.          mov dx,offset info3
  71.          mov ah,09h
  72.          int 21h
  73.    CALL InputInt
  74.          sub ax,bx
  75.          jmp kinez
  76.  
  77. dobutok: mov dx,offset info2
  78.          mov ah,09h
  79.          int 21h
  80.  
  81.    CALL InputInt
  82.    
  83.          mov bx,ax
  84.          mov dx,offset info3
  85.          mov ah,09h
  86.          int 21h
  87.    CALL InputInt
  88.          mul bx
  89.          jmp kinez
  90.  
  91. chastka: mov dx,offset info2
  92.          mov ah,09h
  93.          int 21h
  94.  
  95.    CALL InputInt
  96.    
  97.          mov bx,ax
  98.          mov dx,offset info3
  99.          mov ah,09h
  100.          int 21h
  101.    CALL InputInt
  102.          xor dx,dx
  103.          div bx
  104.          jmp kinez
  105.  
  106.   error: mov dx,offset lol
  107.          mov ah,09h
  108.          int 21h
  109.    CALL InputInt
  110.          xor ah,ah
  111.          int 16h
  112.   kinez:
  113.        CALL OutputInt
  114.          xor ah,ah
  115.          int 16h
  116.          mov ah,04Ch
  117.          mov al,1h
  118.          int 21h
  119. InputInt proc
  120.          push bx
  121.          mov ah,0ah
  122.          xor di,di
  123.          mov dx,offset buff
  124.          int 21h
  125.          mov ah,02h
  126.          int 21h
  127.          
  128.          mov si,offset buff+2
  129.          cmp byte ptr [si],"-"
  130.          jnz ii1
  131.          mov di,1
  132.          inc si
  133.      
  134. ii1:     xor ax,ax
  135.          mov bx,10
  136. ii2:     mov cl,[si]
  137.          cmp cl,0dh
  138.          jz endin
  139.          cmp cl,'0'
  140.          jl er
  141.          cmp cl,'9'
  142.          ja er
  143.          sub cl,'0'
  144.          mul bx
  145.          add ax,cx
  146.          inc si
  147.          jmp ii2
  148. er:      
  149.          mov dx,offset errormes
  150.          mov ah,09h
  151.          int 21h
  152.          int 20h
  153. endin:
  154.          cmp di,1
  155.          jnz ii3
  156.          neg ax
  157. ii3:
  158.          pop bx
  159.          ret
  160. InputInt endp
  161. OutputInt proc
  162.          test ax,ax
  163.          jns oi1
  164.          mov cx,ax
  165.          mov ah,02h
  166.          mov dl,'-'
  167.          int 21h
  168.          mov ax,cx
  169.          neg ax
  170. oi1:
  171.          xor cx,cx
  172.          mov bx,10
  173. oi2:
  174.          xor dx,dx
  175.          div bx
  176.          push dx
  177.          inc cx
  178.          test ax,ax
  179.          jnz oi2
  180.          mov ah,02h
  181. oi3:
  182.          pop dx
  183.          cmp dl,9
  184.          jbe oi4
  185.          add dl,7
  186. oi4:
  187.          add dl,'0'
  188.          int 21h
  189.          loop oi3
  190. ret
  191. OutputInt endp
  192. END start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement