У вас вопросы?
У нас ответы:) SamZan.net

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

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 8.6.2025


Лабораторная работа  №1.  Простые вычисления

Вариант 4

Задание

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

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

  1.  номер заданного варианта и его исходные данные;
  2.  алгоритм программы;
  3.  текст программы на языке ассемблера;
  4.  текст программы в машинных кодах (результаты трансляции);
  5.  результаты выполнения контрольного примера (в шестнадцатеричной и десятичной форме).

Решение

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

Z=min{|A*X-Y+B|, 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 байт.

Первая команда LXI H, 8300H трехбайтная и занимает три ячейки памяти, причем во второй ячейке размещается младший байт, а в третьей – старший байт числа 8300H. Далее следуют две однобайтные команды, потом – двухбайтная команда ADI CH1, занимающая ячейки 8205H и 8206H, причем во второй ячейке размещается константа CH1=17=11H. Далее опять следует однобайтная команда и т.д.

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

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

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

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

При X1=-16=F1,   

При X2=25=2F,

При Y1,2=-24=C6          

A=3; B=14; C=58

Адрес X = 8301H

Адрес Y = 8300H

                                                                                                                                                                                                              ЛИСТИНГ ТРАНСЛЯЦИИ ПРОГРАММЫ

LXIH  8301                                  8301  21 00 84

MOV  A,M                                   8302  7E

ADD   A                                        8303  87

ADD   M                                       8304  86

MOV  B,A                                    8305  47

LDA   8300H                                8306  3A 0A 83

SUD   B                                        8307  90                        

JP       ADR1                                 8308  F2

CMA                                             8309  3C

INR    A                                        830A  B8

ADR1:ADI 14 CPI 58                  830B  C6 11 83

JP        ADR2                                830C  FE

MOV  M,A                                    830F 830E

JMP    FIN                                     8310  C3 12 83

ADR2:MVI M58                           8311  36

FIN     HLT                                    8312  76  

         

начало    

    ↓

8301 H,L

     ↓

M(H,1>)>→A

      ↓

<A>+<A>→A

      ↓

         <A>+J→A

      ↓

<A>→B

      ↓

<M(8300)>→A

      ↓

<A>-0→A

      ↓

<A> <=0?

<A>→A                                  

      ↓

<A>-1→A

      ↓

<A> <=<B>?

      ↓

<B>→M(<H,L>)

      ↓

<A>M(<H,L>)

      ↓

   конец




1. на тему- Влияние внешней среды на финансовое благополучие конкретных компаний Выполнил- Студент
2. Производственный менеджмент и перспективы его развития
3. Экологическое право. Шпаргалка
4. ТЕМА - Формывиды и системы оплаты труда
5. Контрольная работа- Психологические школы менеджмента
6. Байок Скай1 можно было увидеть спокойно прогуливающегося индийского слона ведомого погонщиком
7. ВВЕДЕНИЕ Становление глобального мира характеризуется сочетанием культурной политической экономичес
8. лист на надувные лодки Наименование Вес кг
9. тема Глобальной ошибкой большевиков было то что они угадав чаяния народа иначе они бы не победили в граж
10. 158. Демократия как мы видели выше предполагает существование конкурирующих друг с другом партий ~ для е