лабораторные работы / маскирования данных / Маскирование данных
.docЦель работы: изучение программных способов маскирования данных и организации условных переходов в микроЭВМ.
Основные понятия
Все команды МП подразделяются на пять функционально специализированных групп:
1) команды передачи данных - используются для пересылки данных из регистра в регистр, из памяти в регистр (регистровую пару) и из регистра (регистровой пары) в память;
2) команды арифметических операций - применяются для арифметических операций сложения, вычитания, инкрементирования и декрементирования содержимого регистра (регистровой пары) или ячейки памяти, а также для сложения двоично-десятичных чисел;
З) команды логических операций - выполняют операции И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ (неравнозначность), сравнения и сдвига;
4) команды передачи управления - используются при условных и безусловных переходах в программе, вызовах подпрограмм и возврата из них, рестартах подпрограмм при организации многоуровневых векторных прерываний;
5) команды стека, ввода-вывода и управления - применяются для управления прерыванием, останова МП, ввода-вывода данных и обращения к стеку, его указателю и вершине.
Условные переходы организуются в программах с помощью команд условных переходов. При выполнении этих команд МП БИС проверяет состояние соответствующего регистра состояния. Если при проверке состояния разряда регистра состояния условие не подтверждается, то выполняется следующая по порядку команда программы.
Все команды условных переходов - трехбайтные: первый байт со держит код команды, второй и третий - байты адрес передачи управления. Таким образом, команды условных переходов позволяют строить ветвящиеся алгоритмы и в зависимости от текущего значения результата выполнения программы переходить на различные участки программы.
Организация условных переходов в микроЭВМ осуществляется с помощью регистра признаков МП БИС.
Задания к лабораторной работе
Задание 1. Заполнить таблицу для команд, проверить правильность заполнения на учебном микропроцессорном комплекте:
1. ANA R, XRI B2, CMP M;
2. ANA M, XRA R, CPI B2;
3. ANI B2, XRA M, CMP R.
Для заполнения таблицы первоначально необходимо написать и реализовать программу для каждой команды.
1) Для команды ANA R:
-
Адрес
Машинный код
Мнемокод
Комментарий
0800
06
MVI R, 11
Пересылка непосредственных данных в регистр
0801
11
0802
3A
LDA, 0B00
Получить число из адреса 0В00
0803
00
0804
0B
0805
A0
ANA R
Поразрядное И над содержимым A-регистра
0806
32
STA, 0B01
Прямое запоминание содержимого В-регистра
0807
01
0808
0В
0809
CF
RST1
Прервать выполнение программы
2) Для команды XRI B2:
-
Адрес
Машинный код
Мнемокод
Комментарий
0800
06
MVI B, 11
Пересылка непосредственных данных в регистр
0801
11
…
…
…
….
0805
EE
XRI B2
Поразрядное исключающее ИЛИ над непосредственными данными и содержимым А-регистра
0806
11
…
…
…
…
3) Для команды CMP M:
-
Адрес
Машинный код
Мнемокод
Комментарий
0800
06
MVI B, 11
Пересылка непосредственных данных в регистр
0801
11
…
…
…
….
0805
BE
CMP M
Сравнение содержимого ячейки памяти и А-регистра
…
…
…
…
4) Для команды ANA M:
-
Адрес
Машинный код
Мнемокод
Комментарий
0800
06
MVI B, 11
Пересылка непосредственных данных в регистр
0801
11
…
…
…
….
0805
A6
ANA M
Поразрядное И над содержимым ячейки памяти и А-регистра
…
…
…
…
5) Для команды XRA R:
-
Адрес
Машинный код
Мнемокод
Комментарий
0800
06
MVI B, 11
Пересылка непосредственных данных в регистр
0801
11
…
…
…
….
0805
A8
XRA R
Поразрядное исключающее ИЛИ над содержимым регистра и А-регистра
…
…
…
…
6) Для команды CPI B2:
-
Адрес
Машинный код
Мнемокод
Комментарий
0800
06
MVI B, 11
Пересылка непосредственных данных в регистр
0801
11
…
…
…
….
0805
FE
CPI B2
Cравнение непосредственных данных и содержимого А-регистра
0806
11
…
…
…
…
7) Для команды ANI B2:
-
Адрес
Машинный код
Мнемокод
Комментарий
0800
06
MVI B, 11
Пересылка непосредственных данных в регистр
0801
11
…
…
…
….
0805
E6
ANI B2
Поразрядное И над непосредственными данными и содержимым А-регистра
0806
11
…
…
…
…
8) Для команды XRA M:
-
Адрес
Машинный код
Мнемокод
Комментарий
0800
06
MVI B, 11
Пересылка непосредственных данных в регистр
0801
11
…
…
…
….
0805
AЕ
XRA R
Поразрядное исключающее ИЛИ над содержимым ячейки памяти и А-регистра
…
…
…
…
9) Для команды CMP R:
-
Адрес
Машинный код
Мнемокод
Комментарий
0800
06
MVI B, 11
Пересылка непосредственных данных в регистр
0801
11
…
…
…
….
0805
В8
CMP R
Сравнение содержимого регистра и А-регистра
…
…
…
…
Составим таблицу для выполненных программ:
1116=1710=100012-маска;
1016=1610=100002-число, выданное преподавателем.
Команда |
Маска |
Число в А |
Регистр F |
||
До выполн-я команды |
После выполн-я команды |
До выполн-я команды |
После выполн-я команды |
||
ANA R |
1116=100012 |
1016=100002 |
1016=100002 |
FF16=111111112 |
0216=000000102 |
XRI B2 |
1116=100012 |
1016=100002 |
0116=12 |
FF16=111111112 |
0216=000000102 |
CMP M |
1116=100012 |
1016=100002 |
1016=100002 |
FF16=111111112 |
8716=100001112 |
ANA M |
1116=100012 |
1016=100002 |
1016=100002 |
FF16=111111112 |
1216=000100102 |
XRA R |
1116=100012 |
1016=100002 |
0116=12 |
FF16=111111112 |
0216=000000102 |
CPI B2 |
1116=100012 |
1016=100002 |
1016=100002 |
FF16=111111112 |
8716=100001112 |
ANI B2 |
1116=100012 |
1016=100002 |
1016=100002 |
FF16=111111112 |
0216=000000102 |
XRA M |
1116=100012 |
1016=100002 |
EF16=111011112 |
FF16=111111112 |
8216=100000102 |
CMP R |
1116=100012 |
1016=100002 |
1016=100002 |
FF16=111111112 |
8716=100001112 |
Восьмиразрядный регистр признаков (F-регистр) фиксирует признаки, вырабатываемые в процессе выполнения команд. Каждый из пяти разрядов устанавливается по определенному правилу в соответствии с выполнением МП БИС последней команды, а другие три разряда не используются и содержат биты константы.
Формат регистра признаков:
F7 |
F6 |
F5 |
F4 |
F3 |
F2 |
F1 |
F0 |
S |
Z |
0 |
AC |
0 |
P |
1 |
CY |
В результате выполнения данного задания видно, что содержимое регистра F после выполнения команды полностью соответствует формату регистра признаков.
Задание 2. Написать программы и отладить их на учебном микропроцессорном комплекте.
1) Сравнить числа, записанные по адресам 0В00 и 0В01, и записать большее из них в регистр В.
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0800 |
3А |
LDA, 0B00 |
Прямая загрузка А- регистра |
0801 |
00 |
||
0802 |
0В |
||
0803 |
47 |
MOV B,A |
Пересылка данных из регистра в регистр |
0804 |
3А |
LDA, 0B01 |
Прямая загрузка А- регистра |
0805 |
01 |
||
0806 |
0В |
||
0807 |
B8 |
CMP R |
Сравнение содержимого регистра и А-регистра |
0808 |
СA |
JZ B2B3 |
Переход, если 0 |
0809 |
0F |
||
080А |
08 |
||
080В |
D2 |
JC B2B3 |
Переход, если перенос |
080С |
0F |
||
080D |
08 |
||
080E |
47 |
MOV B,A |
Пересылка данных из регистра в регистр |
080F |
СF |
RST1 |
Прервать выполнение программы |
Для данной программы составим блок-схему:
2) Пользуясь логическими командами, проверить первый и четвертый разряды числа ХХ и, если они равны 0, установить в них 1.
1016=000100002 – число, заданное преподавателем;
2216=001000102 – маска.
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0800 |
3А |
LDA, 0B00 |
Прямая загрузка А- регистра |
0801 |
00 |
||
0802 |
0В |
||
0803 |
06 |
MVI R, 22 |
Пересылка непосредственных данных в регистр |
0804 |
22 |
||
0805 |
A0 |
ANA R |
Поразрядное И над содержимым A-регистра |
0806 |
В8 |
CMP R |
Сравнение содержимого регистра и А-регистра |
0807 |
C2 |
JNZ B2B3 |
Переход, если не 0 |
0808 |
0B |
||
0809 |
00 |
||
080А |
B0 |
ORA R |
Поразрядное ИЛИ над содержимым регистра и А-регистра |
080В |
СF |
RST1 |
Прервать выполнение программы |
Нарисуем блок-схему для написанной программы: