Файл: Вводый курс цифровой электроники (К.Фрике, 2003).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.06.2025

Просмотров: 4531

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

16.19. Примеры программ 399

Таблица 16.20. Программный пример передачи данных в подпрограмму [16, 18].

Адрес

Машин,

Метка

Операц.

Операнд

Комментарий

1

код

код (ор code)

1000

CD 00

12

ORG

lOOOH

; зона команд

1

1003

СЗ 09

10

CALL

PROG

; вызов

JMP

подпрограммы

1006

88 IF

LIST

; пропуск (skip)

DW

1F88H

константы

1008

;

подлежащая

LIST

передаче

консталта

1

1200

ЕЗ

PROG

XTHL

H

; PC в HL

1201

Е5

PUSH

; PC в

стек ("на

1

1202

D5

D

стек")

PUSH

; DE в

стек

1

1203

F5

PUSH

PSW

; PSW в

стек

1204

23

INX

H

; пропуск команды

1

1205

12050MXJMP

23

INX

H

_»»_

1206

23

INX

H

— ••_

1207

MOV

E,

M

;

данные,

соответствующие

в

младшему

байту,

23

INX

H

Е

1208

; переход к

MOV

старшему

байту

1209

D,

M

;

данные,

соответствующие

в В

старшему

байту

;

подпрогрс1Мма

F1

PGP

PSW

;

подпрогрг1Мма

1210

; PSW из

стека

D1

POP

D

("со стека")

1211

; DE из

стека

1212

Е1

POP

H

; PC из

стека

1213 1214

ЕЗ С9

XTHL RET END

; HL и PC,

взаимная

замена


Глава 16. Структура, система команд и работа микропроцессора

16.20. Упражнения

Задача 16.1.

а) Перечислите виды адресации, применяемые в микропроцессо­ ре с 8085.

б) Объясните различные времена выполнения адресаций в ми­ кропроцессор 8085.

в) Что происходит при прерывании?

г) Объясните понятия «стек» и «указатель вершины стека».

д) Какие шаги реализуются командами CALL и RET при вызове подпрограммы.

Задача 16.2. Напишите программу, обеспечиваюп1;ую взаимную за­ мену двух чисел. Числа должны находиться в ячейках ЗУ, адреса которых стоят в парах регистров DE и HL. Сколько тактов потре­ буется ^\ля выполнения вашей программы? Как долго будет выпол­ няться ваша программа, если тактовая частота процессора равна 2 МГц?

Задача 16.3. Запишите сегмент программы, который сдвигает блок переменной длины {п байт < 255) с одной позиции в ЗУ на дру­ гую Зоны ЗУ не должны перекрываться. Количество подлежащих сдвигу байтов должно стоять в регистре В. В регисторной паре HL должен быть загружен первый адрес подлежаш;его сдвигу блока в регисторную пару DE первый адрес нового блока.

Задача 16.4. Напишите подпрограмму, которая подсчитывает ко­ личество единиц в накапливаюп1;ем регистре. В заключение коли­ чество единиц должно быть передано в накапливаюш;ий регистр, соответствуюш;ий главной программе.

А.Приложение

А.I. Индикация функций

Символ

1

-к ^

1

^^

=

1

2к+1

Г

^

<\ или о

1

X/Y

1

MUX

DMUX или DX

Е

P-Q

CPG

СОМР ALU SRGm CTRm CTRDIVm RCTRm ROM RAM FIFO

Описание И-вентиль ИЛИ-вентиль EXOR-вентиль

вентиль эквивалентности четное число входных сигналов должно иметь значение 1

нечетное число входных сигналов должно иметь значение 1

вход должен быть в состоянии 1

выход задающего каскада, сигнал ориентирован в напра­ влении протекания потока сигналов

преобразователь кода мультиплексер демультиплексер сумматор вычитатель

carry-lock-ahead-generator (генератор с опережением пе­ реноса)

устройство умножения устройство сравнения, компаратор

арифметико-логическое устройство сдвиговый регистр на m бит счетчик на бит, длина цикла 2^ счетчик с длиной цикла m

асинхронный счетчик с длиной цикла 2^

ЗУ только со считыванием (read-only-memory) ЗУ с записью и считыванием

ЗУ типа first-in-first out (первый записывается — первый считывается)


402А, Прилооюение

Вследующей таблице собраны логические символы, указывае­ мые вне обрамления, символа:

Символ

1

ч

2

> -

3

н

4

.^d_

5

h

6

7

^ ^

8

-

>

9

н>

10

11

^

12

13;;i:

14:::Е

Функция

Логическая инверсия входа (внешний 0 поро­ ждаем внутреннюю 1)

Логическая инверсия выхода (внутренний 0 по­ рождает внешнюю 1)

Вход, активен при L, эквивалентен N1 в поло­ жительной логике

Вход, активен при L, протекание потока сиг­ налов справа налево

Выход, активен при L, эквивалентен N2 в по­ ложительной логике

Протекание потока сигналов справа налево Двунаправленный поток сигналов

Динамический вход: активен при появлении по­ ложительного фронта

Динамический вход: активен при появлении от­ рицательного фронта

Нелогический вход

Аналоговый вход при представлении цифро­ вым символом

Внутреннее соединение

Инвертирующее внутреннее соединение

Внутреннее соединение: активно при появле­ нии положительного фронта


A.l. Индикация функций 403

Логические символы следующей таблицы лежат внутри обрамле­ ния символа. С помощью этого делаются высказывания о внутрен­ нем логическом состоянии схемы.

Символ

Функция

-^h

Буферный выход: изменение только при достижении

первоначального состояния входа

Вход с гистерезисом

^

Выход с открытым коллектором п-р-п-транзистора

оВыход с открытым эмиттером р-гг-р-транзистора

V

Выход типа tri-state

EN

Выход разрешающий

J, к, R, S, D, Т

Входы триггеров: обычное значение букв

-^т

— <—/я

Входы, определяющие сдвиг вправо или сдвиг влево

в сдвиговом регистре, т £ N^ т = 1 как правило не

:}

указывается

Двоичный входной вектор со значениями от 0 до п. п

является второй степенью значения старшего бита.

СТ=15

Устанавливающий входной сигнал, заданное значение

загружается, если вход активен

СТ=15

Выход переходит в состояние «?», если регистр при­

нимает заданное значение

"1"

Выход с постоянным значением

Группа сигналов, образующих единый логический

:::Е

вход

фронте

Внутреннее соединение: активно при положительном