Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабораторные работы / Работа с массивами

.doc
Скачиваний:
40
Добавлен:
21.02.2014
Размер:
95.23 Кб
Скачать

Саратовский государственный технический университет

Балаковский институт техники, технологии и управления

Лабораторная работа №4

по

Микропроцессорным устройствам систем управления

«Работа с массивами»

Выполнил: ст. гр. УИТ-52

Проверил: преподаватель

Коптенко В.И.

Балаково 2000

Цель работы: научиться работать с массивами, обрабатывать и сортировать массивы чисел.

Задание.

Дан массив ИЗ 20 ТОЧЕК+_2 . Составить программу, которая выбирает две точки с минимальным расстоянием.

Адрес

Машин-ный код

Метка

Мнемокод

Комментарий

Основная часть программы

0800

16 63

MVI b,63

в регистре b количество елементов массива=100

0802

15

DCR D

0803

0805

0E 62

0d

MVI c,62

Dcr c

Внутренний цикл будет до (b-1)

0806

21ff ff

LXI H FFFF

ОЧИСТКА РЕЗУЛЬТАТА

0809

22 00 b2

SHLD B200

080c

22 02 b2

SHLD B202

080f

22 04 b2

SHLD B204

0812

21 00 0B

LXI D B000

в пару DE – адрес первого элемента массива

0815

21 02 b0

LxI H B002

в пару HL – адрес ВТОРОГО элемента массива

0818

0819

082a

082b

082c

082d

082e

0831

D5

62

6c

23

23

c5

01 00 00

1a

M2:

Lop1:

Push d

Mov h, d

Mov l, e

Inx h

inx h

PUSH BC

LXI B 0000

ldax d

0832

9e

Sbb m

0833

D4 38 08

Jnc no_per

0836

2a

Cma

Модуль

0837

3c

inr a

0838

Cd 76 08

No_per

Call kwadra

083b

D5

Push d

083c

23

Inx h

083d

13

Inx d

083e

1a

Ldax d

083f

9e

Sbb m

0840

D4 45 08

Jnc no_per

0843

2a

Cma

0844

3c

Dcr a

0845

Cd 76 08

No_per

Call kwadra

0848

3e 01 b2

Mvi a, b201

Если полученный результат меньше предшествующего, то он заносится в ячейку памяти

084b

91

Sub c

084c

3e 00 b2

Mvi a, b200

084f

98

Sbb b

0850

D467 08

Jnc no_p

0853

2b

Dcx h

0854

22 02 b2

Shld b202

0857

1b

Dcx d

0858

Eb

Xchg

0859

22 04 b2

Shld b204

5c

Eb

xchg

085b

11

Inx d

085d

21

Inx h

085e

085f

0860

0861

0864

0865

0866

E5

C5

E3

22 00 b2

e3

d1

e1

Push h

Push d

Xthl

Shld b200

Xthl

Pop d

Pop h

0867

23

No_p

Inx h

0868

C1

Pop b

0869

05

Dcr b

086a

C2 2d 08

Jnz lop1

086d

D1

Pop d

086e

13

Inx d

086f

13

Inx d

0870

0d

Dcr c

0801

C8

Rz

0872

59

Mov d, c

0873

C3 18 08

Jmp m2

Процедура возведение в квадрат

PROC KWADR

заголовок процедуры

0876

E5

PUSH H

сохраним в В значение правого элемента массива

0877

0878

67

6h

MOV H,A

MOV L, A

0879

7d

CIK

MOV A, L

087a

81

ADD C

087b

087c

087d

087e

087f

4f

3e 0

88

46

25

MOV C, A

MVI A, 0

ADC B

MOV B,A

DCR H

0880

0883

0884

C4 79 08

E1

C9

JNZ CIK

POP H

RET

В результате выполнения программы по адресу и b202 и b204 адреса координат точек , расстояния между которыми минимальное. Квадрат расстояния в b200