|
|
Главная Микроустройства: номенклатура изделий электронной промышленности
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. При выполнении операций над третьим байтом перенос не Возник, что в данном случае является признаком отрицательного результата, представленного в дополнительном коде.
|
|
|