Заменить в строке нечетные символы на "*" - Assembler

Узнай цену своей работы

Формулировка задачи:

Ввести строку символьных данных, задавая буфер равный 30 байт. Заменить в строке нечетные символы на "*" Выдать полученную строку символов в 7 строку экрана, начиная с 7 позиции. Можете помочь пожалуйста, совсем не доходит как здесь вывести именно чтобы нечетные символы он заменял...
nma label   byte 
max db  30 
real    db  ? 
buf db  30 dup('$') 
buf2    db  ? 
chi2    db  2Ah 
 
DOD ends 
STO Segment Stack 
DB 64 DUP(?) 
STO ends 
CSC Segment 
PR PROC FAR 
ASSUME DS:DOD,CS:CSC,SS:STO 
PUSH DS 
SUB AX,AX 
PUSH AX 
mov ax,DOD 
mov ds,ax 
 
mov ax,0600h    ;чистка экрана 
mov bh,07 
mov cx,0000 
mov dx,184fh 
int 10h 
    
mov ah,02   ;установка курсора 
mov bh,00 
mov dx,0100h    
int 10h 
 
mov bx,0000 
 
lea dx,nma  ;ввод 
mov ah,0ah 
int 21h 
mov dx,0000h    ;Чистим DX 
 
LEA bx,buf 
MOV cx,40 
a2: 
MOV ah,[bx]  
jnz a3 
mov ah,chi2 
MOV [bx],ah 
a3: 
INC BX 
LOOP a2 
jmp a4  
 
mov ah,03   ;установка курсора 
mov bh,00 
mov dx,0109h    
int 10h 
 
a4: lea dx,buf  ;вывод 
mov ah,09 
int 21h 
jmp end1 

end1: ret 
pr endp 
csc ends 
end pr

Решение задачи: «Заменить в строке нечетные символы на "*"»

textual
Листинг программы
xor   bx,bx
test bx,1

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

  1. Задается смещение для регистра bx с помощью инструкции xor bx,bx.
  2. Выполняется тест на нечетность значения в регистре bx с помощью инструкции test bx,1.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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