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
104 #testcase for symbol references.
106 #immediates - various sizes:
115 #absolute 64bit addressing
118 #absolute 32bit addressing
122 mov symbol
(%rax
), %eax
125 mov symbol
(%rip
), %eax
127 .intel_syntax noprefix
129 #immediates - various sizes:
130 mov al
, offset flat
:symbol
131 mov ax
, offset flat
:symbol
132 mov eax
, offset flat
:symbol
133 mov rax
, offset flat
:symbol
135 #parts aren't supported by the parser, yet (and not at all for symbol refs)
136 #mov eax, high part symbol
137 #mov eax, low part symbol
141 #absolute 64bit addressing
144 #absolute 32bit addressing
148 mov eax
, [rax+symbol
]
151 mov eax
, [rip+symbol
]
155 #absolute 64bit addressing
156 mov
0x8877665544332211,%al
157 mov
0x8877665544332211,%ax
158 mov
0x8877665544332211,%eax
159 mov
0x8877665544332211,%rax
160 mov
%al
,0x8877665544332211
161 mov
%ax
,0x8877665544332211
162 mov
%eax
,0x8877665544332211
163 mov
%rax
,0x8877665544332211
164 movb
0x8877665544332211,%al
165 movw
0x8877665544332211,%ax
166 movl
0x8877665544332211,%eax
167 movq
0x8877665544332211,%rax
168 movb
%al
,0x8877665544332211
169 movw
%ax
,0x8877665544332211
170 movl
%eax
,0x8877665544332211
171 movq
%rax
,0x8877665544332211
173 #absolute signed 32bit addressing
174 mov
0xffffffffff332211,%al
175 mov
0xffffffffff332211,%ax
176 mov
0xffffffffff332211,%eax
177 mov
0xffffffffff332211,%rax
178 mov
%al
,0xffffffffff332211
179 mov
%ax
,0xffffffffff332211
180 mov
%eax
,0xffffffffff332211
181 mov
%rax
,0xffffffffff332211
182 movb
0xffffffffff332211,%al
183 movw
0xffffffffff332211,%ax
184 movl
0xffffffffff332211,%eax
185 movq
0xffffffffff332211,%rax
186 movb
%al
,0xffffffffff332211
187 movw
%ax
,0xffffffffff332211
188 movl
%eax
,0xffffffffff332211
189 movq
%rax
,0xffffffffff332211
193 .intel_syntax noprefix
194 cmpxchg16b oword ptr
[rax
]
229 .intel_syntax noprefix
236 movsx edx
,BYTE PTR
[rax
]
237 movsx rdx
,BYTE PTR
[rax
]
238 movsx dx
,BYTE PTR
[rax
]
239 movsx edx
,WORD PTR
[rax
]
240 movsx rdx
,WORD PTR
[rax
]
247 movzx edx
,BYTE PTR
[rax
]
248 movzx rdx
,BYTE PTR
[rax
]
249 movzx dx
,BYTE PTR
[rax
]
250 movzx edx
,WORD PTR
[rax
]
251 movzx rdx
,WORD PTR
[rax
]
253 movq xmm1
,QWORD PTR
[rsp
]
255 movq QWORD PTR
[rsp
],xmm1
264 .intel_syntax noprefix
295 .intel_syntax noprefix
297 movsx ax
, BYTE PTR
[rax
]
298 movsx eax
, BYTE PTR
[rax
]
299 movsx eax
, WORD PTR
[rax
]
300 movsx rax
, WORD PTR
[rax
]
301 movsx rax
, DWORD PTR
[rax
]
303 movzx ax
, BYTE PTR
[rax
]
304 movzx eax
, BYTE PTR
[rax
]
305 movzx eax
, WORD PTR
[rax
]
306 movzx rax
, WORD PTR
[rax
]
308 movnti dword ptr
[rax
], eax
309 movnti qword ptr
[rax
], rax