Проверить, упорядочены ли буквы в строке по алфавиту - Assembler

Узнай цену своей работы

Формулировка задачи:

Здравствуйте Помогите пожалуйста разобраться с задачей Нужно проверить упорядочены ли буквы в строке по алфавиту Подскажите пожалуйста, как это можно реализовать

Решение задачи: «Проверить, упорядочены ли буквы в строке по алфавиту»

textual
Листинг программы
  1. ;== FASM code =======================
  2. org 100h
  3. jmp start
  4.  
  5. mes0    db   13,10,'String....:  $'
  6. mes1    db   13,10,'Alphabet..:  $'
  7. mes2    db   13,10,'Symbol....:  $'
  8. okey    db   'OK! $'
  9. error   db   ' <--error!$'
  10. string  db   'ABCDEFGJXBVFGHRYTLFKQWPNM'
  11. len     =    $ - string
  12.  
  13. start:
  14. ;----- Покажем строку -------------------------------------
  15.        mov   dx,mes0             ;
  16.        call  message             ;
  17.        mov   cx,len              ;
  18.        mov   si,string           ;
  19. prn:   lodsb                     ;
  20.        int   29h                 ;
  21.        loop  prn                 ;
  22.  
  23. ;----- Проверяем строку на алфавит ------------------------
  24.        mov   dx,mes1             ;
  25.        call  message             ;
  26.        mov   cx,len-1            ;
  27.        mov   si,string           ;
  28.        lodsb                     ; берём первый элемент
  29.        int   29h                 ; выводим его на экран
  30.        inc   al                  ; делаем из него сл. по-алфавиту
  31.        xchg  ah,al               ; сохраняем изменения в AH
  32. alph:  lodsb                     ; берём сл.элемент
  33.        cmp   ah,al               ; сравниваем его с AH
  34.        jz    next                ; прыг, если равно
  35.        push  ax                  ; иначе: алфавит нарушен. Запомним нарушителя
  36.        mov   dx,error            ;
  37.        call  message             ; ERROR
  38.        mov   dx,mes2             ;
  39.        call  message             ; Symbol
  40.        pop   ax                  ;
  41.        int   29h                 ; выводим нарушителя на экран
  42.        jmp   exit                ; на выход!
  43. next:  int   29h                 ; выводим символы, которые идут по-алфавиту
  44.        inc   ah                  ; сл.буква в алфавите
  45.        loop  alph                ; на повтор..
  46.  
  47.        mov   dx,okey             ; ОК, если правильный порядок
  48.        call  message             ;
  49.  
  50. exit:  xor   ax,ax               ; выход..
  51.        int   16h                 ;
  52.        int   20h                 ;
  53.  
  54. ;ннннннннннннннннн П Р О Ц Е Д У Р Ы нннннннннннннннннннннннннннннннннннн
  55. ;------------------------------------------------------------------------
  56. message:                      ;
  57.       mov   ah,9              ; вывод строки на экран
  58.       int   21h               ;
  59. ret

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы