Удалить пробелы из строки - Assembler
Формулировка задачи:
Программа выводит введенные в строку цифры в столбик в двоичной СС, на месте пробела ставит нули, коих хотелось чтобы не было(просто пустая строка). Может подкинет кто идею? Спасибо.
Листинг программы
- include 'emu8086.inc'
- data segment
- in_str db 80,?,82 dup (?)
- out_str db 80 dup (?)
- ends
- stack segment
- dw 128 dup(0)
- ends
- code segment
- start:
- mov ax,@data
- mov ds,ax
- mov es,ax
- cld
- lea dx, in_str
- mov ah, 0ah
- int 21h
- xor cx, cx
- ;-----------BBoD--------------------
- mov cl, byte ptr [in_str+1]
- lea si, in_str+2
- lea di, out_str
- ;--------BblBoD B CTOJlbuk----------
- mov ah,02h
- gotoxy 0,1
- ckl:
- mov dl,in_str[si]
- and dl, 0fh
- push dx
- inc si
- mov dl,13
- int 21h
- mov dl,10
- int 21h
- ;---------------Tyna nepeBoD--------------
- pop dx
- push cx
- mov bl,dl
- mov cx,8
- ob1:
- shl bl,1
- jc ob2
- mov dl,'0'
- jmp ob3
- ob2:
- mov dl,'1'
- ob3:
- mov ah,2
- int 21h
- loop ob1
- pop cx
- loop ckl
- mov ax, 4c00h
- int 21h
- ends
- end start
Решение задачи: «Удалить пробелы из строки»
textual
Листинг программы
- cmp al,'0'
- jb error
- cmp al,'9'
- ja error
- cmp al, ' '
- jz error
Объяснение кода листинга программы
- Создается переменная
al
для хранения текущего символа. - Выполняется сравнение значения переменной
al
с символом '0'. - Если значение
al
меньше '0', происходит переход к меткеerror
. - Выполняется сравнение значения переменной
al
с символом '9'. - Если значение
al
больше '9', происходит переход к меткеerror
. - Выполняется сравнение значения переменной
al
с символом пробела ' '. - Если значение
al
равно пробелу, происходит переход к меткеerror
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д