News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

HJWasm

Started by habran, July 07, 2015, 04:38:55 PM

Previous topic - Next topic

habran

I am glad you are aware what are you doing to me, you and Johnsa, is that what your JJ mans Johan & John :P
Cod-Father

johnsa

Haha :) Have to keep you on your toes! And all these additions just help to make it awesome! ;)

habran

I am just grumpy old f**t ;)
Cod-Father

habran

I have better idea about it :idea:
I will leave 32 bit compatible with masm32 without DO, DY, DZ
but 64 bit will have  it built in
what do you reckon?
Cod-Father

jj2007

Quote from: habran on July 21, 2015, 06:54:15 AM
I have better idea about it :idea:
I will leave 32 bit compatible with masm32 without DO, DY, DZ
but 64 bit will have  it built in
what do you reckon?

Sounds OK for me, but I can't speak for the 64 bit community :biggrin:

habran

To me the most important is what you think ;)
Cod-Father

rrr314159

Don't forget we can just use "option nokeyword:<dy>" if we don't want it, so it's not that big a deal. Conversely if you leave it out we can just use "dy equ YMMWORD", which I've already been doing when I find myself typing "ymmword" a lot. BTW have you fixed that bug where we have to put "xmmword ptr" even when the compiler should know the type? That's more important. Unfortunately I can't check it because your latest versions have problems with my weird code, as mentioned b4, and I haven't figured out why yet
I am NaN ;)

habran

QuoteDon't forget we can just use "option nokeyword:<dy>"
is the best thing :t
Quotehave you fixed that bug where we have to put "xmmword ptr" even when the compiler should know the type?
Yes sir 8)
Cod-Father

rrr314159

Great, gives me incentive to figure out why my weird code (with many macros, does 32/64, SSE/AVX, real4/real8 all with same source) is having problems with latest versions.

BTW I've noticed another little bug which perhaps you could fix in your spare time :biggrin: . Often I intend to type, for example, "mov eax, ecx" but accidentally type, say, "mov ebx, ecx". Now, it's perfectly obvious from the flow of the code that I meant the first not the second: it's just a typo. And yet your HJWasm always uses ebx instead of what I obviously meant, eax (in this example). It's a small thing but very annoying, and if you could fix it I'd be grateful.

Thanks in advance ...
I am NaN ;)

habran

Hi TripleR,
HJwasm is still wearing nappies, when he grows a little bit I will send him to UNI to study telepathy ;)
hope you'll still be around :biggrin:
Cod-Father

jj2007

Quote from: rrr314159 on July 21, 2015, 09:45:26 AMNow, it's perfectly obvious from the flow of the code

3r,

You should at least give a few examples to Habran, so that he can derive the logic for HJWasm 8)

johnsa

Surely an assemblers job is to assemble what you tell it, not for it to attempt to guess at your intention.
I don't think there is anyway that it could know you meant mov eax,ecx instead of mov ebx,ecx regardless of the flow. Your could be copying the value for the later use for all it knows!
My suggestion is.. don't make typos :) :)

I think the 32/64 should remain as similar as possible, so whatever solution we use it should be common to both. Either:
OPTION DATATYPE:1      ; for both (32/64) alike
Or we leave it as is (with new datatype directives) and people should use the nokeyword solution?
Let's take a vote on this.

I've tested the requirement of the xmmword ptr and it appears to be resolved in all my tests. vmovaps xmm(n),[rsi] ; for example assembles correctly and uses xmm instead of ymm.

That said do you have any indication as to what potentially is failing in your code rrr? (Is it run-time or assemble time error?, code or macro related?) Perhaps we can help narrow it down if it's some sort of regression that's occurred in the new versions.


jj2007

Quote from: johnsa on July 21, 2015, 06:35:22 PMOr we leave it as is (with new datatype directives) and people should use the nokeyword solution?

You volunteer to explain "nokeyword" to the noobs in the next 20 years? Otherwise,
Quote from: rrr314159 on July 21, 2015, 09:09:08 AMwe can just use "dy equ YMMWORD", which I've already been doing when I find myself typing "ymmword" a lot

johnsa

Quote from: jj2007 on July 21, 2015, 06:58:41 PM
Quote from: johnsa on July 21, 2015, 06:35:22 PMOr we leave it as is (with new datatype directives) and people should use the nokeyword solution?

You volunteer to explain "nokeyword" to the noobs in the next 20 years? Otherwise,
Quote from: rrr314159 on July 21, 2015, 09:09:08 AMwe can just use "dy equ YMMWORD", which I've already been doing when I find myself typing "ymmword" a lot

I said a vote :) My vote is still for the new OPTION, saves me having to declare the equates and stops noobs from getting confused and generally keeps everyone happy and 32/64 working in the same way.

jj2007

Quote from: johnsa on July 21, 2015, 07:05:20 PMMy vote is still for the new OPTION, saves me having to declare the equates and stops noobs from getting confused and generally keeps everyone happy and 32/64 working in the same way.

include \masm32\include\masm32rt.inc

; OPTION DATATYPE:1 ; error A2008: syntax error : DATATYPE
dy equ ymmword ; works like a charm

.code

start: print "Hello World"
exit

end start