I've been trying to compile the code below, but with no luck. :sad:
It keeps giving this error:
Assembling: D:\masm32\MattsAsm\mmxssetest.asm
D:\masm32\MattsAsm\mmxssetest.asm(21) : error A2088: END directive required at end of file

here is the code:

.686p
.model flat, C, stdcall
option casemap :none  ; case sensitive
.xmm

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib

.data

.code
main:
    movq mm0,
    movdqa xmm0,
    ret
end main
Posted on 2005-09-13 08:18:17 by GorillaCoder
Use ML v6.15.8803 - Get it from vcpp5 (enter in google vcpp5, and press "i'm feeling lucky" )
Posted on 2005-09-13 08:51:03 by drizz
I got my latest ML version from the visual c++ 2005 demo.
It seems to work ok, except for the error above.
Posted on 2005-09-13 09:05:22 by GorillaCoder
Is this correct? :?:

.model flat, C, stdcall


Shouldn't it be either C or stdcall? What does it do when you specify both? (Sorry for the lame question...)
Posted on 2005-09-13 10:02:28 by QvasiModo
you are right for the error, something strange with that version, i've put

option proc:public   ; "public main" should work too

and then it compiled (without inc files), and after that <option proc:public> code
was not neccessary anymore?!?!?

:confused:
Posted on 2005-09-13 10:14:59 by drizz
quasimodo:
I don't know :|

drizz:
tried everything you've suggested and still doesn't work.
anybody else have any ideas?
Posted on 2005-09-13 14:59:51 by GorillaCoder
assembles without any errors for me... (ml v6.15.8803)
Posted on 2005-09-13 15:37:20 by arafel
.686p
.xmm
.model flat,c
option casemap:none
option language:stdcall
include WINDOWS.INC; promblem with IMPORT_OBJECT_HEADER
                  ; rImport ImportRec <>,<>,<>
include kernel32.inc; assumes stdcall
includelib kernel32.lib
option language:c
.code
public start
start:
pxor xmm0,xmm0
movd eax,mm0
invoke ExitProcess,eax
    ret
end start


try to compile this , i must say that its strange, i had the same error at first but i cannot reproduce it again

QvasiModo: it uses the last specified...
Posted on 2005-09-13 16:03:50 by drizz
Use ML.exe from the official MASM32 package (www.movsd.com)
The latest ML is FULL with problems, I recommend you never again use it, for anything!

That tricky bugger took me days to figure it's buggy as hell. Crashes randomly, misses lines of code, makes errors on correct syntaxis, locks up... it's hilarious how MS got it bugged.

I use 6.14.8444, never had any problems with it for the past 3.5 years.
Posted on 2005-09-13 17:16:18 by Ultrano
Ultrano,

The latest ML is FULL with problems, I recommend you never again use it, for anything!


You are talking about ML.EXE version 8.00 that comes with the VC/C++ 2005 Beta, right?

Posted on 2005-09-13 18:06:29 by Greg
Yes, 8.00.40607.16 . Was from beta 1. I received DVDs with beta2 from MS, but I haven't bothered to try it (and its ml.exe)
Posted on 2005-09-13 20:21:54 by Ultrano
Sooooo, thats the problem, buggy as hell! :P
Ok, thanks Ultrano, I'll go back to the original ML
Does the ML version that comes with latest masm32 install support sse/sse2 instruction set?
Posted on 2005-09-13 21:16:49 by GorillaCoder
Gorilla,

The safe versions of ML.EXE are 6.14, 6.15, 7.00 and 7.10. Earlier have problems and te 8.00 beta stil has big problems.

For SSE2 instructions you need to use 6.15 or higher. You can get it directly from Microsoft or from the masmforum web site to upgrade your version of VC6. If you don't want to use it in the VC6 environment, you can extract it with Winrar and plug it into MASM32.

Regards,

hutch at movsd dot com
Posted on 2005-09-13 21:45:21 by hutch--
Well, I spoke too soon. :sad:  I downloaded the latest original masm install version, re-installed it, and it compiled one file good, but then all other compiles generate the same error:
D:\masm32\MattsAsm\mmxssetest.asm(21) : error A2088: END directive required at end of file
I'm about ready to give up on it :evil:
Posted on 2005-09-14 06:29:13 by GorillaCoder

wasn't there once a bug (or still is) in masm requiring a CR/LF behind the end directive?

At least I would ensure that there is one.
Posted on 2005-09-14 07:49:28 by japheth
I assembled your code from the first post - unchanged - with masm 6.15.8803 and didn't get any errors.

Suggestion: comment out all "include" and includelib" lines and see if the error still occurs.
Posted on 2005-09-15 08:04:49 by japheth
Hi,
    I've managed to hunt down the problem :O. It was a bad windows.inc file, some commentary text at the very top of the include was not commented out and was causing the errors :roll:.  So I commented them out and, aside from one other minor fix, everything is going fine now 8).  And yes, Japheth, I did do that, which is what got me snooping around the include files.  Thanks to everyone for trying to help :D
Posted on 2005-09-15 08:43:49 by GorillaCoder
Gorilla,

The character used at the top of the include file is a problem with ml 8.00 and it has many other problems as well. At the moment I would not go higher than the VC net version of ML 7.10 noting that 6.15 upwards support SSE2.
Posted on 2005-09-15 09:23:49 by hutch--
Hello hutch,
    So far I haven't had any problems with the ml i have (8.00.40607.16), what are the types of problems you are having with it?
right now most examples are compiling fine, but a few need a file called win32.asm, which I'll have to hunt down using google or something.
Take Care,
GorillaCoder
Posted on 2005-09-15 14:48:42 by GorillaCoder
I deleted all the replies in this thread that do not have anything to do with helping GorillaCoder's problem. Please do not post personal opinions that have nothing to do with solving the problem.
Posted on 2005-09-17 09:19:41 by SpooK