Вывод на экран упорядоченной строки - сначала цифры потом буквы - Assembler
Формулировка задачи:
Здравствуйте ребята.
Искал пример работы со строкой. (выводить на екран нужно сначала буквы потом числа )
Никак не могу найти толкового примера.
Если вдруг будет под руками - закиньте сюда.
Буду очень благодарен.
Решение задачи: «Вывод на экран упорядоченной строки - сначала цифры потом буквы»
textual
Листинг программы
stk segment stack
db 256 dup (?)
stk ends
assume cs: code, ds:data
data segment
buffer db 254,0,254 dup ('$')
str1 db 'enter string:', 0Dh, 0Ah, '$'
str3 db 0Dh, 0Ah, '$'
str2 db 'result:', 0Dh, 0Ah, '$'
data ends
code segment
start:
mov ax, data
mov ds, ax
mov ah,09h
mov dx, offset str1
int 21h
mov ah,0ah
mov dx, offset buffer
int 21h
mov ah,09h
mov dx, offset str3
int 21h
mov cl,Buffer[1]
xor ch,ch
mov si,offset Buffer+2
call Sort
mov ah,09h
mov dx, offset str2
int 21h
mov ah,09h
lea dx, buffer+2
int 21h
quit:
mov ax, 4c00h
int 21h
Sort proc
push bx
push cx
push si
push di
cmp cx, 1
jbe @@End
mov di, si
add di, cx
dec di
mov bx, di
dec cx
@@ForI:
mov di, bx
@@ForJ:
cmp byte ptr [di], '9'+1
rcl al, 1
cmp byte ptr [di-1],'9'+1
rcl al, 1
and al, 03h
cmp al, 01h
jne @@Skip
xchg al, [di-1]
xchg [di], al
xchg al, [di-1]
@@Skip:
sub di, 1
cmp di, si
ja @@ForJ
add si, 1
loop @@ForI
@@End:
pop di
pop si
pop cx
pop bx
ret
Sort endp
code ends
end start