> Hope this is the right place to post.. > > I'm trying to convert some old Turbo Pascal asm to win32 fpc asm and > dont know where to start.. > > I'm compiling with -Sd and -Twin32 and {$asmmode intel}.. > > An example of what I'm trying to port: > > procedure ClearFlag(var Flags: word; FlagMask: word); assembler; > asm > pop ax > pop di > pop es > not ax > and es:[di], ax > end; > > > If I change ax to eax, di to edi and es:[di] to [di], the code compiles > without warnings or errors, but I don't know if that's the right thing > to do.
No. The calling conventions are different > Any pointers, howtos, wiki pages, or whatever else that anyone could > offer to point me in the right direction would be greatly appreciated.. In this case, I think assembler is slower since it can't be inlined. Note that TP uses a lot of assembler to workaround non-optimalisation. IOW just do a : procedure ClearFlag(var Flags: word; FlagMask: word); inline; begin flags:=flags and not flagmask end; (and possibly a {$inline on} globally for that unit) ... and hope this code was really rate-determining in speed, since you are in for a speed boost :-) _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal