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

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

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

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


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

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

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

1. Команды загрузки и перемещения данных.

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

Число байт

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

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

Команды загрузки в аккумулятор

LDAX RP

1

A<=M(RP)

1/4; 2/3=2/7

LDA<B2><B3>

3

A<=M(B3,B2)

4/3=1/4+2/3+3/5+1/3

Команды запоминания содержимого аккумулятора

STAX RP

1

M(RP)<=A

1/2=1/4

STA<B2><B3>

3

M(B3,B2)<=A

4/13=1/4,2/3; 3/3 4/4

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

LXI RP<B2><B3>

3

RP<=<B2><B3>

3/10=1/4,2/3,3/3

LXI SP<B2><B3>

3

3/10=1/4,2/3,3/3

LHLD<B2><B3>

3

L<=M(B2,B3); H<=M(B2+1,B3)

5/16=1/4,2/3,3/3,4/3

Команда запоминания содержимого регистровой пары HL

SHLD<B2><B3>

3

M(B2,B3)<=L; M(B2+1,B3)<=H

5/16=1/5,2/3,3/3,4/3,5/3

Команды перемещения данных

MOV R1,R2

1

R1<=R2

1/5

MOV R,M

1

R<=M(HL)

2/7=1/4+2/3

MOV M,R

1

M(HL)<=R

2/7=1/4+2/3

MVI R <B2>

2

R<=B2

2/7=1/4+2/3

MVI M <B2>

2

M(HL)<=B2

3/10=1/4+2/3

Команды межрегистрового обмена

XCHG

1

L<=>E H<=>D

1/4

XTHL

1

L<=>M(SP), H<=>M(SP+1)

1/5

SPHL

1

SP<=L, SP<=H

1/5

PCHL

1

PC<=L, PC<=H

1/1,1/5

Команды операций со стеком

PUSH RP

1

SP<=SP-1; M(SP)<=RP

3/11=1/5+2/3+3/3

PUSH PSW

1

M(SP)<=A

3/11=1/5+2/3+3/3

POP RP

1

RPL<=M(SP)

3/10=1/4+2/3+3/3

POP PSW

1

SP<=SP-1, M(SP)<=A, SP<=SP-1, M(SP)<=F, F=M(SP), SP<=SP+1, A<=M(SP), SP<=SP+1

3/10=1/4+2/3+3/3

Условные обозначения:

RP - имя регистровой пары

R - имя регистра

M - ячейка памяти с адресом, указанным в регистровой паре

SP - указатель стека

PC - программный счетчик

PSW - регистр СС программы

При выполнении той или иной команды МП в самом начале машинного цикла формирует её и выдает на ШД 8-разрядное слово состояние. Код СС соответствует типу выполняемого машинного цикла команды.

2. Типы машинных циклов и коды СС МП.

Разряд СС

Условное обозначение сигнала

Тип выполняемого машинного цикла

1

2

3

4

5

6

7

8

9

10

D0

ППР(INIT)

0

0

0

0

0

0

0

1

0

1

D1

ЗП/ВЫП(WO)

1

1

0

1

0

1

0

1

1

1

D2

СТЕК(STACK)

0

0

0

1

1

0

0

0

0

0

D3

П.ОСТ(HLTA)

0

0

0

0

0

0

0

0

1

1

D4

ВЫВ(OUT)

0

0

0

0

0

0

1

0

0

0

D5

М1(M1)

1

0

0

0

0

0

0

1

0

1

D6

ВВ(INP)

0

0

0

0

0

1

0

0

0

0

D7

ЧТ.ПАМ(MEMR)

1

1

0

1

0

0

0

0

1

0

H-код СС

A2

82

00

86

04

42

10

23

8A

2B

Типы машинных циклов:

1 (A2) – выборка команды из памяти

2 (82) – чтение информации из памяти

3 (00) – запись информации в память

4 (86) – чтение информации из стека

5 (04) – запись информации в стек

6 (42) – ввод информации из внешнего устройства

7 (10) – вывод информации во внешнее устройство

8 (23) – обработка прерывания

9 (8A) – останова

10 (2B) – обработка прерывания во время останова

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


3. Блок-схема программы


4. Листинг программы в машинном коде и на языке Assembler

Адрес

Машинный код

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

Комментарии

0820

0E

MVI C,0A

C<=0A – передача 8-разрядных данных 0A в регистр C

0821

0A

0822

21

LXI H,0800

rpH<=0800 – передача в регистровую пару H 16-разрядных данных в виде адреса памяти 0800

0823

00

0824

08

0825

11

LXI D,0810

rpD<=0810 – передача в регистровую пару D 16-разрядных данных в виде адреса памяти 0810

0826

10

0827

08

0828

7E

MOV A,M

A<=M(rpH) – передача в аккумулятор данных из rpH

0829

EB

XCHG

H<=>D,L<=>E – обмен содержимым rpH и rpD

082A

77

MOV M,A

M(rpH)<=A – передача из аккумулятора данных в rpH

082B

EB

XCHG

H<=>D,L<=>E – обмен содержимым rpH и rpD

082C

2C

INR L

L<=L+1 – увеличение на 1 8-разрядного регистра L

082D

1C

INR E

E<=E+1 – увеличение на 1 8-разрядного регистра E

082E

0D

DCR C

C<=C-1 – уменьшение на 1 8-разрядного регистра С

082F

C2

JNZ 0828

PC<=0828 – задает переход на выполнение команды, расположенной по адресу 0828. При условии что флаг Z=0

0830

28

0831

08

0832

76

HLT

Останов процессора


5. Временные диаграммы.

Самая короткая команда: XCHG: 1/4 (перенос из регистра в память устройства, запись в противоположный регистр)

Самая длинная команда: XTHL L<=>M(SP); H<=>M(SP+1)

LHLD<B2><B3> L<=M<B3><B2> 5/16

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

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

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

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.