Программное обеспечение

;-----------------------------------@ 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).

Перейти на страницу: 1 2 3 4

Читайте также

Проект соединительной цифровой радиорелейной линии для сети сотовой связи Томск - Володино
Темпы увеличения потребности в электросвязи и соответственно темпы реализации этой потребности в технических системах непрерывно увеличивались на всем протяжении закончившегося ХХ века ...

Основы статистической теории радиолокации
Если о сигнале все известно , то нет необходимости в его приеме, если о нем ничего не известно, то его невозможно отличить от помех, и прием его невозможен. Поэтому, ...

Проектирование двухвходовой КМОП-схемы дешифратора 2 в 4
КМОП (комплементарная логика на транзисторах металл-оксид-полупроводник; англ. CMOS, Complementary-symmetry/metal-oxide semiconductor) - технология построения электронных схем. В те ...

Основные разделы

Все права защищены! (с)2024 - www.generallytech.ru