这是代码(适用于masm64)
include \masm64\include64\masm64rt.inc ; библиотеки
count PROTO arg_a:QWORD,arg_b:QWORD,arg_c:QWORD,arg_d:QWORD, arg_e:QWORD,arg_f:QWORD
.data
_a1 dq 2
_b1 dq 4
_c1 dq 2
_d1 dq 2
_e1 dq 2
_f1 dq 8
_res1 dq 0
_title db "Лаб.1-2. Процедуры. masm64",0
strbuf dq ?,0
_text db "Уравнение f/e — b/d – a/c",0ah,"Результат: %d",10,"Адрес переменной в памяти: %p",0ah,0ah,
"Автор: Неопознанный пингвин",0
.code
count proc arg_a:QWORD, arg_b:QWORD,arg_c:QWORD, arg_d:QWORD, arg_e:QWORD, arg_f:QWORD ; переносим параметри, как аргументи функции
mov rax,arg_f ; f->rax
div arg_c ; f/e
mov rbx,rax ; f/e->rbx
xor rax,rax ; rax=0
mov rax,rdx ; b->rax
div arg_d ; b/d
sub rbx,rax ; (f/e)-(b/d)
xor rax,rax ; rax=0
mov rax,rcx ; a->rax
div arg_c ; a/c
sub rbx,rax ; (f/e)-(b/d)-(a/c)
mov _res1,rbx ; содержимое rax в _res1
ret
count endp
entry_point proc
invoke count,_a1,_b1,_c1,_d1,_e1,_f1
invoke wsprintf,ADDR strbuf,ADDR _text,_res1,ADDR _res1
invoke MessageBox,0,addr strbuf, addr _title, MB_ICONINFORMATION
invoke ExitProcess,0
entry_point endp
该程序的工作方式如下:它解决了数学问题 f/e - b/d - a/c 并将结果发送到消息框,但它不起作用。它通常在没有调用计数的情况下工作,但我需要这部分代码。我该如何解决?