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

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

РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ ASSEMBLER.

Пестова К.В. 1
1Государственное автономное профессиональное образовательное учреждение Саратовской области "Балаковский политехнический техникум"
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Главной задачей выполнения данной курсовой работы является получение практических навыков работы программирования на языке ассемблера. Стремительное развитие вычислительных и компьютерных наук стало началом открытия более новых разновидных знаковых систем для записи алгоритмов– языков программирования. На сегодняшний день в распоряжении программистов большое количество языков программирования, которые считаются гораздо проще Ассемблера, но, его знание и умения на нем программировать никогда не будут излишними. Это можно подтвердить следующими моментами:

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

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

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

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

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

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

Выделяют четыре основных этапа развития вычислительной техники:

1) Домеханический — с 40—30-го тысячелетия до нашей эры

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

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

2) Механический— с середины XVII века

Под механическим вычислительным устройством подразумевается устройство, построенное на механических составляющих и обеспечивающее автоматическую передачу из низшего разряда в высший. Первый арифмометр, точнее «суммирующая машина», был изобретен Леонардо да Винчи (Leonardo da Vinci, 1452–1519) приблизительно 1500 года. Изображение данного прибора было обнаружено только в 1967 году, и по нему фирма IBM воссоздала вполне работоспособную 13-разрядную суммирующую машину, в которой применено правило10-зубых колес.

Десятью годами раньше в следствие исторических изысканий в Германии были обнаружены чертежи и описание арифмометра, выполненные в 1623 году Вильгельмом Шиккардом (Wilhelm Schickard, 1592–1636), профессором математики университета в Тюбингене. Это была весьма «продвинутая» 6-разрядная машина, заключавшая в себе три узла: устройства сложения-вычитания, множительного устройства и блока записи промежуточных результатов.

Традиционным инструментом механического вида считается арифмометр (устройство для выполнения четырёх арифметических действий), изобретённый Готфридом Лейбницем (Gottfried Leibniz, 1646–1716) в 1673 году. Приобретенная в следствии напряженного поиска 8-разрядная модель имела возможность складывать, вычитать, умножать, делить, возводить в степень. Результат умножения и деления имел 16 знаков.

Пионером серийного изготовления счетных машин стал эльзасец Шарль-Ксавье Тома де Кольмар (Charles-Xavier Thomas de Colmar, 1785–1870). Введя в модель Лейбница ряд эксплуатационных усовершенствований, он в 1821 году начинает выпускать в своей парижской мастерской 16-разрядные арифмометры, которые получают признание как «томас-машины».

В 1875 году Однер сконструировал свой первый арифмометр, права на производство которого передал машиностроительному заводу «Людвиг Нобель». Спустя 15 лет, став собственником мастерской, Вильгодт Теофилович налаживает в Петербурге выпуск новой модели арифмометра, которая преимущественно отличается от существовавших на тот момент счетных машин компактностью, надежностью, простотой в обращении и значительной производительностью.

Однако предшественником современных электронно-вычислительных машин (ЭВМ) считается аналитическая машина Чарльза Бэббиджа. Проект аналитической машины, представляющей собой цифровую вычислительную машину с программным управлением, был предложен Бэббиджем в 30-е годы XIX века. А в 1843 году для этой машины была сформирована первая достаточно сложная машинная программа: программа вычислений чисел Бернулли, составленная Адой Лавлейс. Оба эти достижения были феноменальными. Они более чем на столетие превзошли своё время.

3) Электромеханический — с 90-х годов XIX века

Электромеханический период развития ВТ был наименее продолжительным и включал в целом приблизительно 60 лет — от первого табулятора Германа Холлерита (1887 год) до первой ЭВМ ЕNIАС (1945 год). Предпосылками создания проектов данного этапа явились как потребность выполнения многочисленных расчетов (экономика, статистика, руководство и планирование и другое), так и развитие прикладной электротехники (электропривод и электромеханические реле), позволившие создавать электромеханические вычислительные устройства.

Первый счетно-аналитический комплекс был создан в Соединенных Штатах Америки Г. Холлеритом в 1887 г. и заключался ручном перфораторе, сортировочной машине и табуляторе. Последним же крупным проектом следует считать созданную в 1957 году в Союзе Советских Социалистических Республик релейную вычислительную машину (РВМ-1) и эксплуатирующуюся вплоть до окончания 1964 года преимущественно для решения экономических задач. К примеру, на ней производился перерасчет цен на товары в связи с валютной реформой 1961 года.

4) Электронный — со второй половины 40-х годов XX века[5].

Электронный этап можно разбить на поколения ЭВМ.

ЭВМ первого поколения в качестве элементной базы использовали электронные лампы и реле; оперативная память выполнялась на триггерах, позднее на ферритовых сердечниках; быстродействие было, как правило, в пределах 5—30 тыс. арифметических оп/с; они отличались невысокой надежностью, требовали систем охлаждения и имели значительные габариты. Процесс программирования требовал значительного искусства, хорошего знания архитектуры ЭВМ и ее программных возможностей. На первых порах данного этапа использовалось программирование в кодах ЭВМ (машинный код), затем появились автокоды и ассемблеры.

Второе поколение начинается с ЭВМ RCA-501, появившейся в 1959 г. в США и созданной на полупроводниковой элементной базе. Между тем, еще в 1955 г. была создана бортовая транзисторная ЭВМ для межконтинентальной баллистической ракеты ATLAS. Новая элементная технология позволила резко повысить надежность ВТ, снизить ее габариты и потребляемую мощность, а также значительно повысить производительность.

Третье поколение связывается с появлением ЭВМ с элементной базой на интегральных схемах (ИС). Значительно более мощным становится программное обеспечение, обеспечивающее функционирование ЭВМ в различных режимах эксплуатации. Появляются развитые системы управления базами данных (СУБД), системы автоматизирования проектных работ (САПР); большое внимание уделяется созданию пакетов прикладных программ (ППП) различного назначения. По-прежнему появляются новые и развиваются существующие языки и системы программирования.

Конструктивно-технологической основой ВТ 4-го поколения становятся большие (БИС) и сверхбольшие (СБИС) интегральные схемы, созданные соответственно в 70—80-х годов. Такие ИС содержат уже десятки, сотни тысяч и миллионы транзисторов на одном кристалле (чипе). Наиболее важный в концептуальном плане критерий, по которому ЭВМ 4-го поколения можно отделить от ЭВМ 3-го поколения, состоит в том, что первые проектировались уже в расчете на эффективное использование современных ЯВУ и упрощения процесса программирования для проблемного программиста. В аппаратном отношении для них характерно широкое использование ИС-технологии и быстродействующих запоминающих устройств. Первым ПК можно считать Altair-8800, созданный на базе микропроцессора Intel-8080 в 1974 г. Первой ЭВМ, открывающей собственно класс супер - ЭВМ, можно считать модель Amdahl 470V16, созданную в 1975 г. и совместимую с IBM-серией. Машина использовала эффективный принцип распараллеливания на основе конвейерной обработки команд, а элементная база использовала БИС-технологию.

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

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

- шина данных (по ней передается информация);

- шина адреса (на ней устанавливается адрес необходимой ячейки памяти или устройства, с которым будет происходить обмен информацией;

- шина управления (контролирует весь процесс передачи данных).

Рисунок 1 – «Модульно – магистральный принцип построения ЭВМ»

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

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

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

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

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

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

Внешние устройства к шинам подключаются средствами интерфейса[4].

Чтобы устройства, которые входят в структуру компьютера, имели возможность взаимодействовать с центральным процессором, в IBM-совместимых компьютерах предусмотрена система прерываний (Interrupts).

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

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

- арифметическо - логическое устройство (АЛУ), выполняющее арифметические и логические операции;

- управляющее устройство (УУ), организующее процесс выполнения программ;

- внешнее запоминающее устройство (ВЗУ), или память, для хранения программ и данных;

- оперативное запоминающее устройство (ОЗУ);

- устройства ввода и вывода информации (УВВ).

Рисунок 2 – «Схема классической архитектуры ЭВМ»

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

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

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

Современный компьютер состоит из:

- системный блок: блок питания, корпус, материнская плата, процессор, жесткий диск, оперативная память, видеоадаптер, звуковой адаптер, приводы дисков, внутренний модем, ТВ/FM-тюнер, шлейфы, кабели для подключения и связи устройств между собой и так далее;

- монитор;

- мышь;

- клавиатура;

- периферийные устройства.

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

Электронные вычислительные машины делятся на три класса: аналоговые (Аналоговые вычислительные машины), гибридные (Гибридные вычислительные машины) и цифровые (Цифровые вычислительные машины).

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

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

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

Цифровые ВМ – вычислительные машины дискретного действия, они работают с таким видом информации, как дискретная или цифровая.

Так же ЭВМ классифицируются по этапам создания и делятся на поколения:

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

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

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

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

- V поколение (90-е годы) - ЭВМ с несколькими десятками микропроцессоров, которые работают параллельно, которые позволяют строить результативные системы обработки знаний; так же ЭВМ с параллельно-векторной структурой на сверхсложных микропроцессорах. Они одновременно выполняют десятки последовательных команд программы;

- VI и пoследующие поколения; оптоэлектронные ЭВМ с массовым параллелизмом и нейтронной структурой – с распределенной сетью большого числа (десятки тысяч) несложных микропроцессоров, моделирующих архитектуру нейтронных биoлогических систем.

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

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

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

Универсальные ЭВМ имеют характерные черты:

1) большая емкость оперативной памяти;

2) высокая производительность;

3) различные виды системы ввода-вывода информации для подключение разнообразных видoв внешних устройств;

4) умение обрабатывать различный формат данных: двоичных, десятеричных, символьных, при большом диапазоне их изменения и высокой степени их представления;

5) большой список выполняемых операций: логических, арифметических, а также специальных.

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

К ЭВМ проблемно - ориентированного назначения можно отнести всевозможные управляющие вычислительные системы.

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

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

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

Графические станции - специализированные мини – ЭВМ, направленные на работу с графикой.

Файловые серверы - специализированные ЭВМ которые связывают компьютеры на предприятии в одну сеть.

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

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

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

- постановка задачи и составление проекта программы;

- создание файла с текстом программы с помощью текстового редактора;

- трансляция программы с помощью ассемблера, при обнаружении ошибок удобнее исправить их в текстовом редакторе и оттранслировать снова;

- преобразование результата работы ассемблера в исполняемый модуль с помощью компоновщика;

- запуск написанной программы на исполнение;

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

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

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

Решение данной задачи выполнено в среде Microsoft Visual Studio 2010.

Ниже представлена блок – схема, которая представляет собой процесс выполнения поставленной задачи и четко показывает все этапы ее выполнения. Она является системой графических символов (блоков) и линий переходов (стрелок) между ними.

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

#include "stdafx.h"

#include

#include

#include

#include

#include

#include

void main()

{

srand (time(NULL));

setlocale(0,"rus");

int a[10],i=0,b[10],d[10],suma,c[5];

while(i

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