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

Адрес

Команда

Мнемоника

Комментарии

L=000

041

LXI H

; Загрузка начального адреса в указатель памяти

001

200

В2

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

002

000

В3

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

003

076

MVI A

; Непосредственная загрузка A одним из слагаемых.

004

010

В2

; Байт данных слагаемого

005

206

ADD M

; Сложение содержимого A c содержимым ячейки памяти

06

167

MOV M,A

; Запоминание значения суммы в ячейке памяти

007

166

HLT

; Останов

До первого выполнения программы в ячейку памяти по адресу 000200 было записано значение 030. При первом выполнение программы в память по адресу 000200 будет записано значение 040, что является результатом суммирования исходного значения аккумулятора и исходного значения ячейки памяти.

В результате каждого следующего выполнения содержимое ячейки памяти будет увеличиваться на 010.

Программа 3.1

Программа реализует вычитание двух чисел, одно из которых расположено в регистре блока РОН.

Адрес

Команда

Мнемоника

Комментарии

000

041

LXI H

;Загрузка начального адреса памяти

001

200

B2

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

002

000

B3

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

003

006

MVI B

;Загрузка регистра B

004

001

B2

;Байт

005

076

MVI A

;Загрузка аккумулятора

006

140

B2

;Байт

007

220

SUB B

;Вычитание значения регистра B из А

010

167

MOV M, A

;запись результата

011

166

HLT

;Останов

По адресу 000200 предварительно записано число 010.

Результат выполнения программы: по адресу 000200 записана разность чисел 140 и 010 – 130.

Программа 3.2

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

Адрес

Команда

Мнемоника

Комментарий

000

041

LXI H

Загрузка начального адреса в указатель памяти

001

200

B2

младший байт адреса

002

000

B3

старший байт адреса

003

066

MVI M

Загрузка слагаемого по адресу, заданному в HL

004

X

B2

005

076

MVI A

Непосредственная загрузка операнда A одним из слагаемым

006

Y

B2

007

206

ADD M

Сложение содержимого A с содержимым ячейки памяти

010

047

DAA

Десятичная коррекция

011

167

MOV M,A

Загрузка результата в регистр М

012

166

HLT

Останов

1.  Слагаемые: X=026 и Y=045. 0268=1610=000101102, 0458=2510=001001012

В данном случае понадобилась десятичная коррекция, так как при сложении в младшем полубайте результата получилась цифра большая 9. Коррекция осуществляется путём прибавления к этому полубайту 6. Результат 010000012= 1018=4110 , что соответствует результату, полученному при выполнении программы.