Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab. №18 (чистовик).doc
Скачиваний:
4
Добавлен:
04.09.2019
Размер:
222.72 Кб
Скачать
    1. Команды безусловного перехода

JMP <B3B2> – безусловный переход по адресу, указанному во втором и третьем байтах команды;

PCHL – безусловный переход по адресу, заданному в паре рег. HL.

      1. Записать в память, начиная с адреса 0800H, коды программы (таблица 2), реализующей бесконечный цикл.

Таблица 2 – Контрольная программа, содержащая бесконечный цикл

Адрес

Команда

Операнд

Машинный код

Комментарий

0800

NOP

00

; Пустая команда

0801

NOP

00

; Пустая команда

0802

NOP

00

; Пустая команда

0803

JMP

0800H

C3 00 08

; Безусловный переход на

; начало программы

      1. Выполнить программу:

СТ0800ВП

Данная программа будет выполнять бесконечный цикл.

      1. Нажать кнопку ПРЕРЫВАНИЕ.

На дисплее отобразится адрес точки прерывания – в пределах от 0800H до 0803H.

    1. Команды перехода по признаку – ноль

JZ <B3B2> – переход если (TZ)=1;

JNZ <B3B2> – переход если (TZ)=0.

      1. Записать в память, начиная с адреса 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

      1. Выполнить программу:

СТ0810 081СВП.

      1. Проверить результаты выполнения программы в соответствии с таблицей 4.

Таблица 4 – Результаты выполнения программы заполнения 10H ячеек памяти нулями

(С)

(HL)

(М) по адр. 0900H…(M) по адр. 090FH

00

0910

00

    1. Команды перехода по признаку с – перенос

JC <B3B2> – переход если (TС)=1;

JNC <B3B2> – переход если (TС)=0.

      1. Записать в память, начиная с адреса 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

; Переход на проверку след.

; разряда байта

      1. Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]