The MASM Forum Archive 2004 to 2012

General Forums => The Campus => Topic started by: Dami3n on February 04, 2008, 01:43:47 PM

Title: .386 .486 .586 .686?
Post by: Dami3n on February 04, 2008, 01:43:47 PM
in source there is usually (.386 .486 .586 .686) one of those.

Im making small presentation from assembly and so on and that is only thing im not so sure off :/
So what does those do, what's the difference beetween .386 and .686?
is .686 better or faster?

I heard it has something to do with processor instructions, what is it exactly?
Title: Re: .386 .486 .586 .686?
Post by: evlncrn8 on February 04, 2008, 02:46:53 PM
it simply allows you to use commands associated with the processor you're planning to code for
eg: say u had .386, you wouldn't be 'allowed' to use sse commands and so on...
Title: Re: .386 .486 .586 .686?
Post by: Mirno on February 04, 2008, 03:58:31 PM
Also if you use the appropriate listings command line argument to ML, it will print the instruction timings out.
This only applies to .586 and below though as the 686 architecture is out of order, and so the execution times are somewhat more complex.

evlncrn8 is right in principle, but a bad example sse, mmx, 3dnow etc, are done via separate model directives (.mmx, .sse etc.), try for example .386 and "bswap" (a 486 and above instruction). Or .586 and "cmov".

Mirno
Title: Re: .386 .486 .586 .686?
Post by: donkey on February 04, 2008, 04:07:04 PM
This question comes up every once in a while, look through the reference material at MSDN...

http://msdn2.microsoft.com/en-us/library/8t163bt0(VS.71).aspx

http://www.masm32.com/board/index.php?topic=8293.0
http://www.masm32.com/board/index.php?topic=6554.0
http://www.masm32.com/board/index.php?topic=3481.0
Title: Re: .386 .486 .586 .686?
Post by: Dami3n on February 04, 2008, 04:23:12 PM
Thanks, this is pretty much what i was looking for, and i only found the second link from search :P
Thank you all again!