Особенности функционирования микропроцессора при выполнении команд передачи управления, организации условных и безусловных переходов в программах

Страницы работы

Содержание работы

Российский государственный

профессионально-педагогический университет

Институт электроэнергетики и информатики

Кафедра микропроцессорной управляющей вычислительной техники

Лабораторная работа № 5

«Изучение временных диаграмм выполнения команд управления программой»

Выполнил: Дёмкин П.В.

Группа: ВТ-416

Проверил: Мешков В.В.

Екатеринбург, 2008

Цель работы: Изучение особенностей функционирования микропроцессора при выполнении команд передачи управления, организации условных и безусловных переходов в программах; приобретение навыков модульного программирования.

Команды управления программой. Таблица:

Мнемоника команд

Число байт

Выполняемые действия

Состав машинных циклов/кол-во тактов в циклах

А. Команды простых переходов. I. Команды безусловного перехода

JMP <B2><B3>

3

(PC)L<=<B2>

(PC)H <=<B3>

J, 2/3, 2/3

II. Команды условного перехода. 1.Команды переходов по состоянию флага нуля (Z)

А) Переход, если результат нулевой (Z=1)

JZ <B2><B3>

3

(PC)L <=<B2>

(PC)H <=<B3>

(PC)<=(PC)+1

¼, 2/3, 2/3 если условие перехода выполняется

¼, 2/3, 2/3 если условие перехода не выполняется

В) Переход если результат не нулевой (Z=0)

JNZ <B2><B3>

3

(PC) ¬ (byte 3, byte 2)

¼, 2/3, 2/3

2. Команды перехода по состоянию флага переноса С

А) переход если перенос имеется (С=1)

JC <B2><B3>

3

то же, если CY = 1

¼, 2/3, 2/3

Б) Переход, если перенос отсутствует (С=0)

JNC <B2><B3>

3

то же, если CY = 0

¼, 2/3, 2/3

3). Команды перехода по состоянию флага четности(P)

A) Переход, если результат четный (Р=1)

JPE <B2><B3>

3

то же, если P = 1

¼, 2/3, 2/3

Б) Переход, если результат не четный

JPO <B2><B3>

3

то же, если P = 0

¼, 2/3, 2/3

4. Команды перехода по состоянию флага знака (S)

А) Переход, если результат отрицательный (S=1)

JM <B2><B3>

3

то же, если S = 1

¼, 2/3, 2/3

Б) Переход, если результат положительный (S =0)

JP <B2><B3>

3

то же, если S = 0

¼, 2/3, 2/3

Б. Команды  переходов с возвратом

I. Команды безусловных переходов с возвратом

1. Команды безусловного перехода к подпрограмме

CALL <B2><B3>

3

(M)SP-1 ¬ (PCh)

 (M)SP-2 ¬ (PCl)

(SP) ¬ (SP) - 2

(PC) ¬ ( byte 3, 2)

1/5, 2/3, 2/3, 5/3 5/3

2. Команды безусловного возращения из подпрограммы

RET

1

(PC)L<=M(SP)

(PC)H<=M(SP+1)

(SP)<=(SP+2)

¼. 4/3. 4/3

II. Команды условных переходов с возвратом

  1. Команды условных переходов к подпрограммам

1)  Команды условных переходов по состоянию флага нуля (Z)

А) Переход если результат нулевой (Z=1)

CZ

3

Аналогично CALL

(PC)<=(PC+1)

1/5. 2/3. 2/3. 5/3. 5/3

Если условие перехода к подпрограмме выполняется

1/5, 2/3, 2/3

Если условие перехода к подпрограмме не выполняется

Б) Переход если результат не нулевой (Z=0)

СNZ <B2><B3>

3

то же, если Z = 0

1/5. 2/3. 2/3. 5/3. 5/3

1/5, 2/3, 2/3

2)  Команды условных переходов по состоянию флага переноса (С)

А) переход, если перенос имеется (С=1)

СС <B2><B3>

3

то же, если CY = 1

1/5. 2/3. 2/3. 5/3. 5/3

1/5, 2/3, 2/3

Б) переход, если переноса нет (С=0)

СNC <B2><B3>

3

то же, если CY = 0

1/5. 2/3. 2/3. 5/3. 5/3

1/5, 2/3, 2/3

3)  Команды условных переходов по состоянию флага четности  (Р)

А) переход, если  результат четный (Р=1)

CPE <B2><B3>

3

то же, если P = 1

1/5. 2/3. 2/3. 5/3. 5/3

1/5, 2/3, 2/3

Б) переход, если результат не четный (P=0)

CPO <B2><B3>

3

то же, если P = 0

1/5. 2/3. 2/3. 5/3. 5/3

1/5, 2/3, 2/3

4)  Команды условных переходов по состоянию флага знака (S)

А) переход, если  результат отрицательный (S=1)

CM <B2><B3>

3

то же, если S = 1

1/5. 2/3. 2/3. 5/3. 5/3

1/5, 2/3, 2/3

б) переход, если  результат положительный (S=0)

CP <B2><B3>

3

то же, если S = 0

1/5. 2/3. 2/3. 5/3. 5/3

1/5, 2/3, 2/3

  1. Команды безусловного возврата из подпрограммы

1)  Команды условных возвратов по состоянию флага нуля (Z)

a) возврат если результат нулевой (Z=1)

RZ

1

То же самое что и RET

(РС) <=(PC-1)

1/5. 4/3 4/3,  если условие возврата из подпрограммы выполняется

Б) возврат, если результат не нулевой (Z=0)

RNZ

1

то же, если Z = 0

1/5. 4/3 4/3

5)  Команды условных возвратов по состоянию флага переноса (С)

А) возврат, если перенос имеется (С=1)

RC

1

то же, если CY = 1

1/5. 4/3 4/3

Б) возврат, если переноса нет (С=0)

RNC

1

то же, если CY = 0

1/5. 4/3 4/3

6)  Команды условных возвратов по состоянию флага четности  (Р)

А) возврат, если  результат четный (Р=1)

RPE

1

то же, если P = 1

1/5. 4/3 4/3

Б) возврат, если результат не четный (P=0)

RPO

1

то же, если P = 0

1/5. 4/3 4/3

7)  Команды условных возвратов по состоянию флага знака (S)

А) возврат, если  результат отрицательный (S=1)

RM

1

то же, если S = 1

1/5. 4/3 4/3

б) возврат, если  результат положительный (S=0)

RP

1

то же, если S = 0

1/5. 4/3 4/3

В. Команды рестарта

RST 0

1

То же самое, что и CALL, но адрес определяется модификацией команды

Адрес перехода

0000

1/5, 5/3, 5/3

RST 1

1

0008

1/5, 5/3, 5/3

RST 2

1

0010

1/5, 5/3, 5/3

RST 3

1

0018

1/5, 5/3, 5/3

RST 4

1

0020

1/5, 5/3, 5/3

RST 5

1

0028

1/5, 5/3, 5/3

RST 6

1

0030

1/5, 5/3, 5/3

RST 7

1

0038

1/5, 5/3, 5/3

Задача: составить программу пересылки массива данных из области памяти 0800-0809 в область памяти 0810-0819.

Блок схема:

Листинг программы:

адрес  

код

мнемоника

комментарий

0820

26

MVI H, data8

H←0A

0821

0A

0822

01

LXI B, data16

BC←0800

0823

00

0824

08

0825

11

LXI D, data16

DE←0810

0826

10

0827

08

0828

0A

LDAX B

A←M(BC)

0829

12

STAX D

M(DE)←A

082A

13

INX D

DE=DE+1

082B

03

INX B

BC=DC+1

082C

25

DCR H

H=H-1

082D

C2

JNZ addr

проверили условие

082E

28

082F

08

0830

76

HLT

остановка

Задача:

Похожие материалы

Информация о работе