Проверить, упорядочены ли буквы в строке по алфавиту - Assembler
Формулировка задачи:
Здравствуйте
Помогите пожалуйста разобраться с задачей
Нужно проверить упорядочены ли буквы в строке по алфавиту
Подскажите пожалуйста, как это можно реализовать
Решение задачи: «Проверить, упорядочены ли буквы в строке по алфавиту»
textual
Листинг программы
- ;== FASM code =======================
- org 100h
- jmp start
- mes0 db 13,10,'String....: $'
- mes1 db 13,10,'Alphabet..: $'
- mes2 db 13,10,'Symbol....: $'
- okey db 'OK! $'
- error db ' <--error!$'
- string db 'ABCDEFGJXBVFGHRYTLFKQWPNM'
- len = $ - string
- start:
- ;----- Покажем строку -------------------------------------
- mov dx,mes0 ;
- call message ;
- mov cx,len ;
- mov si,string ;
- prn: lodsb ;
- int 29h ;
- loop prn ;
- ;----- Проверяем строку на алфавит ------------------------
- mov dx,mes1 ;
- call message ;
- mov cx,len-1 ;
- mov si,string ;
- lodsb ; берём первый элемент
- int 29h ; выводим его на экран
- inc al ; делаем из него сл. по-алфавиту
- xchg ah,al ; сохраняем изменения в AH
- alph: lodsb ; берём сл.элемент
- cmp ah,al ; сравниваем его с AH
- jz next ; прыг, если равно
- push ax ; иначе: алфавит нарушен. Запомним нарушителя
- mov dx,error ;
- call message ; ERROR
- mov dx,mes2 ;
- call message ; Symbol
- pop ax ;
- int 29h ; выводим нарушителя на экран
- jmp exit ; на выход!
- next: int 29h ; выводим символы, которые идут по-алфавиту
- inc ah ; сл.буква в алфавите
- loop alph ; на повтор..
- mov dx,okey ; ОК, если правильный порядок
- call message ;
- exit: xor ax,ax ; выход..
- int 16h ;
- int 20h ;
- ;ннннннннннннннннн П Р О Ц Е Д У Р Ы нннннннннннннннннннннннннннннннннннн
- ;------------------------------------------------------------------------
- message: ;
- mov ah,9 ; вывод строки на экран
- int 21h ;
- ret
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д