Консультация № 194032
30.11.2018, 00:14
0.00 руб.
0 4 1
Уважаемые эксперты! Прошу вас помочь с составлением программы для CompModel. Сортировка массива от минимального значения к максимальному.
Заранее - большое спасибо!

Обсуждение

давно
Посетитель
7438
7205
30.11.2018, 00:25
общий
Адресаты:
Здравствуйте! Что получается у Вас? Покажите.
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
402526
4
30.11.2018, 01:10
общий
Адресаты:
В целом ничего не выходит, в ассемблере полный 0((
давно
Посетитель
7438
7205
01.12.2018, 14:25
общий
это ответ
Здравствуйте, soloveujenya!
Держите программку.
Данные в количестве 10 штук необходимо записать, начиная с адреса 40
Используется пузырьковая сортировка в два цикла.
[code lang=asm]RD #40 ;адрес начала массива
WR R0 ;адресацию во внешнем цикле сортировки будем делать с помощью регистра R0
RD #50 ;адрес ЗА массивом, т.е. в массиве 10 элементов (чтобы работала команда JS)
WR R3 ;в регистре R3, для внутреннего цикла сортировки

SBI #1 ;внешний цикл сортировки до предпоследнего элемента
WR R2 ;в регистре R2
;внешний цикл сортировки
L1:RD R0 ;начальный адрес внутреннего цикла на 1 больше внешнего
ADI #1
WR R1 ;адрес внутреннего цикла
;внутренний цикл сортировки
L2:RD @R1 ;сравниваем текущий элемент внутреннего цикла
SUB @R0 ;с текущим внешнего
JNS NEXT2 ;если больше или равно, то на следующий элемент внутреннего цикла

RD @R1 ;если меньше, то меняем местами текущий элемент внутреннего цикла
WR R4
RD @R0 ;и внешнего
WR @R1
RD R4
WR @R0

NEXT2: ;на следующий элемент внутреннего цикла
RD R1 ;инкремент адреса
ADI #1
WR R1
SUB R3 ;сравниваем, дошли ли до конца массива
JS L2 ;нет - продолжаем

RD R0 ;на следующий элемент внешнего цикла
ADI #1
WR R0
SUB R2 ;сравниваем, дошли ли до предпоследнего элемента массива
JS L1 ;нет - идем на следующий внутренний цикл

HLT ;задача выполнена. По адресу, начиная с 40 - отсортированный массив
[/code]
5
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
02.12.2018, 01:27
общий
Адресаты:
Ну и зачем слать сообщение ВСЕМ модераторам?
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа