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