llomes
First DB 'Введіть ділене, знакокое 64 бітове число'
Flen = $-first
Second DB 'Введіть дільник, знакова 16 розрядне число'
Slen = $-second
_del db 'Ділене' = $-_del
_del2 db 'Дільник' = $-_del2
_ost db 'Залишок' = $-_ost
_chast db 'Приватне'
clen = $-_chast
nosign db 'У резидента не вірна сигнатура. Натисніть будь-яку клавішу для виходу. 'p align="justify"> nosignlen = $-nosign
divover DB 'Переповнення поділу.'
divoverlen = $-divover
noinst db 'Резидент відсутній у пам'яті. Натисніть будь-яку клавішу для виходу. 'p align="justify"> noinstlen = $-noinst
mainmes db 'Оберіть Alt + A-поділ, Esc-вихід з режиму очікування'
mainlen = $-mainmes
mes_nocall DB 'Ділення на виконано - не була натиснута комбінація Alt + A'
mes_nocalllen = $-mes_nocall
Ostatok db 6 dup (?)
OstatokLEN = $-Ostatok
Chastnoe db 20 dup (?)
ChastnoeLEN = $-Chastnoe
CODESEG
proc Neg64; зміна знака опіісана в резиденті
not [word ptr bx +6] [word ptr bx +4] [word ptr bx +2] [word ptr bx] [word ptr bx], 1 [word ptr bx +2], 0 [word ptr bx +4], 0 [word ptr bx +6], 0
endp Neg64
; -----------------
proc Div64; поділ описано в резиденті
mov [SignR], 1 [SignC], 1bx, bxpositive1 [SignR] bx: si, [word ptr Operand +6] si, sipositive2 [SignR] [SignC] bxbx, offset OperandNeg64bx: dx , dxax, [word ptr Operand +6] bx [word ptr result +6], axax, [word ptr Operand +4] bx [word ptr result +4], axax, [word ptr Operand +2] bx [word ptr result +2], axax, [word ptr Operand] bx [word ptr result], ax [Rem], dx [SignC], 1
je ok1 [Rem]:
cmp [SignC], 1ok2bx, offset operandNeg64: Div64
; ---------------
proc mul6410; множення на 10 для перекл...