Проверить, упорядочены ли буквы в строке по алфавиту - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д