Ввести строку из 5 символов, заменить все цифры символом '#' (TASM) - Assembler
Формулировка задачи:
Задание:
Ввести строку из 5 символов, заменить все цифры символом '#' и вывести рез. на экран.
Вот мои попытки, но пока без успешно, много мыслей в голове, но к нужному результату не приводят.
Кто сможет подсказать, просто в переходах и ветвлениях еще не совсем разобрался.
CRLF MACRO mov ah,02h mov dl,10 int 21h mov dl,13 int 21h endM STAK segment stack db 512 dup (?) STAK ends DATA segment stroka db 6,0,7 dup ('$'), '$' stroka2 db 6 dup ('$'), '$' DATA ends CODE segment assume cs:CODE, ds:DATA, ss:STAK start: xor ax,ax mov ax,DATA mov ds,ax mov dx, offset stroka mov ah, 0ah int 21h CRLF mov SI, offset stroka+2 MOV CX,5 go: mov AX,[SI] cmp ax, 30h JB M1 cmp ax,39h JBE M2 M1: mov di, offset stroka2 mov [DI],ax M2: mov di, offset stroka2 mov [dI],ax mov [di],'#' inc si inc di loop go mov dx, offset stroka2 mov ah, 09h int 21h mov ah,4ch int 21h CODE ends end start
Решение задачи: «Ввести строку из 5 символов, заменить все цифры символом '#' (TASM)»
textual
Листинг программы
mov di, offset stroka2 mov SI, offset stroka+2 MOV CX,5 go: mov AL,byte ptr [SI] ;считываем байты ,а не слова cmp al, 30h ;впрочем сравнивать влюбом случае надо байты,если AH != 0 JB M1 cmp al,39h JA M1 ;переход по метке если это не цифры ;иначе заменить на '#' mov al,'#' M1: mov byte ptr [DI],al inc si inc di loop go
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д