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

Первая команда сложения складывает значения из регистров С и Е. Результат 000, флаг переноса с устанавливается в единицу. Вторая команда сложения – ADC складывает содержимое В и D и прибавляет флаг значение флага переноса. Результат- 002. В результате выполнения программы по адресу 000200- младший байт суммы- 000, по адресу 000201- старший байт- 002.

Проверка: 0003778= 25510, 4018= 25710, 255+257= 512, 51210=10008.

Программа 3.5

Программа реализует вычитание двух 16-разрядных чисел.

Адрес

Команда

Мнемоника

Комментарии

000

001

LXI B

Загрузка регистровой пары B

001

000

B2

B2 -> (С)

002

002

B3

B3 -> (B)

003

021

LXI D

Загрузка регистровой пары D

004

001

B2

B2 -> (E)

005

001

B3

B3 -> (D)

006

171

MOV A, C

Копирование значения из регистра С в А

007

223

SUB E

Вычитание из аккумулятора содержимого регистра E

010

041

LXI H

Загрузка адреса памяти

011

200

B2

мл. байт адреса

012

000

B3

ст. байт адреса

013

167

MOV M, A

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

014

170

MOV A, B

Копирование значения из регистра B в А

015

232

SBB D

Вычитание с учетом заема

016

043

INX H

Увеличение содержимого регистровой пары H на 1

022

167

MOV M, A

Запись результата в память

023

166

HLT

Останов

Также как и в предыдущей программе, второе арифметическое действие выполняется с учетом флага с, сформированного при прошлом действие.

В результате выполнения программы по адресу 000200 записан младший байт разности- 377, по адресу 000201- старший – 000.

Проверка: 512-257= 25510=3778.

Программа 4

Обнуление заданной области памяти. Программа реализована в виде циклического алгоритма.

Адрес

Команда

Мнемоника

Комментарии

000

227

SUB A

Обнуление аккумулятора

001

041

LXI H

Загрузка адреса памяти

002

015

B2

мл. байт адреса

003

000

B3

ст. байт адреса

004

037

MVI E

Загрузка регистра Е

005

036

B2

Байт

006

167

MOV M, A

Копирование из А в память

007

043

INX H

Увеличение регистровой пары Н на 1

010

035

DCR E

Уменьшение содержимого регистра Е на 1

011

302

JNZ

Переход по условию Z=0

012

006

B2

Мл. байт адреса

013

000

B3

Ст. байт адреса

014

166

HLT

Останов

Результат выполнения:

Программа обнулит заданное в регистре E число ячеек памяти, начиная с адреса, указанного в регистровой паре HL.