Setup for X64/X86:
https://www.pellesc.se/1450/setup.exe
Setup for ARM64:
https://www.pellesc.se/1450/setupa.exe
Changes:
https://www.pellesc.se/changes/changes_1410_1450.html
Most changes are of the kind "if not correct, none of the Pelles C tools would build or run", but to verify reported bugs are fixed let's do a Release Candidate...
Hi Pelle,
Thanks for the new release. Regarding the keyword ALIAS :
QuoteRevised POASM handling of ALIAS directive (IA32, AMD64, ARM64).
Could you give an example? I am trying to rebuild my example below :
https://forum.pellesc.de/index.php?topic=11168.0
This one does not seem to work with Poasm Version 14.50.0 :
printf PROTO C :DWORD,:VARARG
OutputText PROTO C :DWORD,:VARARG
ALIAS "OutputText"="printf"
Thanks Pelle!
Nice surprise :)
👍👍👍
John Z
Assembling and linking the code below with Poasm Version 14.50.0 :
.386
.model flat,stdcall
option casemap:none
ExitProcess PROTO :DWORD
printf PROTO C :DWORD,:VARARG
OutputText PROTO C :DWORD,:VARARG
ALIAS "OutputText"="printf"
includelib \PellesC\lib\Win\kernel32.lib
includelib msvcrt.lib
.data
string db 'Hello world!',0
.code
start:
invoke OutputText,ADDR string
invoke ExitProcess,0
END start
The executable is crashing.
An Ollydbg session is demonstrating the issue :
012D1000 > $ 68 00202D01 PUSH CalcLen.012D2000 ; ASCII "Hello world!"
012D1005 . E8 F6EFFFFF CALL CalcLen.012D0000
012D100A . 83C4 04 ADD ESP,4
012D100D . 6A 00 PUSH 0 ; /ExitCode = 0
012D100F . E8 00000000 CALL <JMP.&KERNEL32.ExitProcess> ; \ExitProcess
012D1014 $-FF25 5C202D01 JMP DWORD PTR DS:[<&KERNEL32.ExitProcess>; kernel32.ExitProcess
012D101A .-FF25 64202D01 JMP DWORD PTR DS:[<&msvcrt.printf>] ; msvcrt.printf
CALL CalcLen.012D0000 is not correct.