Удалить пробелы из строки - 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

Объяснение кода листинга программы

  1. Создается переменная al для хранения текущего символа.
  2. Выполняется сравнение значения переменной al с символом '0'.
  3. Если значение al меньше '0', происходит переход к метке error.
  4. Выполняется сравнение значения переменной al с символом '9'.
  5. Если значение al больше '9', происходит переход к метке error.
  6. Выполняется сравнение значения переменной al с символом пробела ' '.
  7. Если значение al равно пробелу, происходит переход к метке error.

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

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