Удаление пробелов в строке - Assembler
Формулировка задачи:
Нарыл множество способов удаления пробелов в строке и столкнулся с проблемой, программка не хочет ничего выводить, может я где-то накосячил. Буду благодарен,если подскажите Вот собственно мой код (если его так можно назвать).
prg segment para public 'code' assume cs:prg,ss:prg,es:prg,ds:prg org 100h start: jmp go go: msg db 'Строка без пробелов',0 lea si,msg mov di,si lp: lodsb cmp al,0 jz lp stosb cmp al,' ' jnz lp mov ax,4c00h int 21h prg ends end start
Решение задачи: «Удаление пробелов в строке»
textual
Листинг программы
.MODEL Small .STACK 100h .DATA msg db 'String whithout spaces',0 CrLf db 0Dh, 0Ah, '$' .CODE Start proc mov ax, @data mov ds, ax mov es, ax lea si, [msg] call ShowString mov ah, 09h lea dx, [CrLf] int 21h lea si, msg mov di, si lp: lodsb cmp al, ' ' je mTestZero stosb mTestZero: or al, al jnz lp lea si, [msg] call ShowString mov ah, 09h lea dx, [CrLf] int 21h ;завершение программы mov ax,4c00h int 21h Start endp ShowString proc push ax push dx push si pushf mov ah, 02h cld jmp ssTestZero ssRepeat: int 21h ssTestZero: lodsb mov dl, al or dl, dl jnz ssRepeat popf pop si pop dx pop ax ret ShowString endp END Start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д