R.Wieser
2020-03-05 08:58:28 UTC
Hello all,
I've got a (very old) Borlands Tasm32 v5.x , and it has a problem that has
been bugging me for the longest time: I can specify QWORD arguments for a
function, but than I'm only allowed to call those functions with constant
values for them.
Question: Does anyone (still) know of this problem, and if so perhaps how to
solve it ?
Remark: Work-arounds have ofcourse been found and used, but having to do
that still irks me.
Regards,
Rudy Wieser
** Minimal example (tested with TASM32 v5.0, 5.3 and 5.4):
TestFunc PROCDESC qVal:QWORD
TestFunc proc
arg @@qVal:QWORD
ret
TestFunc endp
@@qData dq 1234567887654321h
call TestFunc,12345678h 87654321h
-- Works (notice the space, not comma between the two values)
call TestFunc,[@@qData]
-- Error: Argument mismatch
** List file
3650 call TestFunc,12345678h 87654321h ;Works
1 3651 00000008 68 12345678 68 + PUSH 12345678H 87654321H
3652 87654321
1 3653 00000012 E8 FFFFFFE9 CALL TestFunc
1 3660 00000023 FF 35 00000004r FF + PUSH [@@qData]
3661 35 00000000r
1 3662 0000002F E8 FFFFFFCC CALL TestFunc
I've got a (very old) Borlands Tasm32 v5.x , and it has a problem that has
been bugging me for the longest time: I can specify QWORD arguments for a
function, but than I'm only allowed to call those functions with constant
values for them.
Question: Does anyone (still) know of this problem, and if so perhaps how to
solve it ?
Remark: Work-arounds have ofcourse been found and used, but having to do
that still irks me.
Regards,
Rudy Wieser
** Minimal example (tested with TASM32 v5.0, 5.3 and 5.4):
TestFunc PROCDESC qVal:QWORD
TestFunc proc
arg @@qVal:QWORD
ret
TestFunc endp
@@qData dq 1234567887654321h
call TestFunc,12345678h 87654321h
-- Works (notice the space, not comma between the two values)
call TestFunc,[@@qData]
-- Error: Argument mismatch
** List file
3650 call TestFunc,12345678h 87654321h ;Works
1 3651 00000008 68 12345678 68 + PUSH 12345678H 87654321H
3652 87654321
1 3653 00000012 E8 FFFFFFE9 CALL TestFunc
1 3660 00000023 FF 35 00000004r FF + PUSH [@@qData]
3661 35 00000000r
1 3662 0000002F E8 FFFFFFCC CALL TestFunc