;-----------------------------------@ y5, y1si,y5di,a0MULT ; y5 = y5*a0@ y4, y5 ; y4 = y5@ y5, y2si,y5di,a1MULT ; y5 = y5*a1si,y4di,y5FSUMMA ; y4 = y4+y5@ y5, y3si,y5di,a2MULT ; y5 = y5*a2si,y4di,y5FSUMMA ; y4 = y4+y5di,ynt ; üsi,y4 ; ô
; add di,index ;ýcx,2 ; | y(nT) = y4movsw ; þ
;start
;===============================================
MULT PROC FAR
; Первый операнд X находится в регистрах BX:SI,
; второй Y в регистрах DX:DI, произведение
; возвращается в регистрах BX:SI.
; При возникновении особого случая CF=1
;
; lea si,X ; в нашем случае не используются
; lea di,Y ; в нашем случае не используются
;bx,[si+2]si,[si]dx,[di+2]di,[di]: ; Проверить операнды на нульax,bx ; Проверить на 0ax,si ; первый операнд@@M1 ; Произведение равно 0ax,dx ; Проверить на 0ax,di ; второй операндMULF1 ; Операнды не равны 0bx,dx ; Произведение равно 0si,di
@@M1: jmp MULF8
;
; Операнды не нулевые, можно умножать.
; Образовать знак произведения, восстановить мантиссы.: mov ch,bh ; Знак произведенияch,dh ; в регистре CHbx,1 ; Восстановить скрытый бит; мантиссы первого операндаbl,1dx,1 ; Восстановить скрытый бит; мантиссы второго операндаdl,1
; Сложить порядки.al,bh ; Сложить в ALal,dh ; смещенные порядкиMULF2 ; Возник переносal,127 ; Вычесть смещениеMULF3 ; Можно умножатьMULF8 ; Возникло антипереполнение: add al,129 ; Учесть потерю 256 из-за переносаMULF3 ; Можно умножатьMULF8 ; Возникло переполнение
; Можно умножать мантиссы.: mov bh,al ; Порядок произведения в BHdh,dh ; Подготовить местоax,ax ; для произведенияcl,dl ; Освободить регистр DX
; Здесь начинается цикл умножения: mov ax,si ; Умножить младшиеdi ; слова мантиссWORD PTR TEMP,dx ; Сохранить старшую часть
;произведенияal,blah,0diWORD PTR TEMP,ax ; Учесть результатNEXT ; в полном произведенииdx: mov WORD PTR TEMP+2,dxal,cl ; Умножить следующиеah,0 ; части мантиссsiWORD PTR TEMP,axNEXT1dx: add dx,WORD PTR TEMP+2al,bl ; Умножить старшиеcl ; байты мантиссax,dx ; Образовать полное произведениеbl,ah ; и разместить егоah,al ; в регистрах BL:SIal,BYTE PTR TEMP+1si,ax
; Проверить нарушение нормализации влево.: or bl,bl ; Проверить старший бит мантиссыMULF7 ; Нарушения нормализации нетbh ; Увеличить порядок на 1; CF=1MULF8 ; Возникло переполнениеMULFA ; Переполнения нет: shl si,1 ; Сдвинуть мантиссуbl,1 ; влево на один бит
; Формирование результата: add ch,ch ; Знак во флаге переносаbh,1 ; Знак числа на местеch,1 ; Младший бит порядка в CHch,7fh ; Образовать маскуbl,ch ; Образовать 2-й байт произведенияdi,Z[di],si[di+2],bx: ret
MULT ENDP
;=================================================
; подпрограмма сложения чисел в формате ПЗ
;======================================================PROC FAR
; 1. Сравнение порядков для определения большего
@S:cl,[si+2] ; Занесение в регистр CXch,[si+3] ; двух старших байтов числа X в ФПЗ.dl,[di+2] ; Занесение в регистр DXdh,[di+3] ; двух старших байтов числа Y в ФПЗ.
; ДЛЯ ВЫЧИТАНИЯ НАДО В СТРОКЕ 30 УДАЛИТЬ
;ТОЧКУ С ЗАПЯТОЙ
; XOR DH,80H
;cx,1 ; Занесение порядка числа X в CHcl,1 ; (и знака в бит 23).dx,1 ; Занесение порядка числа Y в DHdl,1 ; (и знака в бит 23).
;ch,dh ; Сравнение порядков X и Y@L1 ; Переход, если (CH) < (DH) (Px < Py).
Читайте также
Проект соединительной цифровой радиорелейной линии для сети сотовой связи Томск - Володино
Темпы
увеличения потребности в электросвязи и соответственно темпы реализации этой
потребности в технических системах непрерывно увеличивались на всем протяжении
закончившегося ХХ века ...
Основы статистической теории радиолокации
Если
о сигнале все известно , то нет необходимости в его приеме, если о нем ничего
не известно, то его невозможно отличить от помех, и прием его невозможен.
Поэтому,
...
Проектирование двухвходовой КМОП-схемы дешифратора 2 в 4
КМОП
(комплементарная логика на транзисторах металл-оксид-полупроводник; англ. CMOS,
Complementary-symmetry/metal-oxide semiconductor) - технология построения
электронных схем. В те ...