Заменить в строке нечетные символы на "*" - 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
Объяснение кода листинга программы
- Задается смещение для регистра bx с помощью инструкции xor bx,bx.
- Выполняется тест на нечетность значения в регистре bx с помощью инструкции test bx,1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д