asm code and an inout function argument
Denis Koroskin
2korden at gmail.com
Fri May 15 03:38:16 PDT 2009
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.
More information about the Digitalmars-d
mailing list