Исследование однокристального микропроцессора с фиксированным списком команд, страница 7

Вычитание чисел и ожидаемый результат:

00 000 010   00 000 000

- 00 000 000   10 000 000

  00 000 001   10 000 000 – разность в регистровой паре по адресу H = 000, L = 200.

2.4. Программа 4: «обнуление» заданной области памяти

Ячейки памяти с адресами от L = 011 до L = 040 содержат ненулевые элементы.

Адрес

Код команды

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

Комментарии

L = 000

227

SUB A

обнуление А

001

002

003

041

011

000

LXI H

B2

B3

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

004

167

MOV M, A

запоминание А

005

043

INX H

увеличение содержимого (H)(L) на 1

006

007

010

303

004

000

JMP

B2

B3

безусловный переход

Данная программа представляет собой пример некорректной программы. После выполнения часть ее, до адреса 005, оказывается стертой. Это объясняется тем, что мы достигаем максимального значения адреса (INX H – перенос при сложении) и вновь переходим к адресу 000. Как только программа стирает команду пересылки по адресу 004, она прекращает работать.

Для корректного завершения программы необходимо добавить следующую группу команд:

Адрес

Код команды

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

Комментарии

L = 006

274

CMP Н

сравнение (А) – (Н)

007

010

011

322

004

000

JNC

B2

B3

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

012

275

CMP L

сравнение (А) – (L)

013

014

015

322

004

000

JNC

B2

B3

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

016

166

HLT

останов