Автор: Пользователь скрыл имя, 28 Октября 2012 в 20:42, курсовая работа
Цель работы: Необходимо отсортировать по возрастанию массив из 20 шестнадцатеричных чисел. Чтобы это сделать надо найти максимальный элемент и поместить в конец массива, потом второй по величине и поставить его на предпоследнее место массива и т.д.
Введение 4
Основная часть 5
Блок-схема алгоритма работы программы 7
Алгоритм работы программы 8
Листинг программы 9
Результаты выполнения программы 12
Заключение 13
Список литературы
module_data_to_xdata:
mov DPTR, #0000h
mov R0, #40h
metka4: цикл вывода
mov A, @R0
movx @DPTR, A
inc DPTR
inc R0
cjne R0, #54h, metka4 на метку цикла
final:
end.
Результаты выполнения программы:
до сортировки |
После сортировки |
13h |
01h |
11h |
03h |
01h |
07h |
17h |
11h |
07h |
11h |
03h |
12h |
21h |
12h |
32h |
13h |
32h |
14h |
12h |
17h |
42h |
17h |
34h |
21h |
22h |
22h |
14h |
31h |
55h |
32h |
11h |
32h |
17h |
34h |
77h |
42h |
31h |
55h |
12h |
77h |
Таблица команд и число их выполнения:
mov DPTR, #0000h |
21 |
mov R0, #53h |
21 |
movx @DPTR, A |
60 |
inc DPTR |
420 |
inc R0 |
20 |
cjne R0, #3Fh, metka1 |
460 |
dec R0 |
20 |
mov @R0, 54h |
20 |
mov A, #31h |
40 |
mov 54h, #00h |
20 |
mov R2, DPL |
560 |
jmp metka_vozvrata |
180 |
movx A, @DPTR |
420 |
cjne A, 54h, metka3 |
400 |
jc metka_vozvrata2 |
400 |
mov 54h, A |
140 |
mov DPL, R2 |
20 |
dec DPL |
20 |
mov A, @R0 |
20 |
Время затраченное программой на своё выполнение:
t = 5 + 20 + 20 + 40 + 60 + 20 + 100 + 80 + 40 + 400 + 40 + 60 + 1680 + 540 + 420 + 1200 + 800 + 280 + 1320 + 40 + 40 = 7305 тактов = 609 циклов = 203 мкс
Объём памяти занимаемый программой:
V = 24 * (1 + 20 + 20 + 20 + 20 + 20 + 20 + 40 + 400 + 20 + 560 + 180 + 420 + 400 + 400 + 440 + 20) + 12 * (1 + 20 + 20 + 20 + 40 + 20 + 140 + 20) = 74916 байт = 73Кб
Заключение
Задача сортировки (упорядочения) элементов массива в соответствии с их значением – классическая задача, исследование которой началось еще с момента появления первых ЭВМ. Создано много различных алгоритмов сортировки, однако задача разработки такого метода сортировки, который был бы эффективен для массивов с любым количеством элементов, т.е. упорядочивал массив за наименьшее количество времени при минимальном объеме затрачиваемой памяти, не потеряла своей актуальности. В последнее время появилось достаточно много эффективных алгоритмов сортировки, которые базируются на принципах рекурсии, динамического программирования. В этой работе использовался метод сортировки выборкой.
Литература: