That would be nice ?
Posted on 2002-04-22 09:55:13 by Volcano_88101
that would be REALLY nice
Posted on 2002-07-13 11:00:04 by ti_mo_n
Quick tut: :tongue:

@ is the size: b = byte, w = word, d = dword, q = qword
When there are two letters, the operation starts with data of the first size and ends with data of the second size.

?? is the operation. We know these already. :)

movd - move 32 bits to/from MMX register
movq - move 64 bits to/from MMX register

??? = or, and, xor
p??? - logical operation on 64-bits

pandn - same as "not eax; and eax, ebx", but 64-bit :)

??? = sub, add
@ = b, w, d
p???@ - same as "??? eax, ebx", but 64-bit
p???s@ - don't overflow signed number
p???us@ - don't overflow unsigned number

@ = w, d, q
psll@ - logical shift LEFT - same as "shl"
psrl@ - logical shift RIGHT - same as "shr"
psra@ - arithmic shift RIGHT - same as "sar"

@ = wb, dw, qd
packss@ - signed convert larger size data to smaller size data

packuswb - unsigned word to byte size

@ = bw, wd, dq
punpckl@ - interleave LOW size data, one from each src and dest
punpckh@ - interleave HIGH size data, one from each src and dest

?? = eq, gt
@ = b, w, d
pcmp??@ - set data size if true signed compare

pmaddwd - A*B + C*D

pmulhw - high word of signed multiply
pmullw - low word of signed multiply
Posted on 2002-07-13 11:53:03 by bitRAKE
yeah, it surely is a quick tut

it is so quick that i don't quite get it :)

especially those: -> eax, ebx but 64 bit <-

eax, ebx but 64 bit ?
eax 64 bit?

what's with that?

btw: i have never read any tut about mmx.

what i have are some instruction etc.

but i don't get them, since they're ONLY plain instructions without any description
Posted on 2002-07-13 12:17:01 by ti_mo_n
Well, the MMX registers are 64-bit, so when I say like "add eax,ebx but bit-64" I mean replace the registers and instruction with MMX version; I mean to draw an analogy between the two. You do have to understand what saturated arithmatic is, and that the MMX instructions work on 64-bits no matter what the data size is:

1 QWORD
2 DWORDs
4 WORDs
8 BYTEs

...these are all 64 bits. Personally, I played with the instructions in a debugger after reading the Intel Documentation. Then I coded a couple of simple algorithms and worked my way up to more complex stuff.

http://aortiz.cem.itesm.mx/overview_mmx_technology.pdf
http://www.cs.strath.ac.uk/~dunc/_archives/cad_1996/mmxfiles/
Posted on 2002-07-13 12:41:51 by bitRAKE
Posted on 2002-07-14 10:34:20 by Delight
i got it , so thanx

btw:

instead of saying: eax, but 64bit you should use 'reg64'

'64bit eax' is quite confusing :)



thanx anyway
Posted on 2002-07-24 13:49:57 by ti_mo_n

'64bit eax' is quite confusing :)
Wait until x86-64 comes along - we will be saying RAX! :grin:
Posted on 2002-07-24 15:00:40 by bitRAKE
R0/RAX :grin:
Posted on 2002-07-24 15:01:55 by stryker

Wait until x86-64 comes along - we will be saying RAX! :grin:
BTW: has anybody received his copy of the AMD 64 manuals? :)
Posted on 2002-07-25 02:48:38 by Maverick
I have one question, on the AMD K6/Athlon/Duron series (where SSE isnt present) can I use the MMX and 3DNow! at the same time or do I have to use the EMMS/FEMMS instruction to switch between them?
Posted on 2002-08-14 08:36:36 by x86asm
Ok then since nobody responded I assume I can use MMX/3DNow! simultaneously. Just like I can use SSE/MMX together. I hope this is right
Posted on 2002-09-14 14:34:52 by x86asm
Yes, you can. Sorry, I missed your original post.
Posted on 2002-09-14 16:51:47 by Maverick
I was wondering if anybody had the http://www.leto.net/docs/raw_mmx.html on their computer...It seems that this was a good one( I believe I had started reading it ) but I can not access it anymore.

I was hoping somebody had stripped it.

Thanks,
Posted on 2002-11-16 13:05:33 by gorshing
Posted on 2002-11-16 16:00:37 by bitRAKE
Boy! Do I feel .... :stupid:
Posted on 2002-11-17 16:47:13 by gorshing