Автор: Пользователь скрыл имя, 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Кб
Заключение
Задача сортировки (упорядочения) элементов массива в соответствии с их значением – классическая задача, исследование которой началось еще с момента появления первых ЭВМ. Создано много различных алгоритмов сортировки, однако задача разработки такого метода сортировки, который был бы эффективен для массивов с любым количеством элементов, т.е. упорядочивал массив за наименьшее количество времени при минимальном объеме затрачиваемой памяти, не потеряла своей актуальности. В последнее время появилось достаточно много эффективных алгоритмов сортировки, которые базируются на принципах рекурсии, динамического программирования. В этой работе использовался метод сортировки выборкой.
Литература: