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 MOV AL,FLAT:[0x8877665544332211]
92 MOV EAX,FLAT:[0x8877665544332211]
93 MOV FLAT:[0x8877665544332211],AL
94 MOV FLAT:[0x8877665544332211],EAX
95 MOV RAX,FLAT:[0x8877665544332211]
96 MOV FLAT:[0x8877665544332211],RAX
104 #testcase for symbol references.
106 #immediates - various sizes:
115 #absolute 32bit addressing
119 mov symbol(%rax), %eax
122 mov symbol(%rip), %eax
124 .intel_syntax noprefix
126 #immediates - various sizes:
127 mov al, offset flat:symbol
128 mov ax, offset flat:symbol
129 mov eax, offset flat:symbol
130 mov rax, offset flat:symbol
132 #parts aren't supported by the parser, yet (and not at all for symbol refs)
133 #mov eax, high part symbol
134 #mov eax, low part symbol
138 #absolute 32bit addressing
142 mov eax, [rax+symbol]
145 mov eax, [rip+symbol]
149 #absolute 64bit addressing
150 mov 0x8877665544332211,%al
151 mov 0x8877665544332211,%ax
152 mov 0x8877665544332211,%eax
153 mov 0x8877665544332211,%rax
154 mov %al,0x8877665544332211
155 mov %ax,0x8877665544332211
156 mov %eax,0x8877665544332211
157 mov %rax,0x8877665544332211
158 movb 0x8877665544332211,%al
159 movw 0x8877665544332211,%ax
160 movl 0x8877665544332211,%eax
161 movq 0x8877665544332211,%rax
162 movb %al,0x8877665544332211
163 movw %ax,0x8877665544332211
164 movl %eax,0x8877665544332211
165 movq %rax,0x8877665544332211
167 #absolute signed 32bit addressing
168 mov 0xffffffffff332211,%al
169 mov 0xffffffffff332211,%ax
170 mov 0xffffffffff332211,%eax
171 mov 0xffffffffff332211,%rax
172 mov %al,0xffffffffff332211
173 mov %ax,0xffffffffff332211
174 mov %eax,0xffffffffff332211
175 mov %rax,0xffffffffff332211
176 movb 0xffffffffff332211,%al
177 movw 0xffffffffff332211,%ax
178 movl 0xffffffffff332211,%eax
179 movq 0xffffffffff332211,%rax
180 movb %al,0xffffffffff332211
181 movw %ax,0xffffffffff332211
182 movl %eax,0xffffffffff332211
183 movq %rax,0xffffffffff332211
187 .intel_syntax noprefix
188 cmpxchg16b oword ptr [rax]
223 .intel_syntax noprefix
230 movsx edx,BYTE PTR [rax]
231 movsx rdx,BYTE PTR [rax]
232 movsx dx,BYTE PTR [rax]
233 movsx edx,WORD PTR [rax]
234 movsx rdx,WORD PTR [rax]
241 movzx edx,BYTE PTR [rax]
242 movzx rdx,BYTE PTR [rax]
243 movzx dx,BYTE PTR [rax]
244 movzx edx,WORD PTR [rax]
245 movzx rdx,WORD PTR [rax]
247 movq xmm1,QWORD PTR [rsp]
249 movq QWORD PTR [rsp],xmm1
258 .intel_syntax noprefix
289 .intel_syntax noprefix
291 movsx ax, BYTE PTR [rax]
292 movsx eax, BYTE PTR [rax]
293 movsx eax, WORD PTR [rax]
294 movsx rax, WORD PTR [rax]
295 movsx rax, DWORD PTR [rax]
297 movzx ax, BYTE PTR [rax]
298 movzx eax, BYTE PTR [rax]
299 movzx eax, WORD PTR [rax]
300 movzx rax, WORD PTR [rax]
302 movnti dword ptr [rax], eax
303 movnti qword ptr [rax], rax