Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
цимпу / Таблицы и рисунки к конспекту лекций по ЦиМПУ раздел 3.docx
Скачиваний:
33
Добавлен:
13.02.2016
Размер:
4.85 Mб
Скачать

3.3 Программирование микропроцессоров

Рисунок 3.15 – Схема алгоритма инвертирования содержимого ячейки памяти

Таблица 3.4 – Программа инвертирования содержимого ЯП на языке Ассемблер

При использовании прямой адресации

Адрес

Метка

Команда

Операнд

Машинный код

Комментарий

0800

LDA

0B00 h

3A 00 0B

; чтение числа из памяти

0803

CMA

2F

; инвертирование числа

0804

STA

0B01 h

32 01 0B

; запись числа в память

0807

HLT

76

; останов

Таблица 3.5 – Программа инвертирования содержимого ЯП на языке Ассемблер

При использовании косвенной адресации

Адрес

Метка

Команда

Операнд

Машинный код

Комментарий

0800

LXI

H, 0B00 h

21 00 0B

; запись в пару регистров

; H-L адреса числа

0803

MOV

A, M

7E

; чтение числа из памяти

0804

CMA

2F

; инвертирование числа

0805

INX

H

23

; увеличение на 1 адреса

; числа

0806

MOV

M, A

77

; запись числа в память

0807

HLT

76

; останов

Рисунок 3.16 – Схема алгоритма циклической программы суммирования однобайтных чисел

Таблица 3.6 – Циклическая программа суммирования однобайтных чисел

На языке Ассемблер

Адрес

Метка

Команда

Операнд

Машинный код

Комментарий

0800

LXI

H, 0A00 h

21 00 0A

; адрес первого слагаемого

0803

MVI

B, 05h

06 05

; количество слагаемых

0805

ADD B:

XRA

AC

AF

; обнуление регистра AC

0806

MOV

C, AC

4F

; обнуление регистра C

0807

M1:

ADD

M

86

; суммирование

0808

JNC

M2

D2 0C 08

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

; M2, если (TC) = 0

080B

INR

C

0C

; увеличение содержимого

; регистра C на единицу

080C

M2:

INX

H

23

; увеличение содержимого

; пары регистров H-L

; на единицу

080D

DCR

B

05

; уменьшение на единицу

; содержимого счетчика

; циклов

080E

JNZ

M1

C2 07 08

; условный переход на M1, если (TZ) = 0

0811

HLT

76

; останов

Таблица 3.7 – Программа суммирования массива однобайтных чисел на языке

Ассемблер, содержащая подпрограмму

Адрес

Метка

Команда

Операнд

Машинный код

Комментарий

0800

LXI

H, 0A00 h

21 00 0A

; адрес первого слагаемого

0803

MVI

B, 05h

06 05

; количество слагаемых

0805

CALL

ADD B

CD 09 08

; вызов подпрограммы

; сложения

0808

HLT

76

; останов

0809

ADDB:

XRA

AC

AF

; обнуление регистра AC

080A

MOV

C, AC

4F

; обнуление регистра C

080B

M1:

ADD

M

86

; суммирование

080C

JNC

M2

D2 10 08

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

; M2, если (TC) = 0

080F

INR

C

0C

; увеличение содержимого

; регистра C на единицу

0810

M2:

INX

H

23

; увеличение содержимого

; пары регистров H-L на

; единицу

0811

DCR

B

05

; уменьшение на единицу

; содержимого счетчика

; циклов

0812

JNZ

M1

C2 0B 08

; условный переход на M1, если (TZ) = 0

0815

RET

C9

; возврат в основную

; программу