在x86程序集中调用具有多个参数的子例程

时间:2014-11-01 03:46:00

标签: assembly x86

试图弄清楚如何在x86程序集中多次正确调用具有多个参数的子程序。任何帮助表示赞赏!使用Irvine库来实现这一目标。 代码的第一部分是我正在尝试的但它似乎不起作用,至少不是它应该的方式:

push OFFSET r1
push OFFSET c0
push OFFSET b0
push OFFSET a0
push 0
call quadratic ;(0,a0,b0,c0,r1)

并且第二部分代码似乎是正确的:

quadratic   PROC
; calculation of the roots of a parabola
; Receives from stack
;   flag = type of root (0=positive, 1=negative) [integer, value parameter]
;   a$, b$, c$ = parabola parameters [REAL reference parameters]
; Returns
;   Specified root [REAL8 reference parameter]
PARAMS  = 3*TYPE DWORD ; number of temporaries plus return address
FLAG = PARAMS+0
A$ = PARAMS+4
B$ = PARAMS+8
C$ = PARAMS+12
RESULT = PARAMS+16

如果需要更多代码来确定调用子例程的正确方法,请告诉我。再次感谢!

1 个答案:

答案 0 :(得分:0)

显然我昨晚在编程时太累了,并没有意识到我的测试输入选择不当。一切都很好我的代码!抱歉给你带来不便!作为参考,这是MASM。