Вывод букв, находящихся на нечётных позициях строки (индексация от 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

Объяснение кода листинга программы

  1. lodsw - это команда загрузки слова из памяти в регистр dx и ax. Здесь предполагается, что в памяти уже находится строка.
  2. xchg al,al - это команда обмена значениями между регистрами al и al. В данном случае, это просто перестановка битов в регистре al, которая не меняет его значения. Это может быть необходимо для работы с символами в следующем условии.

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы