News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

.386 .486 .586 .686?

Started by Dami3n, February 04, 2008, 01:43:47 PM

Previous topic - Next topic

Dami3n

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?

evlncrn8

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...

Mirno

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

donkey

"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

Dami3n

Thanks, this is pretty much what i was looking for, and i only found the second link from search :P
Thank you all again!