Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. InputInt proc
  2.     push si
  3.     push cx
  4.  
  5.    
  6.    
  7.     mov cx,6
  8.     lea bx,buff+2
  9.     mov ah,1
  10. n1:
  11.     int 21h
  12.    
  13.     mov [bx],al
  14.     inc bx
  15.        
  16.     cmp al,13    
  17.     je  end_enter
  18.     loop  n1
  19. end_enter:                  
  20.    
  21. ; îáðàáàòûâàåì ñîäåðæèìîå áóôåðà
  22.     mov si,offset buff+2         ; áåðåì àääðåñ íà÷àëà ñòðîêè
  23.     cmp byte ptr [si],"-"        ; åñëè ïåðâûé ñèìâîë ìèíóñ
  24.     jnz ii1
  25.     mov di,1                     ; óñòàíàâëèâàåì ôëàã
  26.     inc si                       ; è ïðîïóñêàåì åãî
  27. ii1:
  28.     xor ax,ax
  29.     mov bx,10                    ; îñíîâàíèå ñc
  30. ii2:
  31.     mov cl,[si]                  ; áåðåì ñèìâîë èç áóôåðà
  32.     cmp cl,0dh                   ; ïðîâåðÿåì íå ïîñëåäíèé ëè îí
  33.     jz endin
  34.    
  35. ; åñëè ñèìâîë íå ïîñëåäíèé, òî ïðîâåðÿåì åãî íà ïðàâèëüíîñòü
  36.     cmp cl,'0'                   ; åñëè ââåäåí íåâåðíûé ñèìâîë <0
  37.     jb er
  38.     cmp cl,'9'                   ; åñëè ââåäåí íåâåðíûé ñèìâîë >9
  39.     ja er
  40.  
  41.     sub cl,'0'                   ; äåëàåì èç ñèìâîëà ÷èñëî
  42.     mul bx                       ; óìíîæàåì íà 10
  43.     add ax,cx                    ; ïðèáàâëÿåì ê îñòàëüíûì
  44.     inc si                       ; óêàçàòåëü íà ñëåäóþùèé ñèìâîë
  45.     jmp ii2                      ; ïîâòîðÿåì
  46.  
  47. er:   ; åñëè áûëà îøèáêà, òî âûâîäèì ñîîáùåíèå îá ýòîì è âûõîäèì
  48.     mov dx, offset error
  49.     mov ah,09
  50.     int 21h
  51.     int 20h
  52.  
  53. ; âñå ñèìâîëû èç áóôåðà îáðàáîòàíû ÷èñëî íàõîäèòñÿ â ax
  54. endin:
  55.     cmp di,1                     ; åñëè óñòàíîâëåí ôëàã, òî
  56.     jnz ii3
  57.     neg ax                       ; äåëàåì ÷èñëî îòðèöàòåëüíûì
  58. ii3:
  59.     pop cx
  60.     pop si
  61.  
  62.    
  63.     ret
  64.  
  65. error db "incorrect number$"
  66. buff  db 6 Dup(?)
  67. InputInt endp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement