РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ АССЕМБЛЕРА. ОПТИЧЕСКИЕ НАКОПИТЕЛИ - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ АССЕМБЛЕРА. ОПТИЧЕСКИЕ НАКОПИТЕЛИ

Поверина Г.В. 1
1Балаковский инженерно-технологический институт — филиал федерального государственного автономного образовательного учреждения высшего образования «Национальный исследовательский ядерный университет «МИФИ»
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
ВВЕДЕНИЕ 

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

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

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

1 ЭТАПЫ РАЗВИТИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ      

 

Ручной период автоматизации вычислений начался в начале человеческой цивилизации и основывался нa использовании частей тела, в первую очередь пальцев рук и ног. Даже ряд известных средневековых математиков рекомендовали в качестве вспомогательного средства именно счет на пальцах, допускающий довольно эффективные системы счета. Фиксация результатов счета производилась различными способами: узелки, нанесение насечек, счетные палочки. Например, у народов доколумбовой Америки был весьма развит узелковый счет. Более того, эта система узелков выполняла также роль своего рода хроник и летописей, имея достаточно сложную структуру. Однако, использование ее требовало хорошей тренировки памяти. Счет с помощью группировки и перекладывания предметов явился предшественником счета на абаке - наиболее развитом счетном приборе древности, сохранившимся до наших дней в виде различного типа счетов.

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

Хорошо приспособленный к выполнению двух операций сложения и вычитания, абак оказался недостаточно эффективным прибором для выполнения, операций умножения и деления.

Это привело к открытию логарифмов и логарифмических таблиц Дж. Непером в 17 веке, позволивших заменять операции умножения и деления соответственно сложением и вычитанием, явилось следующим крупным шагом в развитии вычислительных систем ручного этапа. В след за этим появляется целый ряд модификаций логарифмических таблиц. Однако, в практической работе использование логарифмических таблиц имеет ряд неудобств, поэтому Д. Непер предложил аналогичный метод специальные счетные палочки. Они  позволили производить операции умножения и деления непосредственно над исходными числами. В основу данного метода Непер положил способ умножения решеткой.

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

Логарифмы послужили основой создания замечательного вычислительного инструмента - логарифмической линейки, более 360 лет служащего инженерно-техническим работникам всего мира. Первообразом современной логарифмической линейки считается логарифмическая шкала Э. Гюнтера, использованная У. Отредом и Р. Деламейном при создании первых логарифмических линеек. Усилиями целого ряда исследователей логарифмическая линейка постоянно совершенствовалась и видом, наиболее близким к современному, она обязана французскому офицеру А. Манхейму. Позволяя производить вычисления с 2-4 точными десятичными цифрами, логарифмическая линейка и счеты еще исправно служат человеку в различного рода расчетах, являясь венцом вычислительных инструментов ручного этапа развития вычислительной техники.

Развитие механики в 17 веке стало предпосылкой создания вычислительных устройств и приборов, использующих механический принцип вычислений. Такие устройства строились на механических элементах и обеспечивали автоматический перенос старшего разряда. Первая механическая машина была описана в 1623 г. В. Шиккардом, реализована в единственном экземпляре и выполняла четыре арифметических операции над 6-разрядными числами. Машина Шиккарда состояла из трех независимых устройств: суммирующего, множительного и записи чисел. Операция сложения осуществлялась последовательным вводом слагаемых посредством наборных дисков, а вычитание - последовательным вводом уменьшаемого и вычитаемого. Вводимые числа и результат этих операций отображались в окнах считывания. Для умножения использовалась идея умножения решеткой, рассмотренная выше. Третья часть машины использовалась для записи числа длиною более 6 разрядов. В машине Блеза Паскаля использовалась более сложная схема переноса старших разрядов, в дальнейшем редко используемая; но построенная в 1642 году первая действующая модель машины, а затем серия из 50 машин способствовали достаточно широкой известности изобретения и формированию общественного мнения о возможности автоматизации умственного труда. До настоящего времени дошло только 8 машин Паскаля, из которых одна - десятиразрядная. Именно машина Паскаля положила начало механического этапа развития вычислительной техники. В 17-18 веках предлагался целый ряд различного типа и конструкции суммирующих устройств и арифмометров, пока в 19 веке; растущий объем вычислительных работ не определил устойчивого спроса на механические счетные устройства и не способствовал их серийному производству на коммерческой основе.

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

Первач часть включала в себя блок хранения исходных, промежуточных данных и результатов вычислений. Он состоял из набора зубчатых колес, идентифицирующих цифры подобно арифмометру. Колеса объединялись в регистры для хранения многоразрядных десятичных чисел. Этот блок Бэбидж называл складом и определял его емкость в тысячу  пятидесяти-разрядных десятичных чисел.

Вторая часть – это блок для обработки чисел из склада, названный мельницей. Быстродействие данного блока Бэбидж оценивал следующим образом: сложение и вычитание - одна секунда,  умножение (двух 50-разрядных чисел) и деление (100-разредное число на 50-разрядное) - одна минута.

Третья часть включает блок управления последовательностью вычислений  проектировался на основе двух: жаккардовых механизмов» описанных ниже.

Четвертая часть включает блок ввода исходных данных и печати результатов.

Для правильной работы аналитической машины требовалась программа. Самый первый пример этой программы был написан Адой Лавлейс. В 1842 ггоду на итальянском языке была опубликована статья по аналитической машине Бэбиджа, переводом которой на английский язык и занималась А. Лавлейс. В августе 1843 года вышел перевод статьи Менебреа. В статье присутствовали  примечания переводчика. Примечания  в два раза превышали объем оригинала и заложили основы программирования на ЭВМ за т столетие до начала действительного развитая этого раздела информатики.

Электромеханический этап развития вычислительной техники был непродолжительным и охватывает всего около шестидесяти лет.  Длится от первого табулятора Г. Холлерита, который был изобретен в 1887 году, до первой электронно-вычислительной машины ENIAC (1945 год). Предпосылками создания проектов данного этапа явились необходимость проведения массовых расчетов, и развитие прикладной электротехники, позволившие создавать электромеханические вычислительные устройства. В предыдущих этапах развития вычислительной техники можно заметить, что каждый из  этапов характеризуется созданием технических средств нового типа обладающих очень высокой производительностью и более широкой сферой применения, чем в предыдущих этапах. Классическим типом средств электромеханического этапа стал счетно-аналитический комплекс, предназначенный для обработки информации на перфокарточных носителях.

Первый счетно-аналитический комплекс был создан в США Г. Холлеритом в 1887 году. Он представлял собой ручной перфоратор сортировочной машины и табулятор. Основываясь на идеи Бэбиджа и Жаккарда, Г. Холлерит в качестве информационного носителя взял перфокарты, все остальные компоненты комплекса носили оригинальный характер. Главным назначением комплекса являлась статистическая обработка перфокарт. В первых моделях комплекса использовалась ручная сортировка перфокарт, а табулятор был создан на основе простейших электромеханических реле. Первое испытание комплекса было произведено в 1887 году в Балтиморе  при составлении таблиц смертности населения. Основные испытания уже модифицированного комплекса производились в 1889 году при обработке итогов переписи населения в четырех районах Сент-Луиса.

В 1937 году в США Дж. Атанасов начал работы по созданию ЭВМ, которая была использована для решения ряда задач в математической физики. В это время создавались первые электронные схемы узлов ЭВМ. Эти схемы через некоторое время были запатентованы. Вместе с К. Берри к 1942 году была построена электронная машина ABC (Atanasoff-Berry Computer). Электронная машина АВС выполняла только операции сложения и вычитания и включала в себя АУ на 300 вакуумных лампах. Еще триста ламп использовались для реализации всевозможных цепей управления и восстановления памяти. Сама память машины состояла из большого числа конденсаторов, смонтированных на двух вращающихся барабанах с общей емкостью на 60 50-битных чисел. Модель ДВС-вычислителя реализовала ряд черт, оказавших большое влияние на инженерные решения последующих средств вычислительной техники. Она и ее прототип 1939 года, были первыми специальными машинами.

Релейная вычислительная техника в силу физико-технической природы не позволяла существенно увеличить скорость вычислений. В связи с этим потребовался переход на электронные безинерционные элементы высокого быстродействия.

 К началу сороковых годов 20 века электроника уже располагала необходимым набором элементов. С изобретением М. Бонч-Бруевичем в 1913 году триггера появилась реальная возможность создания быстродействующей электронной вычислительной техники.

ЭВМ ознаменовали собой новое направление в вычислительной техники, которое стремительно развивалось и развивается в настоящее время в различных направлениях.

Первой ЭВМ  считают английскую машину Colossus, которая была изобретена в 1943 году при участии А. Тьюринга. Машина состояла из 2000 электронных ламп и обладала достаточно высоким быстродействием однако была узкоспециализированной. В связи с этим первой ЭВМ принято называть машину Electronic Numerical Integrator and Computer, изобретенную в США в конце 1945 года. Машина оказалась универсальной, хотя и в начале была предназначена для решения задач баллистики. Главным консультантом проекта являлся Д. Моучли, а главным конструктором – Д. Эккерт.

Проект создания ENIAC начался в апреле 1943 года и был полностью закончен в декабре 1945 года. В качестве официального испытания ЭВМ была назначена задача оценки принципиальной возможности создания водородной бомбы. Машина успешно выдержала испытание, обработав при этом приблизительно один миллион  перфокарт фирмы IBM с исходными данными. По сравнению с существующей на тот период времени  автоматической машиной MARK-1 Айкена ENIAC была по размерам в два раза больше, но превосходила первую в быстродействии приблизительно в 1000 раз. Машина состояла из  18000 электронных ламп, 500 реле, 70000 сопротивлений, 10000 конденсаторов, потребляя мощность в 140 киловатт.

В EDVAC программа электронным методом записывалась в специальную память на ртутных трубках, вычисления производились уже в двоичной системе счисления. Именно это позволило сильно уменьшить количество ламп и других элементов электронных цепей. ЭВМ оперировала очень ограниченным набором четырех адресных команд, каждая длиной в слово – сорок четыре бита. Код операции мог состоять из 4 битов - это максимум 16 команд, из которых 12 было реально задействовано. Адреса использовались для указания соответственно первого и второго операндов, результата операции и адреса следующей выполняемой команды программы. Полностью ЭВМ  была завершена  в 1952 оду, она содержала более 3500 ламп девятнадцати  различных типов.

 

 

2 МОДУЛЬНО-МАГИСТРАЛЬНЫЙ ПРИНЦИП ПОСТРОЕНИЯ ЭВМ    

 

Магистрально–модульный принцип является основой архитектуры персональных компьютеров. Модульный принцип позволяет потребителю самому комплектовать нужную ему конфигурацию компьютера и производить при необходимости ее модернизацию.

Магистраль включает в себя многоразрядные шины: шину данных, шину адреса и шину управления. Шины представляют собой многопроводные линии.

Разрядность шины данных определяется разрядностью процессора, количеством двоичных разрядов, которые процессор обрабатывает за один такт. Разрядность процессора постоянно увеличивалась в следующей последовательности: 8, 16, 32, 64. Информация по двунаправленной шине данных может передаваться от процессора.

Выбор абонента по обмену данными производит процессор, который формирует код адреса устройства, и для оперативной памяти код адреса ячейки памяти. Код адреса непосредственно передается по адресной шине, причем сигналы по ней передаются в одном направлении от процессора к оперативной памяти и устройствам. Для этого предназначена однонаправленная шина.

Разрядность шины определяется адресным пространством процессора, то есть количеством ячеек, которые будут иметь уникальные адреса. Количество адресуемых ячеек памяти рассчитывается по формуле:

N=2I,       (1)

где I  - разрядность шины адреса.

 

Каждая ячейка имеет свой уникальный двоичный адрес и объем 1 байт, Из этого следует, что максимальный объем адресуемой памяти будет равным:  

4294967296 байт=4 Гбайт.

 

В персональных компьютерах длина адресного пространства процессора и

длина фактически установленной оперативной памяти практически всегда различаются. Не учитывая то, что общий объем адресуемой памяти достигает четырех гигабайт, длина фактически установленной оперативной памяти может быть значительно меньше – тридцать два мегабайта.

По шине управления передаются сигналы, определяющие характер обмена информацией, сигналы, синхронизирующие взаимодействие устройств, участвующих в обмене информацией.

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

Необходимость использования контроллеров вызвана и связана с тем, что технические и функциональные параметры компонентов могут существенно различаться, к примеру, их быстродействие. Таким образом, процессор может проводить несколько сотен миллионов операций в секунду, тогда как пользователь может вводить с клавиатуры приблизительно два - три знака за секунду. Контроллер клавиатуры и обеспечивает согласование скорости ввода информации со скоростью ее обработки.

 

 

 

 

 

 

 

 

 

 

 

 

 

3 КЛАССИЧЕСКАЯ АРХИТЕКТУРА ЭВМ   

        

Джон фон Нейман – основатель  учения об архитектуре вычислительных машин.

Фон Нейман выдвинул основополагающие принципы логического устройства ЭВМ. Им была предложена структура архитектуры вычислительных машин, представленная на рисунке 1.

 

Рисунок 1 – Архитектура ВМ.

 

Арифметико-логическое устройство и устройство управления в современных компьютерах образуют процессор ЭВМ. Процессор, который состоит из одной или нескольких больших интегральных схем называется микропроцессором или микропроцессорным комплектом.

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

Запоминающие устройства обеспечивают хранение исходных и промежуточных данных, результатов вычислений, а также программ. Они включают: оперативные,  сверхоперативные, постоянные и внешние запоминающие устройства. 

Оперативные запоминающие устройства хранят информацию, с которой компьютер работает непосредственно в данное время.  В СОЗУ хранится наиболее часто используемые процессором данные. Только та информация, которая хранится в СОЗУ и ОЗУ, непосредственно доступна процессору. 
Внешние запоминающие устройства  используются для длительного хранения больших объемов информации.

Постоянные запоминающие устройства и  перепрограммируемые постоянные запоминающие устройства предназначены для постоянного хранения информации, которая записывается туда при ее изготовлении.

Устройством ввода может быть  клавиатура. В качестве устройства вывода – дисплей.

В ЭВМ фон Неймана происходит последовательное считывание команд из памяти и их выполнение. Номер (адрес) очередной ячейки памяти, из которой будет извлечена следующая команда программы, указывается специальным устройством – счетчиком команд в устройстве управления. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 КЛАССИФИКАЦИЯ ЭВМ    

 

Электронная вычислительная машина представляет собой комплекс аппаратных средств, которые предназначены для автоматической обработки информации в процессе решения задач различного типа.

ЭВМ классифицирую по различным признакам. Один из способов классификации – по назначению.

По назначению ЭВМ подразделяются на универсальные, специализированные, проблемно-ориентированные.

Универсальные предназначены для решения математических, информационных и ряда других задач. Работают с большим объемом  данных

Достоинствами таких ЭВМ являются большой объем оперативной памяти, высокая производительность.

 Специализированные ЭВМ предназначены  для решения узкого круга, что  позволяет четко специализировать их структуру. К ним относят: адаптеры и контроллеры, выполняющие логические функции управления отдельными несложными техническими устройствами, агрегатами и процессами; устройства согласования и сопряжения работы узлов вычислительных систем.

Проблемно-ориентированные ЭВМ служат для решения более узкого круга задач для управления технологическими объектами; регистрацией и обработкой небольших объемов данных; выполнением расчетов по относительно несложным алгоритмам. К проблемно-ориентированным ЭВМ можно определить  всевозможные управляющие вычислительные комплексы.

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

Цифровые вычислительные машины  работают с информацией в дискретном (цифровом) виде. В свою очередь аналоговые вычислительные машины представляют собой машины непрерывного действия. Информация представлена в виде электронного напряжения в непрерывной форме.

Гибридные вычислительные машины  - это машины комбинированного действия. Работают с информацией как в цифровой так и в аналоговой форме.

Сочетают в себе положительные качества аналоговых и цифровых машин.

По месту работы и режиму ЭВМ принято делить на активные, резервные, подчиненные, периферийные, псевдоведущие.

Активная ЭВМ,  включенная в состав многомашинного комплекса и является ведущей постоянное время обработку или готова к немедленной обработке задач пользователей.

Резервная  или дублирующая ЭВМ, специализирована на выполнение операций, предназначенных для активной ЭВМ. Работает в постоянно ждущем режиме. Этот режим предусматривает передачу функций активной машины в случаях ошибочной работы или выхода из строя последней.

Периферийная ЭВМ  предназначена для управления каким-либо периферийным оборудованием. Также выполняет некоторые вспомогательные функции. Например, такие как, предварительный сбор и обработку данных.

Подчиненная ЭВМ используется в многомашинных системах.  Работает под управлением  центральной ЭВМ.

Псевдоведущая ЭВМ  в свою очередь осуществляет сбор статистических отчетов о работе вычислительной сети.

По этапам развития ЭВМ условно подразделяют  на 6 поколений.

Первое поколение -  50-е года: ЭВМ на электронно-вакуумных лампах.

Второе  поколение - 60-е годы: ЭВМ на дискретных полупроводниковых приборах.

Третье поколение - 70-е годы: ЭВМ на полупроводниковых интегральных схемах с малой и средней степенью интеграции.

Четвертое поколение - 80-е годы: ЭВМ на больших интегральных схемах — микропроцессорах (несколько миллионов транзисторов в одном кристалле).

Пятое поколение, 90-е годы: ЭВМ на сверхсложных микропроцессорах с параллельной векторной структурой. Могут одновременно выполнять  несколько десятков последовательных команд.

Шестое поколение: оптоэлектронные ЭВМ с массовым параллелизмом и нейронной структурой - с распределенной сетью большого числа несложных микропроцессоров, моделирующих архитектуру нейронных биологических систем.

По функциональным возможностям ЭВМ можно разделить суперЭВМ, большие, малые и микроЭВМ.

С понятием микроЭВМ связаны следующие определения и термины:

  • Однокристальная ЭВМ – это микроЭВМ, которая выполнена на большой большой или сверхбольшой интегральной микросхеме;
  • У одноплатной ЭВМ микросхемы устройств памяти и системы ввода и вывода, микропроцессор размещаются  на одной печатной плате;
  • Однопроцессорная ЭВМ – включает в себя один центральный процессор.
  • Интеллектуальная карточка представляет собой  пластиковую карту со встроенным в нее микропроцессором и памятью. Предназначается в основном для хранения, идентификационных личных данных, например, для охранных устройств.

МикроЭВМ в свою очередь подразделяются на универсальные (многопользовательские и персональные) и специализированные (серверы и рабочие станции).

 

 

 

 

 

 

 

 

 

 

 

5 РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ АССЕМБЛЕРА        

5.1 Постановка задачи и разработка алгоритма    

 

В курсовой работе требуется решить следующую задачу: «Дан одномерный массив. Массив заполнить случайными числами. Во второй массив занести обратную последовательность элементов первого массива (слева-направо -> справа-налево). В третий массив занести последовательность из сумм элементов на соответствующих позициях первого и второго массивов. Полученный массив отсортировать по убыванию.

Для реализации поставленной задачи используется среда Microsoft Visual Studio 2010.  Генерация массивов случайными числами и вывод на экран реализовано средствами C++. Формирование второго и  третьего массивов - средствами языка Ассемблера. На рисунках 2 и 3 представлена блок-схема алгоритма:

Начало

начало

a[5], b[5]. I=0

a[5], b[5], i=0

printf(a[i]

printf a[i]

_asm1

_asm1

For  (i=0; i<5; i++)

a[i]=rand()100%

1

1

 

Рисунок 2 – Блок-схема алгоритма (1 часть)

 

_asm2

 

_asm2

printf a[i]

 

printf а[i]

_asm3

 

_asm3

printf a[i]

 

printf a[i]

конец

1

printf b[i]

 

printf b[i]

Рисунок3 – блок-схема алгоритма (2 часть)

 

5.2 Формализация алгоритма        

 

#include "stdafx.h"

#include <iostream>

#include <string.h>

#include "conio.h"

 

void main ()

  {

        setlocale (0,"rus");

        int a[5];

        int b[5];

        int i=0;

     

for(int i=0; i<5; i++)

      {

               a[i] =rand()%100;

               b[i]=a[i];

   }

       printf ("\n Массив 1: ");

        for(i=0; i<5; i++)

               {

                        printf("%i\t",a[i]);

                }

        _asm

 {

               lea ebx, b

               mov esi, 0

               mov ecx, 5          

for1:

               mov edx, [ebx+esi]

               push edx

               add esi, 4

               loop for1

               mov ecx, 5

               mov esi, 0

               for2:

               pop edx

               mov [ebx+esi], edx

               add esi, 4

               loop for2

 

}

       printf ("\n Массив 2: ");

     

  for(i=0; i<5; i++)

      {

                        printf("%i\t",b[i]);

       }

       _asm

        {

                 lea eax,a

                 lea ebx, b

                 mov esi, 0

                 mov ecx, 5

 for:

                 push ecx

                 mov edx, [eax+esi]

                 mov ecx, [ebx+esi]

                 add edx, ecx

                 mov [eax+esi], edx

                 pop ecx

                 add esi,4

                 loop for

        }

        printf ("\n Массив 3 (а+в): ");

 for(i=0; i<5; i++)

               {

                        printf("%i\t",a[i]);

               }

        _asm {

               lea ebx, a            

               mov ecx, 4

for11:

               push ecx             

               mov ecx, 4 

               mov esi, 0

               mov edx, 4

 

for22:

               mov ah, [ebx+edx]

               mov al, [ebx+esi]

               cmp al, ah

               jc lable1

               jmp end22

lable1:

      mov [ebx+edx], al                 

      mov [ebx+esi], ah

end22:

               add esi, 4 

               add edx, 4

               loop for22

               pop ecx               

               loop for11

      }

 

      printf("\n");

      printf ("Массив по убыванию: ");

        for(i=0; i<5; i++)

               {

                        printf("%i\t",a[i]);

          }

      system("pause");}

 

Рисунок 4 – результат работы программы с 1 набором входных данных

 

 

Рисунок 5 – результат работы программы со 2 набором входных данных

 

 

Рисунок 6 – результат работы программы с 3 набором входных данных

 

5.3 Таблица использования памяти и регистров    

 

Таблица использования памяти и регистров (таблица 1) содержит данные о состоянии регистров при выполнении сравнения элементов двух массивов.

 

Таблица 1 – Использование памяти регистров

Команда

Регистр «до»

Регистр «после»

1

2

3

4

1

mov esi

9763812

0

2

mov ecx

142713165

5

3

mov edx, [ebx+esi]

1495655608

41

4

add esi, 4

0

4

5

mov edx, [ebx+esi]

14874872

1494971663

6

add esi, 4

 

4

8

Продолжение таблицы 1

1

2

3

4

7

mov edx, [ebx+esi]

 

1494971663

14874900

8

add esi, 4

 

8

12

9

mov edx, [ebx+esi]

 

14874900

14874900

10

add esi, 4

 

12

16

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

 

В ходе выполнения курсовой работы  были рассмотрены этапы развития вычислительной техники, модульно-магистральный принцип построения ЭВМ и ее классификация, а также классическая архитектура.

 Также освоены практические навыки разработки программы для ЭВМ на языке ассемблера. Язык ассемблера – это символическое представление машинного языка. Ассемблер позволяет писать короткие и быстрые программы.

Применены практические знания, которые получили при изучении дисциплины «Архитектура информационных систем». Итогом выполнения курсовой работы стала программа, реализующая некоторый функционал.

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

  1. Владислав Пирогов. Ассемблер и дизассемблирование. — СПб.: БХВ-Петербург, 2006. — 464 с. — ISBN 5-94157-677-3
  2. Вычислительная техника и программирование. / Под ред. А.В. Петрова – М.: Высш. шк., 1990.
  3. Галисеев Г. В. Ассемблер для Win 32. Самоучитель. — М.: Диалектика, 2007. — С. 368
  4. Ирвин Кип. Язык ассемблера для процессоров Intel, 3-е изд.: Пер. с англ. – М.: Изд. Дом "Вильямс", 2002. – 616 с.
  5. Калашников О. А. Ассемблер? Это просто! Учимся программировать. — БХВ-Петербург, 2011. — С. 336. — ISBN 978-5-9775-0591-8.
  6. Колин К.К. Фундаментальные основы информатики: Социальная информатика: Учеб. 4. Острейковский В.А. Информатика: Учеб. Для техн. Направлений и специальностей вузов / В.А. Острейковский. – М.: Высш. Шк., 2001пособие для вузов / К.К. Колин. – М.: Акад. Проект: Деловая кн., 2000.
  7. Малютин Э.А. Языки программирования. – М.: Просвещение, 1982.
  8. Учебное пособие по курсам "Основы программирования", "Информатика и вычислительная техника". М., "ABF", 1996.
  9. Ю. Шафрин Основы компьютерной технологии. – М.: ABF, 1996.
  10. Юров В. Assembler: практикум. – СПб: Питер, 2001. – 400 с.

 

Просмотров работы: 266