1) Написать программу, реализующую заданную формулу. Варианты задания приведены в табл.1. В ней в качестве источников данных и приемника результатов выступают:
Ø B, C, D, E, H, L – регистры общего назначения (РОНы) микропроцессора (МП),
Ø ячейка памяти с адресом, обозначенным 4-значным шестнадцатеричным числом вида 0В5ЕН,
Ø внешнее устройство с адресом, обозначенным 2-значным шестнадцатеричным числом вида 05Н.
2) Перевести заданные значения переменных a, b и с из десятичного кода в 8-разрядный двоичный код (письменно).
3) Выполнить по действиям все вычисления по заданной формуле. В каждом действии написать значения всех признаков операции.
4) Записать в шестнадцатеричном коде содержимое аккумулятора (А) и регистра признаков (F) после завершения программы.
Таблице 1
№ варианта
Формула
вычисления
Начальный адрес
программы
Источники данных
Приемник
результата
Значения переменных в десятичном коде
a
b
c
a
b
c
(a Å 4210) + (b -5510) & c
083AH
B
C
0B5CH
0B26H
Формулировка задания.
Написать программу, реализующую формулу (a Å 4210) + (b -5510) & c. Переменная а хранится в РОНе В, b - в РОНе С, с – в ячейке памяти с адресом 0В5СН. Результат вычислений нужно сохранить в ячейке памяти с адресом 0В26Н.
Решение
1) Программа, реализующая данное вычисление, приведена в табл. 2
В первую очередь заполняются поля «Мнемокод» и «Комментарий». Комментарии должны пояснять, каким образом команды микропроцессора выполняют конкретную задачу.
Поле «Метка» для линейных программ остается свободным.
Поле «Машинный код» заполняется по приложению 1 [1, стр. 13], где приведены коды всех операций команд МП. В этом же поле «Машинный код» записываются коды второго и третьего байтов команды (если они есть).
В поле «Адрес» записываются адреса ячеек памяти, в которых хранится программа. В рассматриваемом варианте начальный адрес программы равен 083АН, поэтому код первой команды MOV A, С, равный 79Н, записывается по этому адресу. Эта команда однобайтная, занимает в памяти одну ячейку. Поэтому следующая команда SUI 37H записывается, начиная с адреса 083ВН. Она двухбайтная, поэтому занимает две соседние ячейки памяти с адресами 083ВН, 083СН.
Таблица 2
Программа для решения
Адрес
Машинный
код
Метка
Мнемокод
Комментарий
083A
MOV A,С
;b →А
083B
D6 37
SUI 37H
;A - 5510 → A
083D
21 5C 0B
LXI H, 0B5CH
;адрес числа c → HL
A6
ANA M
;A&M → A
32 26 0B
STA 0B26H
;перенос промежуточного результата в зад. приемник
21 26 0B
LXI H, 0B26H
;адрес результата → HL
MOV A,В
;а →А
EE 2A
XRI 2AH
;a Å 4210
084A
084B
32 26 0B
ADD M
STA 0B26H
;x2 + x3→ A
; перенос результата в заданный приемник
084E
CF
RST1
;Конец программы.
2) В соответствии с вариантом задания а=16110=101000012=А1Н; b=15010=100101102=96H; с=5010=001100102=32H.
3) Первое действие: x1= b - 5510.
← изменение уменьшаемого в результате займа
-
Содержимое аккумулятора
Признаки результата данной операции: C=0; S=0; AC=0; Z=0; P=1.
Второе действие: x2= x1 & с.
&
Содержимое аккумулятора
Признаки результата данной операции: C=0; S=0; AC=0; Z=0; P=1.
Третье действие: x3 =а Å 4210.
Å
Содержимое аккумулятора
Признаки результата данной операции: C=0; S=1; AC=0; Z=0; P=1.
Четвертое действие: x2 + x3.
← перенос
+
Содержимое аккумулятора
Признак переноса
Признаки результата данной операции: C=0; S=1; AC=0; Z=0; P=0.
5) После выполнения программы содержимое аккумулятора (А)=9DН, содержимое регистра признаков записывается в соответствии с его форматом S Z 0 AC 0 P 1 C (F)=100000102=82Н.
Реализация программы в симуляторе КР580ВМ80
Библиографический список
1. И.В. Музылева Контрольные задания по временным диаграммам команд по разделу "Система команд МП КР580ВМ80". ЛМК, 2003г.
2. Р. Токхайм Микропроцессоры: Курс и упражнения/ Пер. с англ., под ред. В.Н.Грасевича. М.: Энергоатомиздат, 1988.
3. Микро-ЭВМ / Пер. с англ. Под ред А.Дирксена. - М.: Энергоиздат,1982.