- •Команды безусловного и условных переходов
- •"Цифровые и микропроцессорные устройства"
- •Команды безусловного и условных переходов
- •7 Содержание отчёта
- •8 Контрольные вопросы
- •9 Требования к знаниям и умениям студентов
- •10 Методические указания
- •Теоретическое обоснование
- •Команды безусловного перехода
- •Команды перехода по признаку – ноль
- •Команды перехода по признаку с – перенос
- •Команды перехода по признаку р – чётность
- •Команды безусловного и условных переходов
Команды безусловного перехода
JMP <B3B2> – безусловный переход по адресу, указанному во втором и третьем байтах команды;
PCHL – безусловный переход по адресу, заданному в паре рег. HL.
Записать в память, начиная с адреса 0800H, коды программы (таблица 2), реализующей бесконечный цикл.
Таблица 2 – Контрольная программа, содержащая бесконечный цикл
Адрес |
Команда |
Операнд |
Машинный код |
Комментарий |
0800 |
NOP |
|
00 |
; Пустая команда |
0801 |
NOP |
|
00 |
; Пустая команда |
0802 |
NOP |
|
00 |
; Пустая команда |
0803 |
JMP |
0800H |
C3 00 08 |
; Безусловный переход на ; начало программы |
Выполнить программу:
СТ0800ВП
Данная программа будет выполнять бесконечный цикл.
Нажать кнопку ПРЕРЫВАНИЕ.
На дисплее отобразится адрес точки прерывания – в пределах от 0800H до 0803H.
Команды перехода по признаку – ноль
JZ <B3B2> – переход если (TZ)=1;
JNZ <B3B2> – переход если (TZ)=0.
Записать в память, начиная с адреса 0810H, программу заполнения 10H ячеек памяти нулями, которая указана в таблице 3.
Таблица 3 – Контрольная программа заполнения 10H ячеек памяти нулями, содержащая команду условного перехода по содержимому триггера нуля TZ
Адрес |
Команда |
Операнд |
Машинный код |
Комментарий |
0810 |
MVI |
C, 10H |
0E 10 |
; Загр. C=10H, длина масс. |
0812 |
LXI |
H, 0900H |
21 00 09 |
; Загр. HL=0900H, нач. адр. ; массива |
0815 |
MVI |
M, 00H |
36 00 |
; Загр. M=00H |
0817 |
INX |
H |
23 |
; HL=(HL)+1, след. адрес |
0818 |
DCR |
C |
0D |
; C=(C)–1, длина массива |
0819 |
JNZ |
0815H |
C2 15 08 |
; Переход, если (С)>0 |
Выполнить программу:
СТ0810 081СВП.
Проверить результаты выполнения программы в соответствии с таблицей 4.
Таблица 4 – Результаты выполнения программы заполнения 10H ячеек памяти нулями
(С) |
(HL) |
(М) по адр. 0900H…(M) по адр. 090FH |
00 |
0910 |
00 |
Команды перехода по признаку с – перенос
JC <B3B2> – переход если (TС)=1;
JNC <B3B2> – переход если (TС)=0.
Записать в память, начиная с адреса 0820H, программу подсчёта нулей в байте (таблица 5). Исходное значение байта задано в регистре С.
Таблица 5 – Контрольная программа подсчёта нулей в байте, содержащая команды условного перехода по содержимому триггеров переноса TC и нуля TZ
Адрес |
Команда |
Операнд |
Машинный код |
Комментарий |
0820 |
MOV |
A, C |
79 |
; A←(C) |
0821 |
MVI |
B, 08H |
06 08 |
; Загр. B=8, кол. разрядов в ; байте |
0823 |
MVI |
E, 00H |
1E 00 |
; Загр. E=00H, исх. знач. ко- ; личества нулей в байте |
0825 |
RAR |
|
1F |
; Зн. мл. бита в бит переноса ; и сдвиг вправо |
0826 |
JC |
082A |
DA 2A 08 |
; Если (TС)=1, обойти ин- ; кремент счётчика нулей |
0829 |
INR |
E |
1C |
; E=(E)+1, инкремент счёт ; чика нулей |
082А |
DCR |
B |
05 |
; B=(B)–1, след. разряд |
082В |
JNZ |
0825H |
C2 25 08 |
; Переход на проверку след. ; разряда байта |
Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 6. Проверить результаты.
СТ0820 082ЕВП.
Таблица 6 – Исходные данные и результаты выполнения контрольной программы подсчёта нулей в байте
Вариант |
1 |
2 |
3 |
4 |
||||
(С) – исх. |
00 |
DB |
FF |
03 |
9A |
55 |
13 |
7A |
(Е) – рез. |
08 |
02 |
00 |
06 |
04 |
04 |
05 |
03 |
Задание 1:
Написать и выполнить программу подсчёта количества единиц в байте и заполнить таблицу 7.
Исходное значение задать в рег. D. Счётчик циклов организовать на рег. С, счётчик количества единиц на рег. В, начальный адрес программы 0А00H.
Таблица 7 – Исходные данные и результаты выполнения для проверочной программы подсчёта единиц в байте
Вариант |
1 |
2 |
3 |
4 |
||||
(D) – исх. |
00 |
DB |
02 |
AD |
05 |
FE |
0A |
10 |
(B) – рез. |
|
|
|
|
|
|
|
|
Проверочную программу подсчёта количества единиц в байте записать в таблицу, аналогичную по форме таблице 5.