Вывод букв, находящихся на нечётных позициях строки (индексация от 0). - Assembler
Формулировка задачи:
Написать программу, которая выведет из введенного строке на экран только парные за порядком буквы
Вот код для парных... не могу придумать что добавить что б непарные были...пробывал написать в строке 22 str[bx-1] но выводит вначале два лишних символа, а потом непарные
Помогите, пожалуйста...
model small .data ents db "Enter string: $" str db 255,255,255 dup("$") res db 10,13,"Result: $" .code main proc mov ax,@data mov ds,ax mov dx,offset ents mov ah,09h int 21h mov dx,offset str mov ah,0a int 21h mov dx,offset res mov ah,09h int 21h mov ah,02h cycl: mov dl,str[bx] add bx,02 int 21h cmp str[bx],'$' jne cycl mov ah,01h int 21h ret main endp end main code ends
Решение задачи: «Вывод букв, находящихся на нечётных позициях строки (индексация от 0).»
textual
Листинг программы
cycl: lodsw xchg al,al
Объяснение кода листинга программы
lodsw
- это команда загрузки слова из памяти в регистр dx и ax. Здесь предполагается, что в памяти уже находится строка.xchg al,al
- это команда обмена значениями между регистрами al и al. В данном случае, это просто перестановка битов в регистре al, которая не меняет его значения. Это может быть необходимо для работы с символами в следующем условии.