Преобразовать последовательность, удалив каждый символ '*' - Assembler
Формулировка задачи:
Дана последовательность символов Sl,...,Sn. Преобразовать последовательность, удалив каждый символ '*'. Строку символов ввести с клавиатуры, результат результат вывести на экран.
Решение задачи: «Преобразовать последовательность, удалив каждый символ '*'»
textual
Листинг программы
.model small .stack 100h .data CrLf db 0Dh, 0Ah, '$' KeyBuf db 80, ?, 81 dup(?) Prompt db 'Enter a string:', 0Dh, 0Ah, '$' Result db 'Result string:', 0Dh, 0Ah, '$' .code main proc mov ax, @data mov ds, ax ;ввод строки mov ah, 09h lea dx, [Prompt] int 21h mov ah, 0Ah lea dx, [KeyBuf] int 21h mov ah, 09h lea dx, [CrLf] int 21h ;обработка строки lea si, [KeyBuf+2] mov di, si mov ax, ds mov es, ax mov cx, 0 mov cl, [KeyBuf+1] jcxz @@Skip @@For: lodsb cmp al, '*' je @@Next stosb @@Next: loop @@For @@Skip: ;запись в конец строки символа ограничителя mov al, '$' stosb ;вывод результата mov ah, 09h lea dx, [KeyBuf+2] int 21h ;завершение программы mov ax, 4C00h int 21h main endp end main