3 # REX prefix and addressing modes.
13 add rax,0xfffffffff4332211
34 REP MOVSQ #[RSI],[RDI]
36 REP MOVSQ #[RSI],[RDI]
43 MOV RAX,0x1122334455667788
44 MOV R8,0x1122334455667788
49 ADD EAX,[0x22222222+RIP]
51 ADD EAX,FLAT:[0x22222222]
75 ADD DWORD PTR [RAX],0x11
76 ADD QWORD PTR [RAX],0x11
77 ADD DWORD PTR [R8],0x11
78 ADD DWORD PTR [RCX+RAX*4],0x11
79 ADD DWORD PTR [R9+RAX*4],0x11
80 ADD DWORD PTR [RCX+R8*4],0x11
81 ADD DWORD PTR [0x22222222+RIP],0x33
82 ADD QWORD PTR [RIP+0x22222222],0x33
83 ADD DWORD PTR [RIP+0x22222222],0x33333333
84 ADD QWORD PTR [RIP+0x22222222],0x33333333
85 ADD DWORD PTR [RAX*8+0x22222222],0x33
86 ADD DWORD PTR [RAX+0x22222222],0x33
87 ADD DWORD PTR [RAX+0x22222222],0x33
88 ADD DWORD PTR [R8+RBP*8],0x33
89 ADD DWORD PTR FLAT:[0x22222222],0x33
91 MOVABS AL,FLAT:[0x8877665544332211]
92 MOVABS EAX,FLAT:[0x8877665544332211]
93 MOVABS FLAT:[0x8877665544332211],AL
94 MOVABS FLAT:[0x8877665544332211],EAX
95 MOVABS RAX,FLAT:[0x8877665544332211]
96 MOVABS FLAT:[0x8877665544332211],RAX
112 #testcase for symbol references.
114 #immediates - various sizes:
123 #absolute 64bit addressing
126 #absolute 32bit addressing
130 mov symbol(%rax), %eax
133 mov symbol(%rip), %eax
135 .intel_syntax noprefix
137 #immediates - various sizes:
138 mov al, offset flat:symbol
139 mov ax, offset flat:symbol
140 mov eax, offset flat:symbol
141 mov rax, offset flat:symbol
143 #parts aren't supported by the parser, yet (and not at all for symbol refs)
144 #mov eax, high part symbol
145 #mov eax, low part symbol
149 #absolute 64bit addressing
152 #absolute 32bit addressing
156 mov eax, [rax+symbol]
159 mov eax, [rip+symbol]
163 #absolute 64bit addressing
164 mov 0x8877665544332211,%al
165 mov 0x8877665544332211,%ax
166 mov 0x8877665544332211,%eax
167 mov 0x8877665544332211,%rax
168 mov %al,0x8877665544332211
169 mov %ax,0x8877665544332211
170 mov %eax,0x8877665544332211
171 mov %rax,0x8877665544332211
172 movb 0x8877665544332211,%al
173 movw 0x8877665544332211,%ax
174 movl 0x8877665544332211,%eax
175 movq 0x8877665544332211,%rax
176 movb %al,0x8877665544332211
177 movw %ax,0x8877665544332211
178 movl %eax,0x8877665544332211
179 movq %rax,0x8877665544332211
181 #absolute signed 32bit addressing
182 mov 0xffffffffff332211,%al
183 mov 0xffffffffff332211,%ax
184 mov 0xffffffffff332211,%eax
185 mov 0xffffffffff332211,%rax
186 mov %al,0xffffffffff332211
187 mov %ax,0xffffffffff332211
188 mov %eax,0xffffffffff332211
189 mov %rax,0xffffffffff332211
190 movb 0xffffffffff332211,%al
191 movw 0xffffffffff332211,%ax
192 movl 0xffffffffff332211,%eax
193 movq 0xffffffffff332211,%rax
194 movb %al,0xffffffffff332211
195 movw %ax,0xffffffffff332211
196 movl %eax,0xffffffffff332211
197 movq %rax,0xffffffffff332211
201 .intel_syntax noprefix
202 cmpxchg16b oword ptr [rax]
237 .intel_syntax noprefix
244 movsx edx,BYTE PTR [rax]
245 movsx rdx,BYTE PTR [rax]
246 movsx dx,BYTE PTR [rax]
247 movsx edx,WORD PTR [rax]
248 movsx rdx,WORD PTR [rax]
255 movzx edx,BYTE PTR [rax]
256 movzx rdx,BYTE PTR [rax]
257 movzx dx,BYTE PTR [rax]
258 movzx edx,WORD PTR [rax]
259 movzx rdx,WORD PTR [rax]
261 movq xmm1,QWORD PTR [rsp]
263 movq QWORD PTR [rsp],xmm1
272 .intel_syntax noprefix
303 .intel_syntax noprefix
305 movsx ax, BYTE PTR [rax]
306 movsx eax, BYTE PTR [rax]
307 movsx eax, WORD PTR [rax]
308 movsx rax, WORD PTR [rax]
309 movsx rax, DWORD PTR [rax]
311 movzx ax, BYTE PTR [rax]
312 movzx eax, BYTE PTR [rax]
313 movzx eax, WORD PTR [rax]
314 movzx rax, WORD PTR [rax]
316 movnti dword ptr [rax], eax
317 movnti qword ptr [rax], rax