尝试弄清楚如何在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如果需要更多的代码来确定调用子例程的正确方式,请让我知道。再次感谢!
发布于 2014-11-01 23:14:24
很明显,我昨晚编程时太累了,没有意识到我的测试输入选择得太差了。我的代码一切都很好!很抱歉给您带来不便!作为参考,这是MASM。
https://stackoverflow.com/questions/26686021
复制相似问题