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