Разработка ассемблерной программы вычисления специальной функцииРефераты >> Программирование и компьютеры >> Разработка ассемблерной программы вычисления специальной функции
1 Введение
Распространение процессоров выявило необходимость изучения языка Ассемблер для написания программ для персональных ЭВМ из-за двух причин. Во-первых, программы, написанные на языке Ассемблер, требуют значительно меньшего объема памяти и ресурсов компьютера. Во-вторых, знание языка Ассемблер и машинного кода дает понимание архитектуры машины. А знание архитектуры машины и принципов ее работы дает возможность усовершенствовать написанные программы и повысить их быстродействие за счет применения некоторых специальных методов программирования.
Программы на языке ассемблера также переводятся в машинный код с помощью программы-транслятора, называемой ассемблером. Вопреки этому сходству с другими языками, ассемблер не является языком ни высокого, ни низкого уровня - он занимает некоторое промежуточное положение. Основное отличие между языком ассемблера и языками высокого уровня состоит в том, что операторы C или Pascal обычно переводятся в целые наборы машинных кодов, а команды ассемблера непосредственно преобразуются в соответствующий машинный код. Существуют свои достоинства у каждого языка, однако только на языке ассемблера можно писать программы, напрямую используя множество команд процессора.
Почему нельзя разрабатывать программы непосредственно в машинных кодах, если язык ассемблера и машинный код однозначно соответствуют один другому? Ответ прост: машинный код слишком громоздкий. Хотя первые программы для компьютеров действительно писались в машинном коде, сегодня по веским причинам это практически не делается. Например, многие машинные коды зависят от относительного положения в памяти. Кроме того, в чисто машинном коде не используются именованные и нет возможности указать программе фиксированные адреса, по которым содержатся различные значения и подпрограммы. Это означает, что если вы измените одну команду 10000-байтовой программе на машинном коде, то, возможно, вам придётся модифицировать кроме этого ещё 9000 других кодов!
2 Постановка задачи
Разработать программу на языке Assembler, которая вычисляет значения функции в пределах от x=1 n при изменении x с шагом H.
Код для выполнения арифметических операций двоичный.
Формат исполняемого модуля: com
Программа оформляется в виде законченного программного модуля который должен выполнять следующее функции:
1. Вывод сообщения о начале работы программы (назначение программы, разработчик)
2. Вывод приглашения для ввода исходных данных.
3. Ввод исходных данных с клавиатуры.
4. Предусмотреть обработку ошибок.
5. Выполнение заданной функции.
6. Вывод результатов на экран или в файл.
Процесс создания программы включает в себя следующие этапы:
1) Постановка задачи.
2) Методы решения задачи.
3) Разработка структур данных.
4) Разработка алгоритмов решения.
5) Разработка программы.
6) Отладка программы.
7) Оформление технической документации к программе
3 Метод решения задачи
На курсовом проектировании необходимо создать программу на языке Assembler ,выполняющую следующие операции: ввод данных с клавиатуры, вычисление заданной функции и вывод результата.
Для реализации поставленной задачи необходимо составить алгоритм программы, учитывающий как специфику программы, так и специфику языка программирования.
Программу необходимо написать по процедурному принципу, для уменьшения ее размера, а также для удобства и быстроты изменения самой программы.
Для описания данных создадим сегмент данных, в котором укажем имена переменных и их типы.
Необходимо предусмотреть следующие процедуры, реализующие следующие операции: Вывод (сообщений и результатов), Ввод (с клавиатуры), Обработка ошибок, Вычисление функции, процедура работы с экраном.
4 Разработка состава исходных, промежуточных и выходных данных
В программе используются следующие типы данных:
Таблица 1
Обозначение |
Тип |
Назначение |
T0 - T16 |
db(1 байт) |
Константы, содержат текст выводимого на экран сообщения |
A, B, C, Y, X1, Xn, h, pause |
db(1 байт) |
Переменные предназначенные для записи символов набранных с клавиатуры |
ascii |
dw(2 байта) |
Память для ASCII-кодов используется программой для хранения преобразованных значений |
mn |
dw(2 байта) |
Константа, множитель для вычисления ASCII кодов |
Ak, Bk, Ck, Yk, X1k, Xnk, xni, hk, cods |
dw(2 байта) |
Переменные для хранения переведённых значений в виде ASCII кодов |
Cur,cuy |
dw(2 байта) |
Переменные для хранения координат курсора |
rez1 – rez4, rezf |
dw(2 байта) |
Переменные для хранения промежуточных результатов вычисления |
5 Разработка алгоритма решения задачи
Алгоритм решения поставленной задачи мы будем разрабатывать по процедурному принципу. Алгоритм решения задачи можно представить следующим образом:
1. Вывод сведений о программе.
2. Организация ввода данных.
3. Обработка данных (кодирование и декодирование ASCII кодов).
4. Проверка на ошибки.
5. Вычисление функции.
6. Обработка данных (перевод результата в форму для вывода)
7. Вывод результатов на экран.
8. Завершение работы программы.
Результатом выполнения данной части курсовой работы является блок-схема программы, приведенная в Приложении А и Приложении Б
6 Описание программы
Программа состоит из :
1) Главная часть – эта часть программы, которая организует пользовательский интерфейс, также она объединяет все процедуры используемые в программе.
2) (inp)Ввод – это процедура ввода всех переменных.
Заполнение происходит следующим образом:
Ввод A Ввод B Ввод C Ввод y Ввод X1 Ввод Xn Ввод Xn Введите шаг H
3) (oput) Вывод – эта процедура вывода текстовых сообщений.