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

лабораторные работы / Выполнение арифметических операций

.DOC
Скачиваний:
65
Добавлен:
21.02.2014
Размер:
35.33 Кб
Скачать

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

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

Кафедра УИТ

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

“Выполнение арифметических операций”

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

Шилин А.А.

Дорофеев А.Г.

Верес А.В.

Храмов Д.Г.

Проверил: Грицюк С.Н.

Балаково 1998

Цель работы:

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

1. Все программы арифметических действий, написанные для КР580ВМ80 базируются на основных арифметических командах этого процессора. Их можно условно разделить на следующие группы:

  • команды сложения:

ADI 0XXh, ACI 0XXh, ADD B, ADD C, ADD D, ADD E, ADD H, ADD L, ADD M, ADD A, ADC B, ADC C, ADC D, ADC E, ADC H, ADC L, ADC M, ADC A

  • команды вычитания:

SUI 0XXh, SBI 0XXh, SUB B, SUB C, SUB D, SUB E, SUB H, SUB L, SUB M, SUB A, SBB B, SBB C, SBB D, SBB E, SBB H, SBB L, SBB M, SBB A

  • команды инкрементирования и декрементирования:

INX B, INR B, DCR B, DCX B, INR C, DCR C, INX D, INR D, DCR D, DCX D, INR E, DCR E, INX H, INR H, DCR H, DCX H, INR L, DCR L, INX SP, INR M, DCR M, DCX SP, INR A, DCR A, DAD B, DAD D, DAD H, DAD SP

  • команды десятичной коррекции

DAA

Все эти команды заносят результат вычислений в аккумулятор.

2. Программа сложения массива однобайтных чисел

На входе: в HL адрес массива, в B размер массива

На выходе: в А младший байт, в С старший байт суммы

Адрес

Машинный код

Метка

Мнемокод

Комментарий

0800

21 00 0B

main

lxi h,0b00

0803

06 05

mvi b,05

0805

cd 09 08

call addval

0808

cf

rst 1

0809

af

addval

xra a

080a

4f

mov c,a

080b

86

more

add m

080c

d2 10 08

jnc small

080f

0c

inr c

0810

23

small

inx h

0811

05

dcr b

0812

c2 09 08

jnc addval

0815

c9

ret

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

На входе: в DE адрес уменьшаемого, в HL адрес вычитаемого, в C число байтов.

На выходе: в HL адрес старшего байта результата

Адрес

Машинный код

Метка

Мнемокод

Комментарий

0820

11 00 0b

main

lxi d,0b00

0823

21 05 0b

lxi h,0b05

0826

0e 05

mvi c,05

0828

cd 2c 08

call sub_val

082b

cf

rst 1

082c

af

sub_val

xra a

082d

1a

s_loop

ldax d

082e

9e

sbb m

082f

77

mov m,a

0830

23

inx h

0831

13

inx d

0832

0d

dcr c

0833

c2 2d 08

jnz s_loop

0836

c9

ret

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

На входе: в D множимое, в E множитель

На выходе: в BC байты результата

Адрес

Машинный код

Метка

Мнемокод

Комментарий

0840

11 03 03

main

lxi d,0303

0843

cd 47 08

call multip

0846

cf

rst 1

0847

01 00 00

multip

lxi b,0

084a

3f 01

mvi a,01

084c

a7

ana a

084d

f5

m_loop

push psw

084e

a3

ana e

084f

78

mov a,b

0850

ca 54 08

jz skip

0853

82

add d

0854

1f

skip

rar

0855

47

mov b,a

0856

79

mov a,c

0857

1f

rar

0858

4f

mov c,a

0859

f1

pop psw

085a

17

ral

085b

d2 xx xx

jnc m_loop

085e

c9

ret