Skip to content

Latest commit

 

History

History
37 lines (25 loc) · 2.29 KB

README.md

File metadata and controls

37 lines (25 loc) · 2.29 KB

SmplMath

The SmplMath macros system is a collection of MASM macros for evaluating mathematic expression developed by qWord. There are a whole bunch of macros for expression evaluation, comparison and FPU related topics.

example:

     .if fGT(Pb, @fSlv8(710.2740349*0.63))
						
        fSlv8 AaPbB = (spba + spbb /( 1 + (( Pb - spbc)/ spbd)^2)) \ 
                     * ((710.2740349 /  bDNAmx) - ( Pb /  BDNA))\
                     / (1.0 +  ( KAaPbB /  cAa1))
    .else
		
        fSlv8 AaPbB = (spbpa + spbpb * ( Pb ^  spbpc)) \ 
                     * ((710.2740349 /  bDNAmx) - ( Pb /  BDNA))\
                     / (1.0 +  ( KAaPbB /  cAa1))
    .endif

Well tested for 32 bits with ML, JWASM, ASMC (-Znk option) and UASM32.

In 64 bits was tested with JWASM by qWord, and recently some testing for ML64 using Masm64 SDK (see Masm32.com).

Additional macros

Complementary macros

Loops and Compound operators macros simplify in a controled way programming some calculations. Pseudo push/pop facilitate translations between 32 and 64 bits and allow dual bitness (See ObjAsm-C.1). Conditional flow macros solve some problems with floating point numbers comparisons and other early macro expansions.

Accesory macros

These include some additional macros provided by qWord, and an invoke macro modified from Steve Hutchesson's Masm64 SDK.