Снос зданий:
ecosnos.ru
Главная  Микроустройства: номенклатура изделий электронной промышленности 

1 2 3 4 5 6 7 8 9 10 11 12 [ 13 ] 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

Команда

-------р-.-.

Содержание команды. Пояснения

0)+12

. ЛС/

0

А +0+Q РА. Перенос из младших байтов HL суммы частичных произведении прибавляется к старшему байту

DCR С

С - 1 PC, Уменьшение на 1 кода счетчика циклов

0)+15

JNZ ш +6

Переход по 2 = 0. При Z = 0 С 0 и, следовательно, умножение иа младший байт не окончено

0)+18

SHLD а

PHL~3y (а). .Засылка младших байтов результата в ЗУ по адресу а (L) и а + 1 (Я)

0)+21

MOV Н, С

Q-PH. Сброс в 0 РН путем засылки кода 0 из PC

(0+22

MOV L, А

A-PL. Старшин байт результата умножения на младший байт множителя пересылается в PL для дальнейшего сложения с суммой частичных произведений

(0+23-

В-РА. Действия, аналогичные тем действиям, которые выполнялись командами со+3,..ш+15.

0)-f35

В результате выполняется у.множение на старший байт множителя. Переход по Z = б

(0+38

XCHG

PHL->PDE. Обмен содержимым регистров PHL и PDE

(0+39

LHLD а+1

ЗУ (а + 1) PHL. Засылка в PL второго байта результата умпожепип множимого на младший байт множителя

03+42

н, с

0-*-РН. Сброс в 0 РН

(0+43

DAD D

DEHLPHL. Формирование второго и третьего аитов произведения

(0+44

ADC С

Л + 0 +Q РА. Формирование старшего байта произведения



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

IK am

Команда

Содержание команды. Пояснения

LX1 В 00

00- -РВС. Сброс в 0 регистра РВС

ANA А

0TQ. Установка признака Q в состояние 0

©+4

LHLD а

ЗУ (а + 1, а) PHL. Пересылка делимого (остатка) в PHL. Во втором и^прследующих циклах команда используется для восстановления положительного остатка

Q-TQ. Инвертирование переноса

А, С

С-*РА, 2A + Q-*PA, А-РС, В-*РА, 2Л + + Q-vPi4, А-*РВ. Сдвиг частного, которое формируется в РВС, на один разряд влево и запись в младший разряд РВС очередной цифры частного. В первом цикле в младший разряд

ю+Ю

MOV С, А

РВС записывается маркерная 1, по которой в дальнейшем фиксируется конец деления

00+11

MOV А, В

о)+12

00+13

MOV В, А

JC о)+33

Переход по Q= 1. При Q = 1 маркерная 1 попала в TQ. Это означает, что все циклы деления выполнены и, следовательно, надо перейти к команде HLT, которая в данном случае означает конец деления. При Q - Q деление следует продолжить

о)+17

DAD Н

2HL PHL. Сдвиг остатка на один разряд влево

tt)+18

SHLD а

PHL-+3y (а+ 1, а). Запись остатка в ЗУ для его восстановления, если он окажется меньше делителя



Продолжение табл, 1.19

X кто

Команда

Содержание команды. Поясиеиия

й)+21

L-PA, А - Е-РА, APL, Н-РА, А - - D - Q-*-РА, АРН. Из остатка вычитается делитель

о)+22

SUB Е

tt)+23

MOV L, А

(0+24

MOV А, Н

(0+25

SBB D

(0+26

MOV Н, А

(0+27

JNC со+7

Переход по Q = 0. Если Q = 0, то это означает, что очередной остаток положительный, очередная цй()ра частного равна 1 и следует перейти к выполнению сдвигов

(0+30

JMP (0+4

Безусловный переход. Эта команда выполняется после команды JNC, если Q - \ и, следовательно, очередной остаток отрицательный и его надо восстановить

(0+33

Останов. Конец деления

сом (0..+ 1 хранится второй байт команды MVI, а в ячейках с адресами (о + 14 и (о -(- 15 - второй и третий байтьг команды JZ. Так как команда ADC однобайтная и хранится в ячейке с адресом (О + 10, то первый байт следующей команды записан по адресу (0+11. Если в рассмотренной программе заменить команду ADC командой SBB, получим программу вычитания для многобайтовых чисел. Если же после команды ADC поставить команду' DAA десятичной коррекции, получим программу сложения 2/г-раз-рядных десятичных чисел.

В табл. 1.16 приведена программа десятичнсгго вычитания га-байтных десятичных чисел, адреса младших байтов Которых указаны в регистрах PDE и PHL. Поясняет программу цифровая диаграмма для вычитания трехбайтных чисел, приведенная в табл. 1.17. При выполнении операций над третьим байтом перенос не Возник, что в данном случае является признаком отрицательного результата, представленного в дополнительном коде.



1 2 3 4 5 6 7 8 9 10 11 12 [ 13 ] 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95