Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
nEgwaL
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 10
1

сортировка массива

21.12.2010, 10:35. Просмотров 962. Ответов 2
Метки нет (Все метки)

У меня массив сортирует число от 0-9 . а мне нада наоборот с большего к меньшему.
тоесть от 9 до 0.
предложите версию как сделать.

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 MASM
 MODEL  small
 STACK  256
 .data
 mes1   db  0ah,0dh,'Isxodnii massiv  $',0ah,0dh
 ;HekoTopue coo6c4eHu9
 mes2   db  0ah,0dh,'Otsortirovanii massiv  $',0ah,0dh
 n  equ 9           ;koJIu4ecTBo eJIeMeHToB c4uTa9 c 0
 mas    dw  2,7,4,0,1,9,3,6,5,8     ;UcxoDHuu MaccuB
 tmp    dw  0           ;nepeMeHHue
 i  dw  0
 j  dw  0
 .code
 main:
    mov ax,@data
    mov ds,ax
    xor ax,ax
 ;ero BuBoD Ha ekpaH
    mov ah,09h
    lea dx,mes1
    int 21h         ;message mes1
    mov cx,10
    mov si,0
    show_primary:           ;BuBod 3Ha4eHu9 eJIemenToB
 ;исходного массива на экран
    mov dx,mas[si]
    add dl,30h
    mov ah,02h
    int 21h
    add si,2
    loop    show_primary
 
    mov i,0         ;инициализация i
 ;внутренний цикл по j
 internal:
    mov j,9         ;инициализация j
    jmp cycl_j          ;переход на тело цикла
 exchange:
    mov bx,i            ;bx=i
    shl bx,1
    mov ax,mas[bx]      ;ax=mas[i]
    mov bx,j            ;bx=j
    shl bx,1
    cmp ax,mas[bx]      ;mas[i] ? mas[j] — сравнение элементов
    jle lesser          ;если mas[i] меньше, то обмен не нужен и 
     ;переход на продвижение далее по массиву
 ;иначе tmp=mas[i], mas[i]=mas[j], mas[j]=tmp:
 ;tmp=mas[i]
    mov bx,i            ;bx=i
    shl bx,1            ;умножаем на 2, так как элементы — слова
    mov tmp,ax          ;tmp=mas[i]
 
 ;mas[i]=mas[j]
    mov bx,j            ;bx=j
    shl bx,1            ;умножаем на 2, так как элементы — слова
    mov ax,mas[bx]      ;ax=mas[j]
    mov bx,i            ;bx=i
    shl bx,1            ;умножаем на 2, так как элементы — слова
    mov mas[bx],ax      ;mas[i]=mas[j]
 
 ;mas[j]=tmp
    mov bx,j            ;bx=j
    shl bx,1            ;умножаем на 2, так как элементы — слова
    mov ax,tmp          ;ax=tmp
    mov mas[bx],ax      ;mas[j]=tmp
 lesser:                ;продвижение далее по массиву во внутреннем цикле
    dec j           ;j--
;тело цикла по j
 cycl_j:
    mov ax,j            ;ax=j
    cmp ax,i            ;сравнить j ? i
    jg  exchange            ;если ji, то переход на обмен
 ;иначе на внешний цикл по i
    inc i           ;i++
    cmp i,n         ;сравнить i ? n — прошли до конца массива
    jl  internal    ;если i
 ;вывод отсортированного массива
    mov ah,09h
    lea dx,mes2
    int 21h
 prepare:
    mov cx,10
    mov si,0
    show:               ;вывод значения элемента на экран
    mov dx,mas[si]
    add dl,30h
    mov ah,02h
    int 21h
    add si,2
    loop    show
 exit:
    mov ax,4c00h            ;стандартный выход
    int 21h
    end main                    ;конец программы
Добавлено через 52 минуты
ну помогите там наверное чтото в пузырьке изменить нада токо я непонимаю что гдето с 50 стр мб.

Добавлено через 35 минут
есть идеи?

Добавлено через 10 часов 24 минуты
люди помогите пожалуйста(
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2010, 10:35
Ответы с готовыми решениями:

Сортировка массива
Дан массив из 5 элементов отсортировать по возрастанию. Помогите кто что...

Сортировка массива
Начал изучать ассемблер. Вот нашел код, который сортирует массив. Не совсем...

Сортировка массива
Доброго времени суток, в общем нужна такая программа, которая будет любым...

Сортировка массива
Написать прогу, которая отсортирует массив по возрастанию. Выведет не экран...

сортировка массива
Доброго времени суток! Помогите решить!!! Дан массив 4Dh, 59h, 2Dh, 42h, 52h,...

2
vital792
2003 / 1275 / 60
Регистрация: 05.06.2010
Сообщений: 2,213
21.12.2010, 13:17 2
Цитата Сообщение от nEgwaL Посмотреть сообщение
jle * * lesser* * * * * * * * * ;если mas[i] меньше, то обмен не нужен и
замени на
Assembler
1
jge     lesser
1
nEgwaL
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 10
21.12.2010, 23:06  [ТС] 3
cпс ! респект и уважуха
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2010, 23:06

сортировка массива
Здравствуйте. Есть непонятные места в программе, помогите пожалуйста...

Сортировка массива
Помогите пожалуйста решить задачу на сортировку массива. Дан массив из 10...

Сортировка массива за убыванием
Здравствуйте! Люди помогите написать программу: Создать программу, которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru