Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPS_laby.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
403 Кб
Скачать
☆

Программа №8

Деление двух целых беззнаковых чисел

адрес

машинный

код

метка

мнемокод

t

примечание

загрузка операндов

0800

0E YY

MVI C, YY

7

(C)(YY) (делитель)

0802

21 XXXX

LXI H XXXX

10

(H,L)(XXXX) (делимое)

0805

CD00009

CALL D16

17

вызов программы деления

0808

FF

RST7

11

переход на связь с пультом

проверка частного на переполнение Z>8

0900

7C

D16

MOV A,H

5

(A)(H)

0901

91

SUB C

4

(A)(A)-(C)

0902

D0

RNC

11

возврат если переполнение CY=0

0903

0608

MVI B,08

7

(B)(08)

сдвиг влево остатка и частного

0905

29

M1

DAD H

10

(H,L)(H,L)+(H,L)

0906

7C

MOV A,H

5

(A)(H)

0907

DA1309

JC 0913

10

переход если CY=1

вычитание делителя из остатка

090A

91

SUB C

4

(A)(A)-(C)

090B

D21409

JNC 0914

10

переход если СY=0

восстановление остатка если Q-Y<0

090E

81

ADD C

4

(A)(A)+(C)

090F

67

MOV H,A

5

(H)(A)

0910

C31609

JMP 0916

10

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

переполнение остатка разряд частного равен 1

0913

91

M2

SUB C

4

(A)(A)-(C)

0914

67

M3

MOV H,A

5

(H)(A)

0915

23

INX H

5

(H,L)(H,L)+1

проверка конца цикла

0916

05

M4

DCR B

5

(B)(B)-1

0917

C20509

JNZ 0905

10

переход если Z=0

091A

37

STC

4

(CY)1

091B

C9

RET

11

возврат из подпрограммы безусловный

Время выполнения программы:

t=7+10+17+5+4+11+7+(10+5+10+4+10+4+5+10+4+5+5+5+10)*16+4+11+11=1479T

t=1479/2=739,5мкс

11

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]