Вывод на экран упорядоченной строки - сначала цифры потом буквы - Assembler

Узнай цену своей работы

Формулировка задачи:

Здравствуйте ребята. Искал пример работы со строкой. (выводить на екран нужно сначала буквы потом числа ) Никак не могу найти толкового примера. Если вдруг будет под руками - закиньте сюда. Буду очень благодарен.

Решение задачи: «Вывод на экран упорядоченной строки - сначала цифры потом буквы»

textual
Листинг программы
  1. stk segment stack
  2.   db 256 dup (?)
  3. stk ends
  4.  
  5. assume cs: code, ds:data
  6.  
  7. data segment
  8.     buffer db 254,0,254 dup ('$')
  9.     str1 db 'enter  string:', 0Dh, 0Ah, '$'
  10.     str3 db 0Dh, 0Ah, '$'
  11.     str2 db 'result:', 0Dh, 0Ah, '$'
  12. data ends
  13.  
  14. code segment
  15. start:
  16.     mov ax, data
  17.     mov ds, ax
  18.    
  19.     mov ah,09h
  20.     mov dx, offset str1
  21.     int 21h
  22.  
  23.     mov ah,0ah
  24.     mov dx, offset buffer  
  25.     int 21h
  26.  
  27.     mov ah,09h
  28.     mov dx, offset str3
  29.     int 21h
  30.  
  31.     mov cl,Buffer[1]
  32.     xor ch,ch
  33.     mov si,offset Buffer+2
  34.     call Sort
  35.  
  36.     mov ah,09h
  37.     mov dx, offset str2
  38.     int 21h
  39.  
  40.     mov ah,09h
  41.     lea dx, buffer+2
  42.     int 21h
  43.  
  44. quit:
  45.     mov ax, 4c00h
  46.     int 21h
  47.  
  48. Sort    proc
  49.         push    bx
  50.         push    cx
  51.         push    si
  52.         push    di
  53.  
  54.         cmp     cx,     1
  55.         jbe     @@End
  56.  
  57.         mov     di,     si    
  58.         add     di,     cx
  59.         dec     di
  60.         mov     bx,     di
  61.  
  62.         dec     cx
  63. @@ForI:                        
  64.         mov     di,     bx
  65. @@ForJ:                    
  66.         cmp     byte ptr [di],  '9'+1  
  67.         rcl     al,     1
  68.         cmp     byte ptr [di-1],'9'+1  
  69.         rcl     al,     1
  70.         and     al,     03h          
  71.  
  72.         cmp     al,     01h    
  73.         jne     @@Skip
  74.         xchg    al,     [di-1]  
  75.         xchg    [di],   al
  76.         xchg    al,     [di-1]
  77.  
  78. @@Skip:
  79.         sub     di,     1
  80.         cmp     di,     si
  81.         ja      @@ForJ
  82.  
  83.         add     si,     1
  84.         loop    @@ForI
  85. @@End:
  86.         pop     di
  87.         pop     si
  88.         pop     cx
  89.         pop     bx
  90.         ret
  91. Sort    endp
  92.  
  93.     code ends
  94.     end start

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

12   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы