Простые вычисления

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

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 13.11.2013
Размер файла 69,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Лабораторная работа

Простые вычисления

Задание: Написать на языке ассемблера микропроцессора КР580ВМ80А программу, реализующую вычисления по заданному арифметическому выражению. Оттранслировать программу в машинные коды и выполнить ее отладку на УОУ “Электроника-580”. Значения исходных переменных Х и Y (для выполнения контрольного примера) в таблице заданий представлены в десятичной форме, перед выполнением программы они размещаются в ОЗУ по указанным в шестнадцатеричной форме адресам. Результат выполнения программы Z также заносится в ОЗУ по указанному адресу.

Отчет по лабораторной работе должен содержать:

- номер заданного варианта и его исходные данные;

- алгоритм программы;

- текст программы на языке ассемблера;

- текст программы в машинных кодах (результаты трансляции);

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

Решение: Необходимо составить программу, реализующую следующую функцию:

Z = max{[A * X - B] / (Y + C)}

Так как ассемблер является языком низкого уровня, то есть, его команды оперируют непосредственно со структурными элементами микропроцессорной системы, программист перед началом составления программы вычислений должен знать, в какой форме будут представлены входные и выходные переменные, по каким адресам ОЗУ они будут размещены. Из задания к лабораторной работе видно, что исходные переменные X, Y и результат вычислений Z являются числами со знаком, поэтому они представляются в дополнительном коде. Длина их не превышает одного байта. Расположим переменные Х и Y в ОЗУ по адресам 8300Н и 8301Н соответственно. Результат Z после окончания вычислений разместим в ОЗУ по адресу 8300Н, т. е., на месте исходной переменной X.

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

Адрес 8300Н используется в ходе выполнения программы несколько раз, сначала - для считывания переменной Х, а после окончания вычислений - для занесения значения Z. Поэтому для упрощения обращения к ячейке памяти с этим адресом занесем его в регистровую пару HL, наиболее удобную для организации косвенной регистровой адресации.

Умножение на целое число в функции реализуется путем многократного сложения.

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

После составления алгоритма записывается соответствующая программа на языке ассемблера. Полученные алгоритм решения задачи и текст программы с необходимыми комментариями приведены ниже. Команды, на которые в программе есть переходы, помечены метками ADR1, ADR2 и FIN. При отладке программы на УОУ “Электроника-580” завершающей программу командой является RST 4, которая выполняет функцию “возврат к монитору”.

Получение машинных кодов команд программы при работе на УОУ “Электроника-580” осуществляют вручную с помощью таблицы команд. Альтернативный вариант трансляции - использование программы кросс-ассемблера AVMAC85.

Листинг трансляции рассматриваемой программы также приведен ниже. В нем показан пример введения и использования символьной константы CH1, которой присваивается с помощью команды транслятора EQU значение 17. Начальный адрес размещения рассматриваемой программы в памяти программ отладочного устройства определяется равным 8200H с помощью команды транслятора ORG. Длина полученного кода программы составляет 28 байт.

Первая команда LXIH, 8300H трехбайтная и занимает три ячейки памяти, причем во второй ячейке размещается младший байт, а в третьей - старший байт числа 8300H. Далее следуют две однобайтные команды, потом - двухбайтная команда ADICH1, занимающая ячейки 8205H и 8206H, причем во второй ячейке размещается константа:

Далее опять следует однобайтная команда и т. д.

В командах переходов при трансляции вместо символических адресов - меток подставляются соответствующие им конкретные физические адреса памяти - 8212H, 821AH и 821BH.

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

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

Отладка программы может быть также выполнена с помощью отладчика-симулятора AVSIM85.

Для рассмотренной программы были получены следующие результаты:

При:

При:

Далее:

Адрес X = 8300H;

Адрес Y = 8301H;

Адрес Z = 8301H.

Приложение

СХЕМА - ЛИСТИНГ ТРАНСЛЯЦИИ ПРОГРАММЫ:

Размещено на Allbest.ru


Подобные документы

  • Типы команд, синтаксис ассемблера и код операции, по которому транслируется команда. Команды вычисления и непосредственной пересылки данных между регистрами. Поле для определения операции вычисления. Управление последовательностью выполнения программы.

    реферат [29,1 K], добавлен 13.11.2009

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

    курсовая работа [568,3 K], добавлен 07.03.2015

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

    контрольная работа [148,1 K], добавлен 08.11.2013

  • Разработка программы вычисления выражения y = (x+10)5. Ход работы, структурная схема алгоритма. Окна основных обозревателей системы, текстовый редактор. Интерфейс модели ЭВМ, методы ввода и отладки программы, действия основных классов команд, адресация.

    лабораторная работа [523,4 K], добавлен 28.12.2014

  • Особенности ассемблера - машинно-ориентированного языка низкого уровня, применяемого для создания простых приложений. Связывание программ на разных языках. Типичный формат записи команд, инструкции и директивы языка ассемблера. Разработка игры "Змейка".

    курсовая работа [215,0 K], добавлен 20.07.2014

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

    курсовая работа [486,3 K], добавлен 14.12.2012

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

    курсовая работа [54,8 K], добавлен 27.10.2010

  • Разработка MatLab-программы для анализа вычислительной и методической погрешностей целочисленного алгоритма. Теоретические основы таблично-алгоритмического метода. Проектирование подпрограммы вычисления элементарной функции на языке Ассемблер IBM PC.

    курсовая работа [296,9 K], добавлен 13.03.2013

  • Написание программы для вычисления функции f(x), изображенной на графике, используя оператор if. Построение графика функции. Составление программы, вычисляющей сумму 101 из последовательно расположенных нечетных чисел. Нахождение корней системы уравнений.

    контрольная работа [694,4 K], добавлен 07.08.2013

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

    курсовая работа [1,5 M], добавлен 29.02.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.