Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 19.05.2017, 17:48   #1
flu3xz
Пользователь
 
Регистрация: 19.05.2017
Сообщений: 26
Репутация: 10
По умолчанию Сортировка максимальных элементов масства

Добрый день, у меня возникла проблема с написанием программы, а именно сортировка максимальных элементов массива.
Условие самой задачи(найти два максимума в массиве и переставить в обратном порядке элементы массива, находящиеся между этими максимумами). Программа находит 1 и 2 максимум, а вот переставить их с ближайшими элементами не выходит. Подскажите как выполнить задание.
Вот сам код программы:

Код:

.model   small
        .stack  100h
 
        .data
 
len     equ     10
mas     db      '1', '2', '9', '4', '5','0','3','6','8','7', '$'
 
        .code
 
start:  mov     ax, @data
        mov     ds, ax
 
        mov     cx, len ;elements on massiv
        xor     bx, bx  ;0
        xor     ah, ah  ;predidyshii element 0
 
cycl1:  mov     al, mas[bx]     ;zapolnenie mas 
        xchg    al, ah          ;smena mestami tekus4ii s predidyshim
        cmp     ah, al          ;srawnenie tek i predidush
        jb      next2           ;esli zna4enia nizhe 
        mov     si, bx          ;indeks levogo = indeks tekysh
        inc     bx              ;powishenie na 1 
        loop    cycl1
next2:  jcxz    exit            ;na exit
cycl2:  inc     bx              ;powishenie na 1
        mov     al, mas[bx]     ;pro4it tekysh element
        xchg    al, ah          ;smena mestami tekus4ii s predidyshim
        cmp     ah, al          ;srawnenie tek i predidush
        ja      next3           ;perehod if bolwe
        loop    cycl2
next3:  jcxz    exit            ;if no na exit
        mov     di, bx          ;prewii max = tekus4ii element
cycl3:  inc     bx              ;powishenie na 1
        mov     al, mas[bx]     ;pro4it tekysh element
        xchg    al, ah          ;smena mestami tekus4ii s predidyshim
        cmp     ah, al          ;srawnenie tek i predidush
        jb      perest          ;esli zna4enia nizhe
        mov     di, bx          ;prewii max = tekus4ii element
        loop    cycl3
 
perest: ;perestanovka si..di
 
        lea     dx, mas[si]     ;adres pervogo max
        mov     mas+1[di], '$'  ;2 max $
        mov     ah, 9          
        int     21h
 
exit:   mov     ax, 4C00h
        int     21h
 
        end     start

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 19.05.2017 в 17:51.
flu3xz вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi]: Сортировка массива, состоящего из максимальных элементов заданных матриц hozer Помощь студентам 2 06.12.2016 00:32
Вектор из максимальных элементов матрицы droopy Помощь студентам 1 12.01.2014 18:59
Определение максимальных элементов массива (С++) Johnny_Grunge Помощь студентам 4 21.01.2012 16:28
количество максимальных элементов в масиве viknik Помощь студентам 3 21.03.2011 10:04
поиск максимальных элементов в массиве radiokarazinec Общие вопросы Delphi 1 26.12.2010 13:53




22:29.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru