1 .intel_syntax noprefix 2 .text 3start: 4 5 # operand sizes 6 7 add al, [eax] 8 add al, byte ptr [eax] 9 add ax, [eax] 10 add ax, word ptr [eax] 11 add eax, [eax] 12 add eax, dword ptr [eax] 13 add byte ptr [eax], 1 14 add dword ptr [eax], 1 15 add word ptr [eax], 1 16 addpd xmm0, [eax] 17 addpd xmm0, xmmword ptr [eax] 18 addps xmm0, [eax] 19 addps xmm0, xmmword ptr [eax] 20 addsd xmm0, [eax] 21 addsd xmm0, qword ptr [eax] 22 addss xmm0, [eax] 23 addss xmm0, dword ptr [eax] 24 bound ax, dword ptr [ecx] 25 bound eax, qword ptr [ecx] 26 call word ptr [eax] 27 call dword ptr [eax] 28 call fword ptr [eax] 29 cmps [esi], byte ptr es:[edi] 30 cmps dword ptr [esi], es:[edi] 31 cmps word ptr [esi], word ptr es:[edi] 32 cmpxchg8b qword ptr [eax] 33 fadd dword ptr [eax] 34 fadd qword ptr [eax] 35 fbld [eax] 36 fbld tbyte ptr [eax] 37 fbstp [eax] 38 fbstp tbyte ptr [eax] 39 fiadd dword ptr [eax] 40 fiadd word ptr [eax] 41 fild dword ptr [eax] 42 fild qword ptr [eax] 43 fild word ptr [eax] 44 fist dword ptr [eax] 45 fist word ptr [eax] 46 fistp dword ptr [eax] 47 fistp qword ptr [eax] 48 fistp word ptr [eax] 49 fisttp dword ptr [eax] 50 fisttp qword ptr [eax] 51 fisttp word ptr [eax] 52 fld dword ptr [eax] 53 fld qword ptr [eax] 54 fld tbyte ptr [eax] 55 fldcw [eax] 56 fldcw word ptr [eax] 57 fldenv [eax] 58 fldenvd [eax] 59 fldenvw [eax] 60 fst dword ptr [eax] 61 fst qword ptr [eax] 62 fstp dword ptr [eax] 63 fstp qword ptr [eax] 64 fstp tbyte ptr [eax] 65 lds ax, [eax] 66 lds eax, [eax] 67 lds ax, dword ptr [eax] 68 lds eax, fword ptr [eax] 69 lea eax, [eax] 70 lea eax, byte ptr [eax] 71 lea eax, dword ptr [eax] 72 lea eax, fword ptr [eax] 73 lea eax, qword ptr [eax] 74 lea eax, tbyte ptr [eax] 75 lea eax, word ptr [eax] 76 lea eax, xmmword ptr [eax] 77 lgdt [eax] 78 lgdtd [eax] 79 lgdtw [eax] 80 movs es:[edi], byte ptr [esi] 81 movs dword ptr es:[edi], [esi] 82 movs word ptr es:[edi], word ptr [esi] 83 movsx eax, byte ptr [eax] 84 movsx eax, word ptr [eax] 85 paddb mm0, [eax] 86 paddb mm0, mmword ptr [eax] 87 paddb mm0, qword ptr [eax] 88 paddb xmm0, [eax] 89 paddb xmm0, xmmword ptr [eax] 90 paddb xmm0, oword ptr [eax] 91 pinsrw mm0, word ptr [eax], 3 92 pinsrw xmm0, word ptr [eax], 7 93 push dword ptr [eax] 94 xlat [ebx] 95 xlat byte ptr [ebx] 96 xlatb 97 98 # memory operands 99 100 mov eax, dword ptr [byte+eax] 101 mov eax, dword ptr byte[eax] 102 mov eax, [dword+eax] 103 mov eax, dword[eax] 104 mov eax, [fword+eax] 105 mov eax, fword[eax] 106 mov eax, [qword+eax+dword] 107 mov eax, qword[eax+dword] 108 mov eax, [tbyte+eax+dword*2] 109 mov eax, tbyte[eax+dword*2] 110 mov eax, [word+eax*dword] 111 mov eax, word[eax*dword] 112 movzx eax, word ptr byte ptr [eax] 113 movzx eax, byte ptr [word ptr [eax]] 114 movzx eax, word ptr es:[eax] 115 movzx eax, byte ptr [fs:[eax]] 116 movzx eax, gs:word ptr [eax] 117 118 mov eax, FLAT:1 119 mov eax, FLAT:[1] 120 mov eax, gs:1 121 mov eax, gs:[1] 122 mov eax, x 123 mov eax, FLAT:x 124 mov eax, gs:x 125 mov eax, [x] 126 127 mov eax, [eax*1] 128 mov eax, [eax*+1] 129 mov eax, [+1*eax] 130 mov eax, [eax*+2] 131 mov eax, [+2*eax] 132 mov eax, [ecx*dword] 133 mov eax, [dword*ecx] 134 mov eax, 1[eax] 135 mov eax, [eax]+1 136 mov eax, [eax - 5 + ecx] 137 mov eax, [eax + 5 and 3 + ecx] 138 mov eax, [eax + 5 * 3 + ecx] 139 mov eax, [oword][eax] 140 mov eax, [eax][oword] 141 mov eax, xmmword[eax][ecx] 142 mov eax, [eax]+[ecx] 143 mov eax, [eax]+1[ecx] 144 mov eax, [eax+2[ecx]] 145 mov eax, [eax][ecx]+3 146 mov eax, [4][eax][ecx] 147 mov eax, [eax][5][ecx] 148 mov eax, [eax][ecx][6] 149 mov eax, [eax+ecx*(2+2)+7] 150 mov eax, [eax+(ecx+2)*4] 151 mov eax, [[eax]] 152 mov eax, [eax[ecx]] 153 mov eax, [[eax][ecx]] 154 mov eax, es:[eax] 155 mov eax, fs:gs:[eax] 156 157 # expressions 158 159 push + 1 160 push - 1 161 push not 1 162 push 1 + 1 163 push 2 - 1 164 push 2 * 2 165 push 3 / 2 166 push 3 mod 2 167 push 4 shl 1 168 push 5 shr 2 169 push 6 and 3 170 push 7 xor 4 171 push 8 or 5 172 173 push +dword 174 push -dword 175 push not dword 176 push not +dword 177 push not -dword 178 push not not dword 179 180 # offset expressions 181 182 mov eax, 1 183 mov eax, [1] 184 mov eax, dword ptr 1 185 mov eax, dword ptr [1] 186 mov eax, offset x 187 mov eax, offset flat:x 188 mov eax, offset gs:x 189 mov eax, offset [x] 190 mov eax, offset flat:[x] 191 mov eax, offset gs:[x] 192 mov eax, [offset x] 193 mov eax, [offset [x]] 194 mov eax, dword ptr [offset [x]] 195 mov eax, FLAT:[offset [x]] 196 mov eax, gs:[offset [x]] 197 mov eax, offset [dword ptr [x]] 198 mov eax, offset [gs:[x]] 199 mov eax, [eax + offset x] 200 mov eax, [eax + offset 1] 201 mov eax, [offset x + eax] 202 mov eax, [offset 1 + eax] 203 mov eax, offset x + 1[eax] 204 mov eax, [eax] + offset x 205 mov eax, [eax] + offset 1 206 mov eax, offset x + [1] 207 mov eax, [offset x] - [1] 208 mov eax, offset x + es:[2] 209 mov eax, offset x + offset es:[3] 210 mov eax, [4] + offset x 211 mov eax, [5] + [offset x] 212 mov eax, ss:[6] + offset x 213 mov eax, ss:[7] + [offset x] 214 215 # other operands 216 call 3:5 217 jmp 5:[3] 218 call dword ptr xtrn 219 jmp word ptr xtrn 220 call [xtrn] 221 jmp [xtrn] 222