Замена нулей и единиц на буквы А и Б - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д