Я пытаюсь решить уравнение. Я использую MASM32. Я думаю, что я использую правильный код. Но я получаю «большее» значение, даже когда я использую необходимые значения для решения уравнения. Что мне не хватает или что-то не так?Ассемблер простой расчет с помощью скобок
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
.data
blogas_a db "OK",0
a_value dw 6
a_min dw 1
a_max dw 7
blogas_b db "less",0
b_value dw -9
b_min dw -10
b_max dw 19
blogas_c db "greater",0
c_value dw 2
c_min dw -3
c_max dw 27
.code
start:
;________1 lygtis______a-b*c+2*a=36____________________________
_check1:
mov ax, [a_value]
push ax
mov ax, [b_value]
mov bx, [c_value]
mul bx
push ax
mov ax, 2
mov bx, [a_value]
mul bx
push ax
pop ax
pop bx
add ax, bx
pop bx
sub bx, ax
cmp ax, 36
je _outOfRange
jg _outOfRange2
jl _outOfRange3
;_____________________________________
_outOfRange: invoke StdOut, addr blogas_a
JMP _exit
_outOfRange3: invoke StdOut, addr blogas_c
JMP _exit
_outOfRange2: invoke StdOut, addr blogas_b
_exit: invoke ExitProcess, 0
end start
Я попробовал это раньше, и он дает ответ, что он больше. – LTnewbie
@LTnewbie: Я обновил ответ. – DCoder
, но если в конце я использую pop bx sub bx, ax Не должно ли это нормально работать? – LTnewbie