Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- InputInt proc
- push si
- push cx
- mov cx,6
- lea bx,buff+2
- mov ah,1
- n1:
- int 21h
- mov [bx],al
- inc bx
- cmp al,13
- je end_enter
- loop n1
- end_enter:
- ; îáðàáàòûâàåì ñîäåðæèìîå áóôåðà
- mov si,offset buff+2 ; áåðåì àääðåñ íà÷àëà ñòðîêè
- cmp byte ptr [si],"-" ; åñëè ïåðâûé ñèìâîë ìèíóñ
- jnz ii1
- mov di,1 ; óñòàíàâëèâàåì ôëàã
- inc si ; è ïðîïóñêàåì åãî
- ii1:
- xor ax,ax
- mov bx,10 ; îñíîâàíèå ñc
- ii2:
- mov cl,[si] ; áåðåì ñèìâîë èç áóôåðà
- cmp cl,0dh ; ïðîâåðÿåì íå ïîñëåäíèé ëè îí
- jz endin
- ; åñëè ñèìâîë íå ïîñëåäíèé, òî ïðîâåðÿåì åãî íà ïðàâèëüíîñòü
- cmp cl,'0' ; åñëè ââåäåí íåâåðíûé ñèìâîë <0
- jb er
- cmp cl,'9' ; åñëè ââåäåí íåâåðíûé ñèìâîë >9
- ja er
- sub cl,'0' ; äåëàåì èç ñèìâîëà ÷èñëî
- mul bx ; óìíîæàåì íà 10
- add ax,cx ; ïðèáàâëÿåì ê îñòàëüíûì
- inc si ; óêàçàòåëü íà ñëåäóþùèé ñèìâîë
- jmp ii2 ; ïîâòîðÿåì
- er: ; åñëè áûëà îøèáêà, òî âûâîäèì ñîîáùåíèå îá ýòîì è âûõîäèì
- mov dx, offset error
- mov ah,09
- int 21h
- int 20h
- ; âñå ñèìâîëû èç áóôåðà îáðàáîòàíû ÷èñëî íàõîäèòñÿ â ax
- endin:
- cmp di,1 ; åñëè óñòàíîâëåí ôëàã, òî
- jnz ii3
- neg ax ; äåëàåì ÷èñëî îòðèöàòåëüíûì
- ii3:
- pop cx
- pop si
- ret
- error db "incorrect number$"
- buff db 6 Dup(?)
- InputInt endp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement