.model small
.data
x1 dw 1
y1 dw 2
x2 dw -3
y2 dw 1
s dw 2
t dw 1
u dw -4
F1 dw ?
F2 dw ?
R dw ? ; 1 - разные полуплоскости
; 0 - одна полуплоскость
.code
Start:
mov ax, @data
mov ds, ax
;--------------------------------
; F1 = s*x1 + t*y1 + u
;--------------------------------
mov ax, s
imul x1
mov bx, ax
mov ax, t
imul y1
add ax, bx
add ax, u
mov F1, ax
;--------------------------------
; F2 = s*x2 + t*y2 + u
;--------------------------------
mov ax, s
imul x2
mov bx, ax
mov ax, t
imul y2
add ax, bx
add ax, u
mov F2, ax
;--------------------------------
; Проверка знаков F1 и F2
;--------------------------------
mov ax, F1
cmp ax, 0
jg F1_POS
; F1 < 0
mov ax, F2
cmp ax, 0
jg DIFFERENT
jmp SAME
F1_POS:
mov ax, F2
cmp ax, 0
jl DIFFERENT
SAME:
mov R, 0
jmp FINISH
DIFFERENT:
mov R, 1
FINISH:
mov ax, 4C00h
int 21h
end Start