Замена нулей и единиц на буквы А и Б - Assembler

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

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

исходник таков, нужно преобразовать программу в такую, чтоб пользователь вводил нули и единицы, а они заменялись на А и Б
stacksg segment para stack 'stack'
db 64 dup(?)
stacksg ends
datasg segment para 'DATA'
string db 10,12 dup(' ')
datasg ends
codesg segment para 'CODE'
assume cs:codesg, ds:datasg, ss:stacksg
entry proc far
push ds
sub ax,ax
push ax
mov ax, datasg
mov ds, ax
 
mov ah, 10
lea dx, string
int 21h
 
mov si,2
sub cx,cx
mov cl, string+1
m1:mov al,string[si]
cmp al,'A' ; < 'A'?
jb next1
cmp AL, 'z';>'z' ?
ja next1
cmp al,'a' ; < 'a'?
jb mark1
xor al,00100000B
mov str[si],AL
jmp short next1
mark1: or al, 00100000B
mov str[si],al
next1: inc si
loop m1
 
print1:
mov ah, 09h
lea dx,string
sub bx,bx
mov bl,string+1
mov string[bx+2], '$'
mov string, 0Ah
mov string+1, 0Dh
int 21h
ret
entry endp
codesg ends
end entry
сообразил сам, может кому пригодится )
stacksg segment para stack 'stack'
db 64 dup(?)
stacksg ends
datasg segment para 'DATA'
string db 10,12 dup(' ')
datasg ends
codesg segment para 'CODE'
assume cs:codesg, ds:datasg, ss:stacksg
entry proc far
push ds
sub ax,ax
push ax
mov ax, datasg
mov ds, ax
 
mov ah, 10
lea dx, string
int 21h
 
mov si,2
sub cx,cx
mov cl, string+1
m1:mov al,string[si]
cmp al,'1'
je next1
cmp al,'0'
je next2
next1:
mov string[si], 'К'
jmp afg
next2:
mov string[si], 'и'
afg:
inc si
loop m1
 
print1:
mov ah, 09h
lea dx,string
sub bx,bx
mov bl,string+1
mov string[bx+2], '$'
mov string, 0Ah
mov string+1, 0Dh
int 21h
ret
entry endp
codesg ends
end entry

Решение задачи: «Замена нулей и единиц на буквы А и Б»

textual
Листинг программы
jmp next2

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

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