Загрузка данных


.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