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

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) Вывод – эта процедура вывода текстовых сообщений.


Страница: