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

3.4. Листинг программы.

адрес

данные

Код ассемблера

Комментарии

4000

31

LXI SP, 8000h

Создание стека программы

4001

00

4002

80

4003

01

LXI B, 5001h

Помещение в пару В, С адреса массива

4004

01

исходных чисел

4005

50

4006

11

LXI D, 6001h

Помещение адреса массива результатов в

4007

01

пару D, E

4008

60

4009

26

MVI H, 0Ah

Создание счетчика на 10 шагов

400A

0A

400B

E5

M2: PUSH H

Засылка содержимого регистров H, L в стек

400C

0A

LDAX B

Загрузка в А старшего байта числа

400D

E6

ANI 80h

Логическое умножение 80h и А

400E

80

(проверка знакового разряда)

400F

C4

JNZ M1

Если число отрицательное (т.е. Z=0), то

4010

50

будет переход на адрес 4050

4011

40

4012

0A

LDAX B

Загрузка в А старшего байта числа

4013

12

STAX D

Запись старшего байта результата

4014

0B

DCX B

Переход к младшему байту числа

4015

1B

DCX D

Переход к младшему байту результата

4016

0A

LDAX B

Загрузка в А младшего байта числа

4017

12

STAX D

Запись младшего байта числа

4018

03

M3: INX B

Продвижение адресов на следующую пару

4019

13

INX D

исходных чисел и результата (4018 –401B)

401A

03

INX B

401B

13

INX D

401C

E1

POP H

Извлечение содержимого H, L из стека

401D

25

DCR H

Уменьшение счетчика на 1

401E

C4

JNZ M2

Возврат на М2 до исчерпания счетчика

401F

0B

4020

40

4021

C3

JMP 4000

Переход на начало программы

4022

40

4023

00

4050

0B

M1: DCX B

Переход к младшему байту числа

4051

0A

LDAX B

Загрузка в А младшего байта числа

4052

EE

XRI FF

Инвертирование

4053

FF

4054

6F

MOV L, A

Копирование содержимого А в регистр L

4055

03

INX B

Переход к старшему байту числа

4056

0A

LDAX B

Загрузка в А старшего байта числа

4057

EE

XRI FF

Инвертирование

4058

FF

4059

67

MOV H, A

Копирование содержимого А в регистр H

405A

23

INX H

Прибавление к содержимому H, L 1

405B

7D

MOV A, L

Копирование содержимого L в регистр A

405C

1B

DCX D

Переход к младшему байту результата

405D

12

STAX D

Запись младшего байта результата

405E

7C

MOV A, H

Копирование содержимого H в регистр A

405F

13

INX D

Переход к старшему байту результата

4060

12

STAX D

Запись старшего байта результата

4061

C3

JMP M3

Переход по адресу 4018

4062

18

4063

40