Board index » off-topic » Re: Trying to include 32-bit commands in a 16-bit program ...

Re: Trying to include 32-bit commands in a 16-bit program ...


2007-05-25 08:51:47 PM
off-topic13
Vladimir Grigoriev < XXXX@XXXXX.COM >schreef in berichtnieuws
4655b95a$ XXXX@XXXXX.COM ...
<snip explanation about argument-push order>
I know. But that part isn't the problem. What *is* is that when I display,
in the funtion, the arguments in the order I have declared them it does not
match with either of them.
What I do when calling :
call MyFunc Data1,Data2,Data3,Data4,Data5,Data6,Data7,Data8
How I defined the arguments in MyFunc :
arg Arg1, Arg2
arg Arg3,Arg4,Arg5
arg Arg6,Arg7,Arg8
What I see when I display Arg1 thru Arg8 :
Data8, Data7, Data4, Data5, Data6, Data1, Data2, Data3
In short : Using multiple lines of "arg" statements changes the order in
which the arguments are stored into the local variables (same for both Tasm
v1.1 and v4.1)
Regards,
Rudy Wieser
 
 

Re:Re: Trying to include 32-bit commands in a 16-bit program ...

On Fri, 25 May 2007 14:51:47 +0200, "R.Wieser" < XXXX@XXXXX.COM >
wrote:
Quote
How I defined the arguments in MyFunc :

arg Arg1, Arg2
arg Arg3,Arg4,Arg5
arg Arg6,Arg7,Arg8

What I see when I display Arg1 thru Arg8 :

Data8, Data7, Data4, Data5, Data6, Data1, Data2, Data3
Does it help if you try :
arg Arg1, Arg2, \
Arg3,Arg4,Arg5, \
Arg6,Arg7,Arg8 ;
--
Steven
 

Re:Re: Trying to include 32-bit commands in a 16-bit program ...

Steven Saunderson < XXXX@XXXXX.COM >schreef in berichtnieuws
XXXX@XXXXX.COM ...
Quote
On Fri, 25 May 2007 14:51:47 +0200, "R.Wieser" < XXXX@XXXXX.COM >
wrote:

>How I defined the arguments in MyFunc :
<snip>
Quote
Does it help if you try :

arg Arg1, Arg2, \
Arg3,Arg4,Arg5, \
Arg6,Arg7,Arg8 ;
--
Steven
I actually allready tried that with v1.1 (which did not accept it), but
wholly forgot to try again with v4.1 :-\ That version does recognise the
line-continuation character (*and* arguments on the same line as the call,
*and* stdcall, making this problem moot).
I guess that I need to, for this project, ditch the older Tasm version and
use the newer one.
Do you have any idea what the reasoning might be behind the pascal directive
handling the arguments this way ?
Regards,
Rudy Wieser
 

{smallsort}

Re:Re: Trying to include 32-bit commands in a 16-bit program ...

Vladimir Grigoriev < XXXX@XXXXX.COM >schreef in berichtnieuws
465711f2$ XXXX@XXXXX.COM ...
Quote
Can you show the actual code with ALIGN directive that generates an error?

Vladimir Grigoriev
I could, but that probably would not tell you anything.
You see, I've tested the problem by placing the directive at different
places in my source. In between code or data and allso at the top of the
code or data segments. Even in v4.1 with the stdcall model directive. It
does not make a difference.
Does that give you the info you where looking for ?
Regards,
Rudy Wieser
 

Re:Re: Trying to include 32-bit commands in a 16-bit program ...

On Sat, 26 May 2007 12:11:31 +0200, "R.Wieser" < XXXX@XXXXX.COM >
wrote:
Quote
Do you have any idea what the reasoning might be behind the pascal directive
handling the arguments this way ?
I suspect it is just an undocumented feature (bug for short). I tested
with TASM 5.3 and Lzasm and couldn't find any problems. Why can't you
use a newer assembler ?
--
Steven
 

Re:Re: Trying to include 32-bit commands in a 16-bit program ...

Steven Saunderson < XXXX@XXXXX.COM >schreef in berichtnieuws
XXXX@XXXXX.COM ...
Quote
On Sat, 26 May 2007 12:11:31 +0200, "R.Wieser" < XXXX@XXXXX.COM >
wrote:

>Do you have any idea what the reasoning might be behind the pascal
directive
>handling the arguments this way ?

I suspect it is just an undocumented feature (bug for short).
I suspect the same, but am not at all sure about it. Maybe its documented
somewhere, together with a (good) reason to it.
Quote
I tested
with TASM 5.3 and Lzasm and couldn't find any problems.
Why can't you use a newer assembler ?
:-) Tasm 4.1 is the 16-bit assembler that came with (the last seperate
buyable version of ) the "Turbo Assembler v5" -package. Is there a legal
way to obtain v5.3 as a seperate assembler ?
Oh, by the way : did try the code with v1.1 as well as v4.1 , but as I
mentioned that last one throws a whole set of warnings about mismatches that
v1.1 does not. Reason ? It seems to think that the code is stored in a
16-bit segment, and the data in a 32-bit segment. Why or how to solve it ?
No idea. :-|
Regards,
Rudy Wieser
 

Re:Re: Trying to include 32-bit commands in a 16-bit program ...

On Sat, 26 May 2007 16:41:23 +0200, "R.Wieser" < XXXX@XXXXX.COM >
wrote:
Quote
Tasm 4.1 is the 16-bit assembler that came with (the last seperate
buyable version of ) the "Turbo Assembler v5" -package. Is there a legal
way to obtain v5.3 as a seperate assembler ?
Not that I know of. But there is Lzasmx [ lzasm.hotbox.ru/ ]
which runs on DOS. It is IDEAL mode only but help.
--
Steven