Advertisement
Guest User

Untitled

a guest
Jun 9th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         org 100h
  2.         use16
  3.  
  4. EntryPoint:
  5.         push    x
  6.  
  7.         call    Checking
  8.  
  9.         mov     AH, 02h
  10.         mov     Dl, AL
  11.         add     DL, '0'
  12.         int     21h
  13.  
  14.         mov     AH, 08h
  15.         int     21h
  16.  
  17.         ret
  18.  
  19. Checking:
  20.         push    BP
  21.         mov     BP, SP
  22.  
  23.         mov     BX, [BP + 4]
  24.  
  25.         mov     DI, -1
  26. StartZ:                             ; íà ïðîáåëû â íà÷.
  27.         inc     DI
  28.         cmp     byte[BX + DI], 0
  29.         je      IsntNum
  30.         cmp     byte[BX + DI], ' '
  31.         jne     StartNum
  32.         jmp     StartZ
  33.                                     ; ÷èñëî ëè
  34. StartNum:
  35.         cmp     byte[BX + DI], '1'
  36.         jb      IsntNum
  37.         cmp     byte[BX + DI], '9'
  38.         ja      IsntNum
  39.  
  40. NumLoop:                            ; ÷èñëî ëè äàëüøå?
  41.         inc     DI
  42.         cmp     byte[BX + DI], '0'
  43.         jb      IsSpaces
  44.         cmp     byte[BX + DI], '9'
  45.         ja      IsSpaces
  46.         jmp     NumLoop
  47.  
  48. IsSpaces:
  49.         cmp     byte[BX + DI], 0
  50.         je      IsNum
  51.         cmp     byte[BX + DI], ' '
  52.         jne     IsntNum
  53.         inc     DI
  54.         jmp     IsSpaces
  55.  
  56. ; êîíåö
  57. IsntNum:
  58.         mov     AX, 0
  59.         jmp     EndProc
  60.  
  61. IsNum:
  62.         mov     AX, 1
  63.  
  64. EndProc:
  65.         pop     BP
  66.         ret     2
  67.  
  68. x       db      '  3323213     ', 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement