offset(base_register, index_register, scale)
offset + base_register + index_register*scale
MOV 's movaps %xmm2, %xmm3 - copies %xmm2 into %xmm3
movups - same as MOVAPS, except it's ok with unaligned loads
movdqa - move aligned dual quad word
PAVGB packed (?) average-by-byte PAVGW packed average-by-word
mulps %xmm1, %xmm2 - answer overwrites %xmm2
blendvps xmm0 to
XCHG CL, CH swaps the upper and lower halves of CX
XCHG CL, AH to put the upper half of AX into the lower half of CX
and except the operand doesn't change - but the flags do.
testb tests bytes, testw tests words, and testl tests double words, and testq (x86-64 only) tests quad words
test ax, (bits). The zero flag is set if no bits match. The zero flag will be cleared if any bits match
ax in this example), TEST, and if the zero flag is set you have a match of both bits
esp (or rsp with x86-64) and decrements it by the appropriate size rsp = 0x7fbffff728, pushq %rdb puts the 8 byte x86-64 register at 0x7fbffff728 and changes rsp to be 0x7fbffff720