- •Методические указания по выполнению работ
- •Лабораторная работа №1 Перевод машинных кодов в ассемблер и обратно. Цель работы
- •Ход работы
- •Лабораторная работа №2 Команды пересылки данных между аккумулятором и регистрами памяти. Цель работы
- •Ход работы
- •Подайте на стенд питание или запустите электронную модель.
- •Подайте на стенд питание или запустите электронную модель.
- •Подайте на стенд питание или запустите электронную модель.
- •Подайте на стенд питание или запустите электронную модель.
- •Лабораторная работа №6 Косвенная адресация в мпк 1816ве31. Цель работы
- •Ход работы
- •Подайте на стенд питание или запустите электронную модель.
- •Лабораторная работа №7 Работа регистра флагов в мпк 1816ве31.
- •Подайте на стенд питание или запустите электронную модель.
- •Лабораторная работа №8 Изучение арифметических операций.
- •Подайте на стенд питание или запустите электронную модель.
- •Лабораторная работа №9 Изучение логических операций и операций сдвига Цель работы
- •Ход работы
- •Подайте на стенд питание или запустите электронную модель.
- •Подайте на стенд питание или запустите электронную модель.
- •Подайте на стенд питание или запустите электронную модель.
Ввод заданной программы в память
Согласно вашему варианту (таблица 2 – начальная ячейка, таблица 3 – программный код) перевести программный код в машинные коды
Результаты перевода занести в таблицу
Перевод ассемблера в программный код
№пп |
Команда |
Номер ячейки |
Код |
|
|
adc R2 |
0000 |
3А |
|
|
xrl @R0 3A |
0001 |
67 |
|
|
0002 |
3А |
|
|
|
jmp B493 |
0003 |
02 |
|
|
0004 |
В4 |
|
|
|
0005 |
93 |
|
… |
|
… |
… |
Ввести данные в память и предоставить результат преподавателю
Оформить отчет
Отчет
В отчете необходимо:
указать цель работы
привести все заполненные таблицы с заголовками
сделать вывод о необходимом количестве ячеек для представления различных команд
Таблица 1
вариант |
ячейка |
вариант |
ячейка |
вариант |
ячейка |
вариант |
ячейка |
1 |
0023 |
6 |
005B |
11 |
0082 |
16 |
00A3 |
2 |
0030 |
7 |
0065 |
12 |
008A |
17 |
00B6 |
3 |
0040 |
8 |
006B |
13 |
0094 |
18 |
00BC |
4 |
0049 |
9 |
0073 |
14 |
009D |
19 |
00C2 |
5 |
0051 |
10 |
007A |
15 |
00A6 |
20 |
00CD |
Таблица 2
вариант |
ячейка |
вариант |
ячейка |
вариант |
ячейка |
вариант |
ячейка |
1 |
1100 |
6 |
1600 |
11 |
1В00 |
16 |
1280 |
2 |
1200 |
7 |
1700 |
12 |
1С00 |
17 |
1380 |
3 |
1300 |
8 |
1800 |
13 |
1D00 |
18 |
1480 |
4 |
1400 |
9 |
1900 |
14 |
1F00 |
19 |
1580 |
5 |
1500 |
10 |
1А00 |
15 |
1180 |
20 |
1680 |
Таблица 3
1 |
jmp 175C |
8 |
ani 07 |
15 |
movx A,@DPTR |
xrl R3 |
mov 60,R4 |
cjne A 55,13 |
|||
mvi R1,07 |
mov R4,A |
cpl A |
|||
movx @DPTR,A |
mov DPTR, 00BF |
movx @DPTR,A |
|||
mov DPTR,A3DF |
mov C A,@A+DPTR |
mov DPTR, 10FD |
|||
2 |
anl R3 |
9 |
ani 1F |
16 |
movx A,@DPTR |
cjne A AA,0D |
ret |
dcr R6 |
|||
jc 50 |
sbb A,FF |
jb bit,E7 |
|||
mov C A,@A+PC |
movx @DPTR,A |
dcr C3 |
|||
mov DPTR,1778 |
mov DPTR,A3DF |
mvi A0,84 |
|||
3 |
mvi 81,30 |
10 |
clr A |
17 |
sbb R7 |
nop |
mvi A0,84 |
inr DPTR |
|||
mov DPTR,A3DF |
mvi R0,01 |
jz 04 |
|||
mvi R7,08 |
mov DPTR, 00BF |
mov C A,@A+DPTR |
|||
mov A,R1 |
mov C A,@A+DPTR |
mov DPTR,A3DF |
|||
4 |
anl R6 |
11 |
mvi A,90 |
18 |
push E0 |
mvi R1,77 |
movx A,@R0 |
inr DPTR |
|||
movx @DPTR,A |
mov C A,@A+DPTR |
clr A |
|||
cjne A 18,E5 |
mvi R6,06 |
mov C A,@A+DPTR |
|||
jnb bit,10 |
mov DPTR, 1000 |
call 6101 |
|||
5 |
orl R6 |
12 |
pop 83 |
19 |
inr DPTR |
jbc bit,4D |
clr A |
jmp F2 |
|||
inr DPTR |
jmp @A+DPTR |
movx A,@R0 |
|||
mov DPTR,A3DF |
mov DPTR, 00BF |
mov DPTR,A3DF |
|||
xrl R6 |
inr DPTR |
clr A |
|||
6 |
sbb R6 |
13 |
pop 82 |
20 |
movx A,@R0 |
jb bit,B2 |
movx @R0,A |
nop |
|||
mov A,R0 |
djnz R6,FA |
djnz R0,00 |
|||
movx @DPTR,A |
clr A |
movx A,@DPTR |
|||
mvi A0,84 |
mov DPTR, 10FD |
cjne A 55,13 |
|||
7 |
mov A,83 |
14 |
movx A,@DPTR |
|
|
ret |
mov R0,A |
|
|||
mov DPTR,A3DF |
mvi A,55 |
|
|||
mvi R0,01 |
movx @DPTR,A |
|
|||
movx A,@R0 |
mvi 81,30 |
|
Лабораторная работа №2 Команды пересылки данных между аккумулятором и регистрами памяти. Цель работы
Изучить выполнение команд пересылки данных между аккумулятором и регистрами.
Ход работы
Подайте на стенд питание или запустите электронную модель.
Измените содержимое аккумулятора и выбранного вами регистра (данные в аккумуляторе и регистре должны быть различными, это достигается изменением содержимого аккумулятора или выбранного регистра)
Записать введенные данные в тетрадь
Смоделируйте команду пересылки согласно приведенному примеру
Необходимо выполнить А→R0
Пересылку осуществляет команда mov
Перед запятой ставим куда пересылать (R0)
После запятой ставим откуда пересылать (A)
Итого получилась команда mov R0,A
По таблице находим код команды F8
Выбрать рабочую ячейку памяти (в диапазоне 1000 – 2FFF), например 1563
Записать в память 1563 F8
Выполнить записанную команду.
Результаты занесите в таблицу, согласно примеру (указывать свой рабочий регистр!)
Пересылка данных из аккумулятора в регистр R0
№пп |
ассемблер |
действия |
содержимое |
|||
до пересылки |
после пересылки |
|||||
аккумулятора |
регистра |
аккумулятора |
регистра |
|||
|
|
mov R0,A |
R0=A |
А9 |
4F |
A9 |
A9 |
Аналогично выполнить пересылку данных из регистра в аккумулятор с моделированием команды и заполнением таблицы.
Оформить отчет и представить преподавателю
Отчет
В отчете необходимо:
указать цель работы
привести моделирование команд
привести все заполненные таблицы с заголовками
сделать вывод о байтности команд пересылки данных между аккумулятором и регистрами.
Лабораторная работа №3 Команды непосредственной загрузки регистров.
Цель работы
Изучить выполнение команд непосредственной загрузки регистров R0 ÷ R7 и аккумулятора.
Ход работы
Подайте на стенд питание или запустите электронную модель.
Смоделируйте команду пересылки согласно приведенному примеру
Необходимо выполнить А=93
Выполняется действие над непосредственным числом, задачу решает команда mvi
Перед запятой ставим куда пересылать (А)
После запятой ставим что пересылать (данные, т.е. #8)
Итого получилась команда mvi A,#8
По таблице находим код команды 74
Выбрать рабочую ячейку памяти (в диапазоне 1000 – 2FFF), например 129А
Записать в память 129А 74 129В 93
Выполнить записанную команду.
Результаты занесите в таблицу, согласно примеру
Непосредственная загрузка данных в регистры
№пп |
ячейка памяти |
машинный код |
ассемблер |
содержимое регистра |
описание |
|
до |
после |
|||||
|
|
129А |
74 |
mvi А,93 |
00 |
93 |
в аккумулятор записывается байт 93 |
|
|
129В |
93 |
||||
Аналогично выполнить непосредственной загрузки данных в выбранный регистр с моделированием команды и заполнением таблицы.
Оформить отчет и представить преподавателю
Отчет
В отчете необходимо:
указать цель работы
привести моделирование команд
привести все заполненные таблицы с заголовками
сделать вывод о байтности команд непосредственной загрузки аккумулятора и регистров.
Лабораторная работа №4 Команды пересылки между регистрами и РПД и непосредственной загрузки РПД.
Цель работы
Изучить выполнение команд пересылки из регистров в ячейки РПД и непосредственной загрузки РПД.
Ход работы
Подайте на стенд питание или запустите электронную модель.
Смоделируйте команду пересылки из регистра в РПД либо из РПД в регистр согласно приведенному примеру
Необходимо выполнить R0→[5A]
Выполняется пересылка из регистра в РПД, задачу решает команда mov
Перед запятой ставим куда пересылать (ad8) в данном случае адрес ячейки памяти
После запятой ставим что пересылать (R0) содержимое регистра R0
Итого получилась команда mov ad8, R0. (в нашем случае mov 5A,R0)
По таблице находим код команды 88
Выбрать рабочую ячейку памяти (в диапазоне 1000 – 2FFF), например 129А
Записать в память 129А 88 129В 5А
Выполнить записанную команду.
Результаты занесите в таблицу, согласно примеру
Пересылку из регистра в РПД
№пп |
адрес |
код |
ассемблер |
регистр / содержимое |
адрес РПД |
содержимое РПД |
описание |
||
до |
после |
||||||||
|
|
129A |
88 |
mov 5A,R0 |
R0 |
DA |
5A |
E4 |
DA |
в ячейку РПД с адресом 5A записываются данные из регистра R0 |
|
|
129B |
5A |
|||||||
Аналогично выполните пересылку из РПД в регистр с заполнением таблицы
Аналогично выполните запись в ячейку РПД непосредственных данных
Оформить отчет и представить преподавателю
Отчет
В отчете необходимо:
указать цель работы
привести моделирование команд
привести все заполненные таблицы с заголовками
сделать вывод о байтности изучаемых команд.
Лабораторная работа №5 Косвенная адресация в МПК 1816ВЕ31.
Цель работы
Изучить работу косвенной адресации в МПК 1816ВЕ31 на примере команд обмена информацией аккумулятора и косвенно адресованной ячейки памяти.
Ход работы
Подайте на стенд питание или запустите электронную модель.
Выполните пересылку данных из аккумулятора в косвенно адресованную ячейку в соответствии с заданием по аналогии с приведенным примером:
Требуется выполнить
Выполняется пересылка из аккумулятора в ячейку памяти, задачу решает команда mov
Перед запятой ставим куда пересылать (@R0) в данном случае косвенно (через регистр R0) адресованная ячейка памяти.
После запятой ставим что пересылать (А) содержимое регистра А
Итого получилась команда mov @R0, A.
По таблице находим код команды F6
Выбрать рабочую ячейку памяти (в диапазоне 1000 – 2FFF), например 129А
Записать в память 129А А6
В регистр R0 занести 6А
Считать перед выполнением команды данные из ячейки РПД 6А. (если данные в нужной ячейке 6А и аккумуляторе совпадают, изменить содержимое ячейки памяти)
Выполнить записанную команду.
Считать данные из 6А
Нарисуйте схему пересылки согласно примеру:
Выполнение команды mov
@R0,
A
Выполните пересылку данных из косвенно адресованной ячейки в аккумулятор в соответствии с заданием по аналогии с приведенным примером:
Нарисуйте аналогичную схему обмена.
Оформить отчет и представить преподавателю
Отчет
В отчете необходимо:
указать цель работы
описать процесс моделирования команды
описать процесс подготовки стенда к выполнению команды с указанием считанной и записанной информации
привести все схемы с заголовками
сделать вывод о том, какие регистры используются для косвенной адресации, какая из предложенных пересылок не может быть выполнена и почему.
Данные по регистрам и ячейкам РПД
№пп |
R |
ЯП1 |
ЯП2 |
№пп |
R |
ЯП1 |
ЯП2 |
№пп |
R |
ЯП1 |
ЯП2 |
№пп |
R |
ЯП1 |
ЯП2 |
|
|
1 |
5А |
87 |
|
1 |
67 |
А9 |
|
1 |
33 |
АА |
|
1 |
0A |
2A |
|
|
0 |
90 |
4F |
|
0 |
В7 |
56 |
|
0 |
ВВ |
44 |
|
0 |
A0 |
4A |
|
|
1 |
12 |
56 |
|
1 |
А5 |
5А |
|
1 |
11 |
77 |
|
1 |
F6 |
1F |
|
|
0 |
67 |
02 |
|
0 |
В3 |
3В |
|
0 |
66 |
FF |
|
0 |
D4 |
4D |
|
|
1 |
89 |
45 |
|
1 |
26 |
11 |
|
1 |
3E |
E3 |
|
1 |
56 |
98 |
|
|
0 |
78 |
А3 |
|
0 |
08 |
7В |
|
0 |
A9 |
6A |
|
0 |
54 |
89 |
Лабораторная работа №6 Косвенная адресация в мпк 1816ве31. Цель работы
Изучить работу косвенной адресации в МПК 1816ВЕ31 на примере команд обмена информацией аккумулятора и непосредственно адресуемой ячейкой РПД с косвенно адресованной ячейки памяти, а также непосредственной загрузки косвенно адресованной ячейки памяти.
Ход работы
Подайте на стенд питание или запустите электронную модель.
Выполните пересылку данных из непосредственно адресованной ячейки РПД в косвенно адресованную ячейку по аналогии с приведенным примером:
Требуется выполнить
Выполняется пересылка из ячейки памяти в ячейку памяти, задачу решает команда mov
Перед запятой ставим куда пересылать (@R0) в данном случае косвенно (через регистр R0) адресованная ячейка памяти.
После запятой ставим что пересылать [37] непосредственно адресованная ячейка РПД
Итого получилась команда mov @R0, 37.
По таблице ищем команду mov @R0, ad8. Код команды A6
Выбрать рабочую ячейку памяти (в диапазоне 1000 – 2FFF), например 129А
Записать в память 129А А6
В регистр R0 занести 2F
Считать перед выполнением команды данные из ячеек РПД 2F и 37. (если данные в ячейках 2F и 37 совпадают, изменить содержимое одной из них). Пусть, для примера, [37]=6А и [2F]=D6
Выполнить записанную команду.
Считать данные из 2F и 37 для проверки верности выполнения команды
Нарисуйте схему пересылки согласно примеру
Выполните команду пересылки данных из косвенно адресованной ячейки РПД в непосредственно адресованную ячейку
Нарисуйте аналогичную схему обмена.
Выполните непосредственную загрузку косвенно-адресованной ячейки РПД.
Также нарисуйте схему обмена
Оформить отчет и представить преподавателю
Выполнение команды mov
@R0, ad8
Отчет
В отчете необходимо:
указать цель работы
описать процесс моделирования команды
описать процесс подготовки стенда к выполнению команды с указанием считанной и записанной информации
привести все схемы с заголовками
сделать вывод о байтности рассматриваемых команд.
Лабораторная работа №7 Работа регистра флагов в мпк 1816ве31.
Цель работы
Изучить работу регистра флагов в МПК 1816ВЕ31. Определить побитную структуру флагового регистра.
Ход работы
Получить у преподавателя задание по каким конкретно флагам выполнять работу. Далее выполнить только те пункты задания, которые касаются полученного варианта.
Подайте на стенд питание или запустите электронную модель.
Определение флага Р (четности):
обнулите регистр FL
обнулите аккумулятор
выполните команду inr A 5 раз, записывая значения аккумулятора и FL
заполните таблицу
Асс
число 1 в Асс
FL
Hex
Bin
Hex
Bin
обнулите регистр FL и регистр R0
выполните команду inr R0 5 раз, записывая значения регистра и FL
заполните аналогичную таблицу
сделайте вывод о влиянии значения регистров R0 и А на флаг Р и местонахождении флага Р внутри FL
Определение флага переноса CY
ввести исходные данные: Acc=Е0, FL=00, Rg=10 (Rg – выбранный вами регистр)
последовательно выполните 3 раза команду add Rg
на основании полученных данных заполните таблицу:
Асс
FL
Hex
Bin
Hex
Bin
сделайте вывод о местонахождении флага CY внутри FL и когда этот флаг выставляется
Определение флага дополнительного переноса АС.
ввести исходные данные: Acc=0E, FL=00, Rg=01 (Rg – выбранный вами регистр)
последовательно выполните 3 раза команду add Rg
на основании полученных данных заполните таблицу:
Асс
FL
Hex
Bin
Hex
Bin
сделайте вывод о местонахождении флага АС внутри FL и когда этот флаг выставляется
Оформить отчет и представить преподавателю
Отчет
В отчете должны быть только те флаги, которые рассматривались в работе
указать цель работы
привести все заполненные таблицы
в выводе привести побитную структуру регистра FL и описать при каких условиях выставляется каждый из рассмотренных флагов
Лабораторная работа №8 Изучение арифметических операций.
Цель работы
Изучить виды арифметических операций в МПК 1816ВЕ31 и их влияние на флаговый регистр.
Ход работы
Подайте на стенд питание или запустите электронную модель.
Изучение команд inr A / dcr A
ввести исходные данные:
Acc=FF
во флаговом регистре сбросьте флаг CY
выполните команду
посмотрите значение флагового регистра
ввести исходные данные:
Acc=FF
во флаговом регистре установите флаг CY
выполните команду
посмотрите значение флагового регистра
сделайте выводы
о воздействии команды на флаги
о влиянии флага CY на ход выполнения команды
Изучение команды add
ввести исходные данные:
Acc=FF, Rg=02 (Rg – выбранный вами регистр)
во флаговом регистре сбросьте флаг CY
выполните команду
посмотрите значение флагового регистра
ввести исходные данные:
Acc=FF, Rg=02 (Rg – выбранный вами регистр)
во флаговом регистре установите флаг CY
выполните команду
посмотрите значение флагового регистра
сделайте выводы
о воздействии команды на флаги
о влиянии флага CY на ход выполнения команды
Изучение команды adс
ввести исходные данные:
Acc=FF, Rg=02 (Rg – выбранный вами регистр)
во флаговом регистре сбросьте флаг CY
выполните команду
посмотрите значение флагового регистра
ввести исходные данные:
Acc=FF, Rg=02 (Rg – выбранный вами регистр)
во флаговом регистре установите флаг CY
выполните команду
посмотрите значение флагового регистра
сделайте выводы
о воздействии команды на флаги
о влиянии флага CY на ход выполнения команды
Расчет выполнения команды
Получить у преподавателя исходные данные для расчета
Рассчитать результат выполнения команды
Проверить результаты расчета на стенде
Оформить отчет и представить преподавателю
Отчет
В отчете необходимо:
указать цель работы
указать изучаемые команды
привести расчетные и экспериментальные данные
в выводе описать работу рассмотренных команд по следующим параметрам:
о воздействии команды на флаги
о влиянии флага CY на ход выполнения команды
Лабораторная работа №9 Изучение логических операций и операций сдвига Цель работы
Изучить выполнение логических операций и операций сдвига в МПК 1816ВЕ31и их воздействие на флаговый регистр.
Ход работы
Подайте на стенд питание или запустите электронную модель.
Изучение логических команд
получите у преподавателя команду для выполнения работы
запишите значение флагового регистра, аккумулятора и рабочего регистра или ячейки памяти
рассчитайте результат выполнения команды
выполните команду
посмотрите значение флагового регистра, аккумулятора и рабочего регистра или ячейки памяти
полученные данные после выполнения команд внести в таблицу:
команда
Асс
Rg
FL
воздействует на флаги
Hex
Bin
Hex
Bin
Hex
Bin
до
после
сделайте вывод о воздействии команды на флаги
Изучение команд сдвига
получите у преподавателя команду для выполнения работы
внесите в аккумулятор 10, обнулите флаговый регистр
выполните команду 9 раз, записывая значения аккумулятора и флагового регистра
полученные данные внести в таблицу:
Nпп
Асс
FL
Hex
Bin
Hex
Bin
на основании полученных данных сделать вывод о
цикличности команды
влиянии на флаг переноса
направлении переноса
подумайте, как можно уменьшить количество операций для получения гарантированного результата?
Отчет
В отчете необходимо:
указать цель работы
указать изучаемые команды
привести расчетные и экспериментальные данные
сделать выводы в соответствии с заданием
Лабораторная работа №10 Команды перехода в МПК 1816ВЕ31.
Цель работы
Изучить работу команд условного и безусловного перехода с использованием абсолютной и относительной адресации в МПК 1816ВЕ31.
Ход работы
Подайте на стенд питание или запустите электронную модель.
Выполните команду перехода (код команды 02)
запишите, какие значения вы внесли в соответствующие ячейки для выполнения указанного пункта
сколько байт занимает указанная команда?
на какой адрес осуществляется переход?
запишите значения регистра SP до и после выполнения команды. Сделайте вывод о влиянии указанной команды на SP.
повторите те же действия, записав точно такую же команду, но по другому адресу
проверьте влияние значений CY и Acc (записав 0 или 1) на выполнение данной команды.
сделайте вывод о виде команды
с абсолютной или относительной адресацией
условного или безусловного перехода.
аналогичные действия (п1-п5) проделайте для одной из команд (по указанию преподавателя) с кодами 40, 50, 60, 70, 80. Выполнение команды рассмотрите для адресов перехода меньше 80
Оформить отчет и представить преподавателю
Отчет
В отчете необходимо:
указать цель работы
нарисовать схемы перехода для рассмотренных вариантов
указать влияют ли какие-либо флаги и как на данную команду
отразить переход одной и той же команды, но записанной в различные ячейки памяти
сделать вывод о назначении рассмотренных команд и их влиянии на флаг SP
Лабораторная работа №11 Изучение работы стэка.
Цель работы
Изучить организацию перехода с возвратом и прямой загрузки / выгрузки стэка в МПК 1816ВЕ31.
Ход работы
Подайте на стенд питание или запустите электронную модель.
Выполните команду перехода с возвратом call ad16 (код команды 12)
запишите, какие значения вы внесли в соответствующие ячейки для выполнения указанного пункта
сколько байт занимает указанная команда?
на какой адрес осуществляется переход?
запишите значения регистра SP до и после выполнения команды. Сделайте вывод о влиянии указанной команды на SP.
повторите те же действия, записав точно такую же команду, но по другому адресу
сделайте вывод о виде команды
с абсолютной или относительной адресацией
условного или безусловного перехода.
выполнение команды возврата ret (код 22)
запишите значения регистра SP до выполнения команды.
выполните команду
сравните значение SP, сделайте вывод о влиянии указанной команды на SP.
запишите, на какой адрес осуществляется переход.
изучение команд загрузки/выгрузки стэка (коды C0, D0)
запишите данные из регистра SP и рабочей ячейки РПД до выполнения команды.
выполните команду
сравните значение SP, сделайте вывод о влиянии указанной команды на SP
что произошло с данными в рабочей ячейке РПД и стеке?
Оформить отчет и представить преподавателю
Отчет
В отчете необходимо:
указать цель работы
нарисовать схемы перехода для рассмотренных вариантов (call, ret) и обмена со стеком (push, pop)
сделать вывод о
назначении рассмотренных команд
их влиянии на флаг SP
местонахождении стека в памяти
направлении роста стека
