True, but if the programs only run on PCs (Windows and Linux on Intel processors in this case) it should work. Not everyone who considers using FPC/Lazarus wants to run the compiled programs on 15 platforms. Sometimes all that is needed is 1 platform. There are some encrypting/decrypting functions that would be hard to write in other than asm, especially if they are already done.

Some projects I just wanted to try to compile strictly on Windows without wanting to go to other OS-es. Just to see if it is possible at all to move projects over to FPC/Lazarus from Delphi with a reasonable amount of work. Until that doesn't work, going to other OS-es is not really viable anyway. Not having a debugger in Lazarus with a properly working watch window and CPU window doesn't help either to do these tasks.

The "offset", "aam" and "aad" asm instructions are not working as they are in Delphi, but there are workarounds fortunately, until they will be fixed in FPC, if ever.

http://bugs.freepascal.org/view.php?id=12595

aam 16 (or aam 8, etc.)
aad 16 (or aad 8, etc.)
Both give compiler errors and points to the wrong source line. Need to use "db" instructions to put the machine code there to circumvent it.

move esi, offset variable
Gives compiler error but the functionality can be replaced with the "lea esi, variable" instruction instead as a workaround.



Michael Schnell wrote:
IMHO, it's not a good idea to "port" ASM code to TP (as TP's purpose is platform independence). So at best you should rewrite this in Pascal. Normally with modern PCs the performance decrease is not noticeable.

-Michael
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel


_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to