99010

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

Курсовая

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

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

Русский

2016-07-22

85.5 KB

4 чел.

Содержание

Введение …………………………………………………………………………………………….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


 

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

54431. РЕПРЕЗЕНТАЦІЯ ОБРАЗУ МОРЯ У ТВОРАХ УКРАЇНСЬКИХ ПИСЬМЕННИКІВ ЯК ЗАСІБ ЕКСПРЕСИВНОГО ВПЛИВУ, ФОРМУВАННЯ СВІДОМОСТІ СУЧАСНОГО СТУДЕНТА, ЙОГО ІНТЕЛЕКТУАЛЬНО-ЕСТЕТИЧНОГО СМАКУ І СВІТОСПРИЙНЯТТЯ 109.5 KB
  Це і мариністичні мотиви і образи в народній класичній і сучасній літературах; жанри морського роману й мариністичної лірики образи мореплавців першовідкривачів піратів та морських фантастичних істот у художніх творах. Не можна оминути й прислівїв та приказок повязаних з морем рибалками риболовлею. Море Нащо в море воду лити коли й так море повне. І море починалося з краплі.
54432. Бачу пейзаж неозорого моря 122.5 KB
  Діти посміхаються. Що за вивіска така Музей Діти читають. Паличка торкається до стрічки і вона опускається падає і діти заходять в картинну галерею. Портретдіти декламують вірші Якщо бачиш на картині В безкозирці моряка Чи принцесу в кринолині Чи сусідського Вітька Як зображено людину А не вазу чи букет Всім відомо цю картину Називаємо портрет.
54433. Комплексная система заданий по развитию творческих способностей учащихся по теме «Морфология» 145 KB
  Я уверена, что вы хорошо усвоили изученную тему. Но если хотите проверить свои знания, творческие способности, умение использовать их в нестандартных ситуациях, предлагаю вам выполнить задания разных видов и выразить своё отношение к ним.
54434. ВЕСІЛЛЯ МОРКОВИНКИ 74.5 KB
  Діти співають пісню Вже настала осінь Дід Панас: Дорогі гості Сьогодні в наш край завітала ОСІНЬ ЗОЛОТАВКА встелила килимами землю навкруги.Жовтий лист під ноги пада Осінь Осінь Золотисту стелить постіль Осінь Осінь 2. Сидить осінь на горбрчку вишиває лісові сорочку Наче золоті пташенята Злітають у дерев листки.
54435. Пояснювальна записка до інтегрованого уроку (англійська, німецька мови, інформатика) 115 KB
  Тема: Die Brücke vom Herzen zum Herzen The Bridge from Hert to Hert Міст від серця до серця Мета уроку: 1 практична: розвивати навички монологічного та діалогічного мовлення; стимулювати інтерес учнів до теми уроку активізуючи використання вивченого лексичного матеріалу з теми; повторити правила утворення ступенів порівняння прикметників тренувати їх вживання; розвивати навички читання пошуку потрібної інформації в тексті; повторити географічні назви країн та...
54436. Мотивація навчальної діяльності учнів 58.5 KB
  Мотивація навчальної діяльності учнів Найважливіший сенс учительської праці навчити учнів так щоб вони не розгубилися в бурхливому вирії сучасного життя. Треба зацікавити учнів не лише конкретним предметом а й процесом отримання знань. За словами французького письменника вчитись треба тільки весело; щоб переварити знання треба поглинати їх з апетитом Саме тому однією з моїх методичних тем є проблема Мотивація навчальної діяльності учнів Будь яка діяльність людинив тому числі і навчання підкоряється загальній схемі: 1. Навіщо...
54437. Мотивація - один і з структурних елементів інтерактивного навчання 68.5 KB
  Використовую різноманітні прийоми мотивації: Мотивація навчальної діяльності шляхом бесіди Шляхом створення проблемної ситуації Шляхом використання технології мозкова атака Шляхом опрацювання тексту періодичних видань За технологією незакінчене речення Шляхом виготовлення саморобних наочних посібників Шляхом використання творчих завдань Шляхом використання художньої та науковопопулярної літератури Шляхом створення ситуацій успіху На основі діяльнісного підходу до навчання За допомогою екстраполяції прогнозування...
54438. Die Ukraine − unsere Heimat 49.5 KB
  Die Ukrine − unsere Heimt Мета. Мовна зарядка Welche Tg ist heute Der wievielte ist heute Sind lle Schen in Ordnung Ist die Tfel suber 3. Де ви живете Ви живете в Києві Ми живемо на вулиці Шевченка 12 Konjugiert die folgenden Verben im Präsens sprechen wohnen leben. Die Hupstdt der Ukrine heißt Kyjiw.
54439. Лексикологія. Багатозначність слів, вживання їх у прямому та переносному значеннях, синоніми і антоніми 44.5 KB
  Сухомлинський Мова жива сходинка людського духу Панас Мирний Мова коштовній скарб народу І. Франко Мова життя духовного основа М. Рильский Мова генофонд культури О.Завжди йдуть у парі мова й думка.