'$' ; исходная строка
b db 20 dup(?) ; строка b с запасом на максимальную длину
.code
main:
mov ax, @data ; загрузка адреса сегмента данных в регистр
mov ds, ax ; установка ds равным адресу сегмента данных
mov si, 0 ; si - индекс в строке a
mov di, 0 ; di - индекс в строке b
next_char:
mov al, [a + si] ; загрузка символа из строки a в регистр al
test al, al ; проверка на конец строки
jz end_loop ; если конец строки, выходим из цикла
mov [b + di], al ; копирование символа из строки a в строку b
inc si ; увеличение индекса в строке a
inc si ; пропускаем символ на четной позиции
inc di ; увеличение индекса в строке b
jmp next_char ; переход к следующему символу
end_loop:
mov [b + di], '$' ; добавляем завершающий нулевой символ к строке b
mov dx, offset b ; загрузка адреса строки b в dx
mov ah, 9 ; функция вывода строки
int 21h ; вызов прерывания для вывода строки
mov ax, 4C00h ; функция завершения программы
int 21h ; вызов прерывания
end main
test al, al ; проверка на конец строки где у тя в исходной строке ноль?
А выглядит так будто код писал гпт
да так и есть
Обсуждают сегодня