Переставить цифры заданного числа так, чтобы получить максимальное число - Assembler

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

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

Здравствуйте. Помогите пожалуйста, мучаюсь несколько часов.. Вот задача: Дано натуральное число n переставить его цифры так чтобы образовалось Максимальное число, записанное теми же цифрами. если конкретнее нужно именно вот этот кусок кода:
Листинг программы
  1. for j:=1 to i do //i-кол-во элементов
  2. for k:=j to i do
  3. if a[j]<a[k] then begin l:=a[j]; a[j]:=a[k]; a[k]:=l; end;
но на assembler..

Решение задачи: «Переставить цифры заданного числа так, чтобы получить максимальное число»

textual
Листинг программы
  1. model   tiny,pascal
  2. .code
  3. .186
  4. org 100h
  5. begin:  call    @@01
  6.     call    sortStr,offset dbStr,szStr
  7. @@01:   mov ah,9
  8.     lea dx,dbStr
  9.     int 21h
  10.     ret
  11. dbStr   db  '918273645463728190'
  12. szStr   equ $-dbStr
  13.     db  10,13,'$'
  14. sortStr proc    a:word,b:word
  15. uses    cx,si,di
  16.     mov cx,b
  17.     dec cx
  18.     mov di,a
  19. @@02:   mov si,di
  20.     push    cx
  21.     lodsb
  22. @@03:   cmp al,[si]
  23.     ja  @@04
  24.     xchg    al,[si]
  25. @@04:   inc si
  26.     loop    @@03
  27.     pop cx
  28.     stosb
  29.     loop    @@02
  30.     ret
  31. sortStr endp
  32.     end begin

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


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

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

10   голосов , оценка 3.9 из 5

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

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

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