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

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

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

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

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

textual
Листинг программы
model   tiny,pascal
.code
.186
org 100h
begin:  call    @@01
    call    sortStr,offset dbStr,szStr
@@01:   mov ah,9
    lea dx,dbStr
    int 21h
    ret
dbStr   db  '918273645463728190'
szStr   equ $-dbStr
    db  10,13,'$'
sortStr proc    a:word,b:word
uses    cx,si,di
    mov cx,b
    dec cx
    mov di,a
@@02:   mov si,di
    push    cx
    lodsb
@@03:   cmp al,[si]
    ja  @@04
    xchg    al,[si]
@@04:   inc si
    loop    @@03
    pop cx
    stosb
    loop    @@02
    ret
sortStr endp
    end begin

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

10   голосов , оценка 3.9 из 5
Похожие ответы