ustify">; ***************************************** **************** Макрокоманда зсуву SHIFT @ @MACRO var1, var2di, var1si, var2cx, 2movsw  
; ----------------------------------- SEGMENT PARA STACK «STACK» ; 256 dup (0) ENDS 
 ; ----------------------------------- SEGMENT PARA PUBLIC «DATA» ; dw 1 dup (0); Вхідний сигнал 
  Xnf dd 1 dup (0); Вхідний сигнал формат ПЗdd 1 dup (0); Вихідний сігналdd 1 dup (?); Dd 1 dup (?); Dd 1 dup (?); Dd 1 dup (?); Dd 1 dup (?); Dd 1 dup (0) dd 1 dup (0) dd 1 dup (0) dd 1 dup (0) dd 1 dup (0) db 1 dup (0) db 1 dup (0) 
  DSEG ENDS 
 ; ----------------------------------- SEGMENT PARA PUBLIC «CODE» ; CS: CSEG, DS: DSEG, ES: DSEG, SS: SSEG 
 ; ----------------------------------- 
 ; ----- Основна програма ---------- PROC FAR; Головна подпрограммаax, DSEGds, axes, ax: push cx @ y3, y2; y3=y2 @ y2, y1; y2=y1 
  mov ax, 0 al, port51 xn, ax bl, 0 si, xn ITOF; перетворення цілого xn у формат ПЗ, результат в BX: SI 
  mov Xnf, si Xnf +2, bx 
  lea di, y1; ? si, Хnf; ? si, index; ? cx, 2; ? y1=x (nT) movsw; ? @ Y5, y3; y5=y3si, y5di, b2MULT; y5=y5 * b2si, y1di, y5FSUMMA; y1=y1 + y5 @ y5, y2si, y5di, b1MULT; y5=y5 * b1si, y1di, y5FSUMMA; y1=y1 + y5 
 ; ----------------------------------- @ 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; Звільнит...