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