asm code and an inout function argument
Vladimir A. Reznichenko
kalessil at gmail.com
Fri May 15 03:41:35 PDT 2009
Denis Koroskin Wrote:
> On Fri, 15 May 2009 14:24:16 +0400, Vladimir A. Reznichenko <kalessil at gmail.com> wrote:
>
> > I have a function:
> >
> > void test (inout uint a)
> > {
> > asm
> > {
> > mov a, 0x25;
> > }
> > }
> >
> > The trouble is that the function's call doesn't change the a variable.
> > Any ideas?
> >
>
> I believe your code is incorrect. This is how it should be done:
>
> import std.stdio;
>
> void test (out uint a)
> {
> asm
> {
> mov EDX, a;
> mov [EDX], 0x25;
> }
> }
>
> void main()
> {
> uint a = 0;
> test(a);
>
> writefln("0x%x", a);
> }
>
> Perhaps, errors like yours could be flagged at compile time? If so, an enhancement request would be nice.
Thank you, Denis.
More information about the Digitalmars-d
mailing list