99010

Сортировка массива по убыванию

Курсовая

Информатика, кибернетика и программирование

Ассемблер – один из самых старых из существующих сегодня языков программирования. Все процессы в машине на самом низком, аппаратном уровне приводятся в действие только командами машинного языка. Символическое представление машинного языка – это и есть ассемблер

Русский

2016-07-22

85.5 KB

0 чел.

Содержание

Введение …………………………………………………………………………………………….3

Постановка задачи ………………………………………………………………………………….4

Метод решения ……………………………………………………………………………………..5

Описание программы ………………………………………………………………………………6

Руководство системного программиста …………………………………………………………..7

Руководство программиста ………………………………………………………………………..8

Руководство оператора ……………………………………………………………………………..9

Алгоритмическая часть……………………………………………………………………………..10

Список литературы …………………………………………………………………………………12

Приложение …………………………………………………………………………………………13

Тестирование программы ………………………………………………………………………….16

Введение

Ассемблер – один из самых старых из существующих сегодня языков программирования. Все процессы в машине на самом низком, аппаратном уровне приводятся в действие только командами машинного языка. Символическое представление машинного языка – это и есть ассемблер. По-настоящему решить проблемы, связанные с аппаратурой, невозможно без знания ассемблера. И не случайно практически все компиляторы языков высокого уровня  содержат средства связи  своих модулей с модулями на ассемблере либо поддерживают выход на ассемблерный уровень программирования.

Писать достаточно объёмные программы на ассемблере довольно утомительно, поэтому становится актуальным способ программирования с использованием комбинирования программ на языке высокого уровня с кодом на ассемблере. Такой путь обычно избирается в том случае, если в программе есть участки, которые либо невозможно реализовать без использования ассемблера, либо его применение может значительно повысить эффективность работы программы.

Данная курсовая работа написана с использованием вышеописанного метода программирования.  

Постановка задачи

Задание: отсортировать массив по убыванию. Отрицательные элементы остаются  на своих местах.

Исходный массив находится во внешнем файле data.txt. Результат, отсортированный по убыванию массив, выводится на экран.

Метод решения

Сортировка массива производится методом перестановки. По очереди сравниваются два соседних элемента и, если порядок их следования не удовлетворяет нашему условию (сортировка по убыванию), они меняются местами.

Описание программы

     Программа состоит из двух модулей, написанных:

  •  на языке Turbo Pascal;
  •  на языке ассемблера.

          Главный модуль реализован на языке Turbo Pascal. Этот модуль выполняет следующие действия.

  1.  Открывает файл с исходными данными.
  2.  Считывает этот файл.
  3.  Выводит на экран исходный и отсортированный массивы.

              Модуль на языке ассемблера реализует сортировку массива.

Руководство системного программиста

 

Общие сведения о программе

           Программа сортировки массива написана с использованием метода комбинирования модулей на языках Turbo Pascal и ассемблер.

Структура программы

Структурно программа состоит из главного модуля написанного на языке Turbo Pascal и вызываемого им модуля, написанного на ассемблере. Главный модуль содержит интерфейсные процедуры и функции (открытие файла, чтение файла, вывод исходных данных и результата на экран). Модуль, написанный на ассемблере, выполняет сортировку массива.            

Проверка программы

Результаты проверки приведены в приложении.

Руководство программиста

 Назначение и условия применения программы

           Программа предназначена для сортировки массива.

          Обращение к программе

           Обращение к программе производится через командную строку без параметров.

Руководство оператора

 Назначение программы

           Программа предназначена для сортировки массива по убыванию.  Она выводит на экран исходный массив и результат работы программы (отсортированный по убыванию массив).

            Условие выполнения программы

             Необходимым условием выполнения программы является ввод исходных данных в файл data.txt, при чем первым должно быть число элементов массива.

             Выполнение программы

              Выполнение программы происходит после запуска из командной строки без параметров.

Алгоритмическая часть

Схема алгоритма модуля написанного на ассемблере

Список литературы

1.Пильщиков В.Н. Программирование на языке ассемблера IBM PC.– М.: Диалог-МИФИ 1994.

2.Юров В. Assembler.-Санкт-Петербург,2000.

3.Фаронов В.В. Turbo Pascal 7.0. Москва, издательство «Нолидж».

Приложение

Листинг главного модуля, написанного на Turbo Pascal

uses Crt;

var

 kl,j,k:integer;

 mas:array[1..20] of integer;

 F:Text;

procedure  asmproc(var mas;n:integer);external;

{$L maxu.obj}

begin

 clrscr;

 assign(f,'data.txt');

 reset(f);

 readln(f,kl);

 WriteLn('Unsorted vector:');

 for j:=1 to kl do

 begin

   readln(f,mas[j]);

   write(mas[j],' ');

 end;

   writeln;

 close(f);

asmproc(mas,kl);

WriteLn('Sorted (>0) vector:');

 for j:=1 to kl do

   write(mas[j],' ');

 writeln;

 readln;

end.

Листинг модуля, написанного на ассемблере

MASM

MODEL small

STACK 256

.data

t dw 0

j dw 0

i dw 0

.code

main:

asmproc  proc

PUBLIC  asmproc

     push   bp               

     mov    bp,sp            

     push   ds               

     cld

     les    bx,[bp+08]        ;адрес массива

     mov    si,bx             ;запомнить адрес

     mov    t,si              

loc0: mov    di,t              ;новый цикл

loc1: mov    ax, [di]          ;[di]->ax

     shr    ax,15             ;проверим положительно ли?

     cmp    ax,0

     je     loc2              ;если да то

     mov    ax,di             ;si<>N

     sub    ax,si

     mov    dx,[bp+06]

     add    dx,[bp+06]

     sub    dx,2

     cmp    ax,dx  

     jae    loc5              ;внутренний цикл закончен

     add    di,2              

     jmp    loc1

loc2: cmp    si,di             ;di<>si

     je     loc3              ;если =

     mov    ax,[di]           ;иначе проверить элементы >=

     cmp    ax,[si]

     jbe    loc3

     mov    ax,[di]           ;перестановка

     mov    bx,[si]

     mov    [si],ax

     mov    [di],bx

loc3: mov    ax,di             ;si:=di

     mov    si,ax

     mov    dx,[bp+06]

     add    dx,[bp+06]

     add    dx,t

     Sub    dx,2

     mov    bx,si

     cmp    bx,dx             ;если si<>N

     jne    loc4              ;то на loc4

loc5: add    j,1

     mov    bx,[bp+06]

     sub    bx,1

     cmp    bx,j

     jle    endc       

     jmp    loc0

loc4: add    di,2

     jmp    loc1

endc: pop ds

     pop bp

     ret  

asmproc  endp                            ;конец процедуры

end

   

Тестирование программы.

  1.  Содержание файла data.txt

<======CUT=========>

5

12

-4

4

-12

45

<======CUT=========>

Результат

Unsorted vector:

-12 -4 4 -12 45

Sorted vector:

45 -4 12 -12 4

  1.  Содержание файла data.txt

<======CUT=========>

5

48

-5

1

-7

100

<======CUT=========>

Результат

Unsorted vector:

48 -5 1 -7 100

Sorted vector:

100 -5 48 -7 1

16


 

А также другие работы, которые могут Вас заинтересовать

32313. Азиатский способ производства и возникновение государств на Др.Востоке (восточно-деспотических государств) 34.5 KB
  Постепенно по мере роста масштабов кооперации коллективной трудовой деятельности зародившиеся еще в родоплеменных коллективах зачатки государственной власти превращаются в органы управления и господства над суммами общин которые в зависимости от широты экономических целей складываются в микро и макрогосударства объединяемые силой централизованной власти. Общинники считаются свободными однако фактически все стало государственной собственностью включая личность и жизнь всех подданных которые оказались в безраздельной власти...
32314. Возникновение государственности в Европе (Афины, Рим, германцы, славяне). Общие закономерности и особенности 50 KB
  В отличие от азиатского государства ведущим государствообразующим фактором на территории Европы было классовое разделение общества. Следовательно для генезиса Афинского государства характерно то что оно возникает непосредственно и прежде всего из классовых антагонизмов развивающихся в недрах родоплеменного общества. В длившейся 200 лет борьбе между двумя группами свободных членов римского родоплеменного общества плебеи вырывали у патрициев одну уступку за другой. Если само положение Греции и Рима способствовало...
32315. Теории возникновения государства и права 43 KB
  Одни государства подчас могут распадаться СССР Югославия Чехословакия; другие объединяются в более крупные такой процесс возможно начался в рамках Европейского Союза. Могут зародиться новые причины и формы такого возникновения что бесспорно только обогатит теорию государства. Основные теории происхождения государства теологическая патриархальная договорная насилия органическая материалистическая психологическая патримониальная и ирригационная ставят во главу угла какойлибо один конкретный доминирующий способ...
32316. Государственная власть: понятие и общие черты 33 KB
  В юридической литературе одни авторы рассматривают власть как определенную функцию присущую любому коллективу обществу; другие исследователи как волевое отношение властеотношение властвующего и подвластного субъектов; третьи как способность властвующего управляющего навязывать свою волю другим лицам; четвертые как организованную силу способную подчинять воле определенной социальной общности других людей. Власть понимается также как управление связанное с принуждением. И наконец зачастую под властью понимается государство или его...
32317. Сущность государства. Признаки и определение понятия государства. Различные подходы к определению понятия государства 45 KB
  Сущность государства. Признаки и определение понятия государства. Различные подходы к определению понятия государства. Его определяют и как общественный союз свободных людей с принудительно установленным мирным порядком посредством предоставления исключительного права принуждения только органам государства Н.
32318. больших группах классах тех или иных объектов обладающих набором общих характерных для каждого типа приз 27.5 KB
  В его основе лежит учение об общественноэкономической формации которая включает в себя тип производственных отношений базис и соответствующий ему тип надстройки государство право и т. Ленина и других решающим фактором общественного развития который детерминирует и соответствующий тип надстроечных элементов: государство и право. Рабовладельческое государство есть орудие поддержания власти рабовладельцев над рабами которые были собственностью свободных граждан. Феодальное государство это диктатура класса феодалов земельных...
32319. Внутренние функции государства. Их виды и характеристика в различных типах государства 43.5 KB
  Внутренние функции государства. Внутренние функции государства представляют собой основные направления разнообразной внутренней деятельности государства обусловленные необходимостью решения стоящих перед ним внутренних задач. Таковой была например позиция ряда авторов классифицировавших функции государства еще в 70е годы на функции политической охраны строя политическая функция а также на экономическую социальную и идеологическую функции. Правда при этом оговаривалась возможность и более дробной полностью не совпадающей с различными...
32320. Цивилизационный подход к типологии государств. Понятие цивилизаций. Виды цивилизаций и соответствующих типов государств при различных разновидностях цивилизационного подхода (Тойнби, Ростоу, Сорокин) 45 KB
  Цивилизационный подход – это исследование состояния и развития общества закономерностей смены исторических типов государств с точки зрения качественных изменений в социокультурной среде общества в духовной культуре народа его религии и нравах. Цивилизационный подход выделяет три принципа соотношения государства и духовнокультурной жизни общества: Природа государства определяется не только реальным соотношением сил но и накопленными в ходе исторического процесса представлениями о мире ценностями образцами поведения. Цивилизация есть...
32321. Внешние функции государства. Их виды и характеристика в различных типах государства 45 KB
  Внешние функции государства. Их виды и характеристика в различных типах государства. Внешние функции государства представляют собой основные направления деятельности государства непосредственно связанные с решением стоящих перед ним на международной арене целей и задач. Они зависят от характера существующего в стране политического режима и типов государств от этапов развития одного и того же государства от складывающейся в мире международной обстановки от характера взаимоотношений сосуществующих друг с другом государств.