.intel_syntax noprefix .text start: # operand sizes add al, [eax] add al, byte ptr [eax] add ax, [eax] add ax, word ptr [eax] add eax, [eax] add eax, dword ptr [eax] add byte ptr [eax], 1 add dword ptr [eax], 1 add word ptr [eax], 1 addpd xmm0, [eax] addpd xmm0, xmmword ptr [eax] addps xmm0, [eax] addps xmm0, xmmword ptr [eax] addsd xmm0, [eax] addsd xmm0, qword ptr [eax] addss xmm0, [eax] addss xmm0, dword ptr [eax] bound ax, dword ptr [ecx] bound eax, qword ptr [ecx] call word ptr [eax] call dword ptr [eax] call fword ptr [eax] cmps [esi], byte ptr es:[edi] cmps dword ptr [esi], es:[edi] cmps word ptr [esi], word ptr es:[edi] cmpxchg8b qword ptr [eax] fadd dword ptr [eax] fadd qword ptr [eax] fbld [eax] fbld tbyte ptr [eax] fbstp [eax] fbstp tbyte ptr [eax] fiadd dword ptr [eax] fiadd word ptr [eax] fild dword ptr [eax] fild qword ptr [eax] fild word ptr [eax] fist dword ptr [eax] fist word ptr [eax] fistp dword ptr [eax] fistp qword ptr [eax] fistp word ptr [eax] fisttp dword ptr [eax] fisttp qword ptr [eax] fisttp word ptr [eax] fld dword ptr [eax] fld qword ptr [eax] fld tbyte ptr [eax] fldcw [eax] fldcw word ptr [eax] fldenv [eax] fldenvd [eax] fldenvw [eax] fst dword ptr [eax] fst qword ptr [eax] fstp dword ptr [eax] fstp qword ptr [eax] fstp tbyte ptr [eax] lds ax, [eax] lds eax, [eax] lds ax, dword ptr [eax] lds eax, fword ptr [eax] lea eax, [eax] lea eax, byte ptr [eax] lea eax, dword ptr [eax] lea eax, fword ptr [eax] lea eax, qword ptr [eax] lea eax, tbyte ptr [eax] lea eax, word ptr [eax] lea eax, xmmword ptr [eax] lgdt [eax] lgdtd [eax] lgdtw [eax] movs es:[edi], byte ptr [esi] movs dword ptr es:[edi], [esi] movs word ptr es:[edi], word ptr [esi] movsx eax, byte ptr [eax] movsx eax, word ptr [eax] paddb mm0, [eax] paddb mm0, qword ptr [eax] paddb xmm0, [eax] paddb xmm0, xmmword ptr [eax] pinsrw mm0, word ptr [eax], 3 pinsrw xmm0, word ptr [eax], 7 push dword ptr [eax] xlat [ebx] xlat byte ptr [ebx] xlatb # memory operands mov eax, dword ptr [byte+eax] mov eax, dword ptr byte[eax] mov eax, [dword+eax] mov eax, dword[eax] mov eax, [fword+eax] mov eax, fword[eax] mov eax, [qword+eax+dword] mov eax, qword[eax+dword] mov eax, [tbyte+eax+dword*2] mov eax, tbyte[eax+dword*2] mov eax, [word+eax*dword] mov eax, word[eax*dword] movzx eax, word ptr byte ptr [eax] movzx eax, byte ptr [word ptr [eax]] movzx eax, word ptr es:[eax] movzx eax, byte ptr [fs:[eax]] movzx eax, gs:word ptr [eax] mov eax, FLAT:1 mov eax, FLAT:[1] mov eax, gs:1 mov eax, gs:[1] mov eax, x mov eax, FLAT:x mov eax, gs:x mov eax, [x] mov eax, [eax*1] mov eax, [eax*+1] mov eax, [+1*eax] mov eax, [eax*+2] mov eax, [+2*eax] mov eax, [ecx*dword] mov eax, [dword*ecx] mov eax, 1[eax] mov eax, [eax]+1 mov eax, [eax - 5 + ecx] mov eax, [eax + 5 and 3 + ecx] mov eax, [eax + 5 * 3 + ecx] mov eax, [oword][eax] mov eax, [eax][oword] mov eax, xmmword[eax][ecx] mov eax, [eax]+[ecx] mov eax, [eax]+1[ecx] mov eax, [eax+2[ecx]] mov eax, [eax][ecx]+3 mov eax, [4][eax][ecx] mov eax, [eax][5][ecx] mov eax, [eax][ecx][6] mov eax, [eax+ecx*(2+2)+7] mov eax, [eax+(ecx+2)*4] mov eax, [[eax]] mov eax, [eax[ecx]] mov eax, [[eax][ecx]] mov eax, es:[eax] mov eax, fs:gs:[eax] # expressions push + 1 push - 1 push not 1 push 1 + 1 push 2 - 1 push 2 * 2 push 3 / 2 push 3 mod 2 push 4 shl 1 push 5 shr 2 push 6 and 3 push 7 xor 4 push 8 or 5 push +dword push -dword push not dword push not +dword push not -dword push not not dword # offset expressions mov eax, 1 mov eax, [1] mov eax, dword ptr 1 mov eax, dword ptr [1] mov eax, offset x mov eax, offset flat:x mov eax, offset gs:x mov eax, offset [x] mov eax, offset flat:[x] mov eax, offset gs:[x] mov eax, [offset x] mov eax, [offset [x]] mov eax, dword ptr [offset [x]] mov eax, FLAT:[offset [x]] mov eax, gs:[offset [x]] mov eax, offset [dword ptr [x]] mov eax, offset [gs:[x]] mov eax, [eax + offset x] mov eax, [eax + offset 1] mov eax, [offset x + eax] mov eax, [offset 1 + eax] mov eax, offset x + 1[eax] mov eax, [eax] + offset x mov eax, [eax] + offset 1 mov eax, offset x + [1] mov eax, [offset x] - [1] mov eax, offset x + es:[2] mov eax, offset x + offset es:[3] mov eax, [4] + offset x mov eax, [5] + [offset x] mov eax, ss:[6] + offset x mov eax, ss:[7] + [offset x] # other operands call 3:5 jmp 5:[3] call dword ptr xtrn jmp word ptr xtrn # Force a good alignment. .p2align 4,0