Ввод строки со словами и построчный вывод слов - Assembler
Формулировка задачи:
11. Ввести с клавиатуры строку, состоящую из нескольких слов. Вывести каждое слово на экран в отдельной строке, т.е. выдать слова в столбик- это надо сделать
Решение задачи: «Ввод строки со словами и построчный вывод слов»
textual
Листинг программы
.model small .stack 100h .data kbBuf db 80, ?, 80 dup(0) ;буфер клавиатуры для ввода строки CrLf db 0Dh, 0Ah, '$' ;символы перевода строки Delimiter db ' ' ;разделитель слов в строке .code main proc mov ax, @data mov ds, ax ;ввод строки в буфер клавиатуры mov ah, 0Ah lea dx, kbBuf int 21h ;перевод строки mov ah, 09h lea dx, CrLf int 21h ;инициализация для построчной печати слов mov cx, 0 ;cx - длина строки mov cl, kbBuf+1 jcxz @@Exit ;если строка пустая - завершить программу lea si, kbBuf+2 ;si - адрес первого символа строки mov ah, 02h ;ah - функция вывода символа (ah=02h int 21h) @@For: lodsb ;чтение очередного символа в al, увеличение si на 1 cmp al, Delimiter ;очередной символ - разделитель слов? je @@NewLine ;да - перейти к строкам, выполняющим перевод строки mov dl, al ;нет - вывести очередной символ на экран int 21h loop @@For ; jmp @@Break @@NewLine: mov dl, 0Dh ;команды перевода строки int 21h mov dl, 0Ah int 21h loop @@For @@Break: mov ah, 09h ;после последнего слова перевести строку lea dx, CrLf int 21h @@Exit: mov ax, 4C00h ;завершение программы int 21h main endp end main
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д