Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчетК580.doc
Скачиваний:
8
Добавлен:
16.04.2015
Размер:
623.62 Кб
Скачать

5.4. Программа 4

Программа позволяет сложить содержимое регистра с содержимым ячейки памяти.

Складывается содержимое аккумулятора А с числом 100, записанным по адресу H=000 L=200.

Текст программы представлен в Таблице 4.

Таблица 4

Адреса

Команды

Мнемоника

Комментарии команд

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

; Останов

До выполнения программы по адресу 000 200 было записано число 020, в результате выполнения программы содержимое этой ячейки памяти увеличилось на 010 и стало равным 030. Если выполнить ту же программу, но использовать вместо команды ADD M (код 206) команду ADC M (код 216), результат никак не изменится.

В Таблице 5 представлены результаты выполнения программы в автоматическом режиме.

Таблица 5

шаг

содержимое ячейки памяти с адресом 000 200

0

020

1

030

3

040

4

050

5

060

6

070

7

100

8

110

Программа вычитания двух чисел:

lxi H, 000, 200

mvi D, 010

mvi A, 100

sub D

movM,A

Результат: по адресу 000 200 записана разница чисел 100 и 010 = 060

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

lxi H, 000, 200

mvi A, 045

mvi B, 066

add B

daa

mov M, A

Результат: по адресу 000 200 записана сумма десятичных чисел 25 и 36 = 61

Программа вычитания двоично-десятичных чисел:

lxi H, 000, 200

mvi A, 99

mvi B, 50

sub B

inc A

mov M, A

mvi A, 75

add M

daa

mov M, A

Результат: по адресу 000 200 записан результат вычитания десятичных чисел 75 и 50 = 25

5.5. Программа 5

Программа использует логическую операцию, операции сдвига и запоминания Слова Состояния Программы.

Перед выполнением программы по адресам от Н=000 L=011 до H=000 L=040 могут содержаться ненулевые данные, поскольку туда производилась запись данных и команд предыдущими программами.

Текст программы представлен в Таблице 6.

Таблица 6

Адреса

Команды

Мнемоника

Комментарии команд

L=000

006

MVI B

; Непосредственная загрузка

001

200

В2

; данных в РгВ

002

076

MVI A

; Непосредственная загрузка

003

001

B2

; данных в A

004

250

XRA B

; Cложение по mod 2 содержимого A c Рг B

005

027

RAL

; Циклический сдвиг влево через перенос

006

061

LXI SP

; Инициализация указателя стека

007

202

В2

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

010

000

В3

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

011

365

PUSH PSW

; Запоминание в стеке Слова Состояния Программы

012

166

HLT

; Останов

Анализ аккумулятора и флагов состояния в ходе выполнения команд представлен в Таблице 7.

Таблица 7

команда

А

F

mvi B, data

xxxxxxxx

xx0x0x1x

mvi A, data

00000001

xx0x0x1x

xra B

10000001

10000110

ral

00000010

10000111

lxi SP

00000010

10000111

push PSW

00000010

10000111

HLT

00000010

10000111

Результат: по адресу 000 200 записано число 207 = 10000111 – это значение флагов, по адресу 000 201 записано число 002 = 00000010 – это значение аккумулятора. Т.о. в стек было записано слово состояния.