[emu8086] Являются ли буквы в строке упорядоченными по алфавиту - Assembler

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

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

1) Ввести строку, состоящую только из букв, и определить, являются ли буквы в строке упорядоченными по алфавиту Ни как не могу решить?

Решение задачи: «[emu8086] Являются ли буквы в строке упорядоченными по алфавиту»

textual
Листинг программы
@stack  segment para stack
        db      1024 dup(?)
@stack  ends
 
@data   segment
        String  db      80, ?, 81 dup(?)
        Prompt  db      'Enter the string:', 0Dh, 0Ah, '$'
        MsgYes  db      'YES', '$'
        MsgNo   db      'NO', '$'
        CrLf    db      0Dh, 0Ah, '$'
@data   ends
 
@code   segment
        assume  cs:@code, ds:@data, ss:@stack
main    proc
        ;инициализация сегментного регистра данных
        mov     ax,     @data
        mov     ds,     ax
 
        ;ввод строки
        mov     ah,     09h
        lea     dx,     [Prompt]
        int     21h
        mov     ah,     0Ah
        lea     dx,     [String]
        int     21h
        ;перевод строки на экране
        mov     ah,     09h
        lea     dx,     [CrLf]
        int     21h
 
        ;проверка условия - буквы упорядочены по алфавиту
        mov     bx,     0       ;результат - пока NO
        mov     cx,     0
        mov     cl,     [String+1]
        jcxz    @@NoOrder
        lea     si,     [String+2]
        mov     ah,     [si]
        inc     si
        dec     cx
        jcxz    @@InOrder
        @@For:
                mov     al,     [si]
                cmp     al,     ah
                jb      @@NoOrder
                mov     ah,     al
                inc     si
        loop    @@For
@@InOrder:
        mov     bx,     1       ;результат - YES
@@NoOrder:
        mov     ax,     bx
 
        ;вывод результата
        cmp     ax,     0
        jz      @@No
@@Yes:
        mov     ah,     09h
        lea     dx,     [MsgYes]
        int     21h
        jmp     @@Exit
@@No:
        mov     ah,     09h
        lea     dx,     [MsgNo]
        int     21h
@@Exit:
        ;завершение программы
        mov     ax,     4C00h
        int 21h
main    endp
@code   ends
 
        end     main

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


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

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

5   голосов , оценка 4 из 5
Похожие ответы