Advertisement
Guest User

Untitled

a guest
May 31st, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. format mz
  2. jmp start
  3.  
  4. string          db  13,10,' Enter string..........: $'
  5. ;keyword         db  13,10,' Enter keyword........: $'
  6. keywordPrint    db  13,10,' Keyword...............: $'
  7. buff            db  80,0,80 dup(0)   ; буфер для строки
  8. keywordBuff     db 80,0,80 dup(0)
  9.  
  10.  
  11. start:  mov   dx,string      ;
  12.         call  message        ;
  13.         mov   ah,0Ah         ; fn(0A) ввод в буфер
  14.         mov   dx,buff        ;
  15.         int   21h            ;
  16.  
  17.  
  18.        ; mov   dx,keyword     ;
  19.        ; call  message        ;
  20.        ; mov   ah,0Ah         ; fn(0A) ввод в буфер
  21.        ; mov   dx,keyword
  22.        ; int   21h
  23.  
  24.  
  25.         mov   dx,keywordPrint;
  26.         call  message        ;
  27.         xor   cx,cx          ;
  28.         mov   ax,'s'   ; символ для поиска
  29.         call  findSymbol     ; зовём функцию..
  30.  
  31.        ;mov   dx,keywordPrint        ;
  32.        ;call  message        ;
  33.        ;mov   bl,'s'   ;
  34.        ;call  findSymbol     ;
  35.  
  36. exit:   xor   ax,ax          ;
  37.         int   16h            ;
  38.         int   20h            ; выход!
  39. ;eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
  40. message:                     ;
  41.         mov   ah,9           ; выводим на экран сообщение
  42.         int   21h            ;
  43.         ret                  ;
  44. ;------------------------------------------------------
  45. findSymbol:                  ; символ для поиска в AL
  46.         xor   ah,ah          ; AH будет счётчиком
  47.         mov   cl,[buff+1]    ;
  48.         mov   di,buff+2      ;
  49. cycle:  repne scasb          ; поиск..
  50.         or    cx,cx          ; всю строку проверили?
  51.         jz    print          ;
  52.         inc   ah             ; счётчик +1
  53.         jmp   cycle          ;
  54. print:  shr   ax,8           ; отправляем результат в AL
  55.         aam                  ; переводим в распакованное BCD
  56.         or    ax,3030h       ;        ..и в символы
  57.         xchg  ah,al          ;
  58.         int   29h            ;
  59.         shr   ax,8           ;
  60.         int   29h            ; выводим число на экран
  61.         ret                  ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement