I meant I won't try to make a floating point cnstant, and I'll find some way around it. All in all, if we really NEED to change some code to end up causing a small performance drop, I think we can afford that, considering it's written in ASM (I mean, comeone, look at the basic VB project, and tell me that beast is very fast, and small).

In any case, It's good to know about that limitation, for when I may actually need a floating point constant.
Posted on 2006-06-29 12:44:56 by Bobbias
Ratch: true, I forgot about the FP inconvenience :/ . Since in the rare cases I need it, it takes 5-10 seconds to go around it :) . Still, is an inexcusable flaw in masm :|
Posted on 2006-06-29 13:15:40 by Ultrano
Bobbias & Ultrano,

    It is easy to get around.  Just read it in from the .DATA segment.  At least MASM allows FP constants in .DATA.  But that means another DWORD in the DATA segment, and a memory access instead of a constant within the instruction field.  By the way, I have asked several times in several places as to whether POASM has the ability to assemble FP constants.  So far, no one has responded.  Ratch
Posted on 2006-06-29 16:41:36 by Ratch
PoAsm supports such immediate-floats
SolAsm currently doesn't

In masm, by "get around" I meant getting your code to look like
cmp vertLineSpacing,41000000h ; 8.0
Posted on 2006-06-30 07:38:59 by Ultrano
Ultrano,

PoAsm supports such immediate-floats


    Thanks, you are the first one who answered my question.  So the next logical question is:  What does MASM do that POASM does not.  Not just for coding, but what about licensing?

cmp vertLineSpacing,41000000h ; 8.0


    So that leaves you to do a double assembly.  The first to obtain the constants for numbers like .00054678, so you can edit them into your program manually, and the second final assembly to get the result.  Ugh!  Ratch
Posted on 2006-06-30 09:52:29 by Ratch
Ratch,

PoASM brings a lot ot the table in the since of licensing and coding. The PoASM license is much more lenient than the MASM license. Or to quote Pelle's response to a question about developing commmercial applications with Pelles C (which includes PoASM):

Pelles C is free for any use - even commercial software - but a donation is always welcome... (to convince me it's a good idea to continue this project...)


In coding, PoASM does most things MASM does in matter of syntax (except the version I have doesn't support INCLUDELIB directive, which doesn't matter to me as I tend to create .bat sources which link in the LIB files when needed using an environment variable):

Top of Code
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
; @echo off
; set Project=MyApplication
; set BinPath=E:\DEVELOPMENT\PELLESC\BIN
; set LibPath=E:\DEVELOPMENT\PELLESC\LIB\WIN
; set IncPath=E:\DEVELOPMENT\PELLESC\INCLUDE\WIN\ASM
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
; set Libraries=kernel32.lib user32.lib
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
; set AS=poasm.exe
; set LD=polink.exe
; set ASFLAGS=/AIA32 /Gz
; set LDFLAGS=/machine:ix86 /subsystem:windows
; goto BuildProject
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


Bottom of Code
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
; :BuildProject
; %BinPath%\%AS% %ASFLAGS% /I%IncPath% "%Project%.bat"
; if exist "%Project%.obj" %BinPath%\%LD% %LDFLAGS% /LIBPATH:%LibPath% "%Project%.obj" %Libraries%
; if exist "%Project%.obj" del "%Project%.obj"
; dir /on /ta /q /a-d
; echo.
; pause
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


As well, PoASM supports ARM which means you can code those nifty PocketPC applications :)

I've played around with PoASM a good bit, I'm well enough with it to code pretty much any app I want to, but I personally still choose NASM (although it's not the favorite of many). I started using PoASM when I started using PellesC for my C compiler over MingWC. The primary reason is (if you notice the E: for the drive) I have PellesC/PoASM on a jump drive. And I use it as a portable development environment, whereas I have NASM (and a multitude of other software) which I use at home. I know NASM is small and would easily fit on my jumpdrive, but why carry around two fully functional Assemblers when one is just as good.

Regards,
Bryant Keller
Posted on 2006-06-30 20:26:37 by Synfire
Synfire,

    Thanks for the thumbnail summary of POASM vs MASM.  Maybe I will try POASM.  Ratch
Posted on 2006-06-30 20:36:09 by Ratch
The weakest argument about a assember, is the ones
that say there are macros, or some derectives that they don't agree on.
I say, don't use those features you don't agree with. thats like turning those off.

Zcoder....

Posted on 2006-07-01 23:20:36 by Zcoder
After i read the Betov's estatement, i can just say one thing to this guy /i dont know him/ - Good luck with proffesional programming, where you'll need a more than 10 lives to succeed considering your programming theory.
Posted on 2006-07-09 06:54:25 by shaka_zulu