Другие языки программирования и технологии

написать программу на ассемблере: найти (в строке) и вывести слово, у которого код первого символа наибольший

.model small
.stack 100h
.data
Prompt db 'Введите строку: '
CRLF db 13,10,36
Result db 'Слово: $'
Buff db 80
Len db ?
String db 80 dup (?)

.code
N76158579:
    mov ax,@data
    mov ds,ax
    mov es,ax
    mov ah,9
    lea dx,Prompt
    int 21h
    inc ah
    lea dx,Buff
    int 21h
    dec ah
    lea dx,CRLF
    int 21h
    mov cl,Len
    xor ch,ch
    lea di,String
    mov ax,20h; код пробела
Begin:
    repe scasb
    je Print
    mov si,di
    dec si
    cmp ah,[si]
    jae NextWord
    mov ah,[si]
    mov bx,si
NextWord:
    repne scasb
    je Begin
Print:
    mov si,bx
    mov ah,9
    lea dx,Result
    int 21h
Cycle:
    lodsb
    cmp al,20h
    jbe Quit
    int 29h
    jmp Cycle
Quit:
    xor ah,ah
    int 16h
    mov ah,4Ch
    int 21h
    end N76158579

P.S. Слова в строке должны быть разделены пробелом (или пробелами) . Также пробелы могут быть в начале и конце строки.
Если в строке несколько слов с одинаково максимальными кодами первых символов, то выводится первое встреченное.
Программа делает неполный анализ строки, поэтому на пустую строку или строку, состоящую из одних пробелов, реагирует неадекватно.

Просто Арчи
Просто Арчи
51 590
Лучший ответ