| .text |
| .intel_syntax noprefix |
| # REX prefix and addressing modes. |
| add edx,ecx |
| add edx,r9d |
| add r10d,ecx |
| add rdx,rcx |
| add r10,r9 |
| add r8d,eax |
| add r8w,ax |
| add r8,rax |
| add eax,0x44332211 |
| add rax,0xfffffffff4332211 |
| add ax,0x4433 |
| add rax,0x44332211 |
| add dl,cl |
| add bh,dh |
| add dil,sil |
| add r15b,sil |
| add dil,r14b |
| add r15b,r14b |
| PUSH RAX |
| PUSH R8 |
| POP R9 |
| ADD AL,0x11 |
| ADD AH,0x11 |
| ADD SPL,0x11 |
| ADD R8B,0x11 |
| ADD R12B,0x11 |
| MOV RAX,CR0 |
| MOV R8,CR0 |
| MOV RAX,CR8 |
| MOV CR8,RAX |
| REP MOVSQ #[RSI],[RDI] |
| REP MOVSW #[RSI,[RDI] |
| REP MOVSQ #[RSI],[RDI] |
| MOV AL, 0x11 |
| MOV AH, 0x11 |
| MOV SPL, 0x11 |
| MOV R12B, 0x11 |
| MOV EAX,0x11223344 |
| MOV R8D,0x11223344 |
| MOV RAX,0x1122334455667788 |
| MOV R8,0x1122334455667788 |
| add eax,[rax] |
| ADD EAX,[R8] |
| ADD R8D,[R8] |
| ADD RAX,[R8] |
| ADD EAX,[0x22222222+RIP] |
| ADD EAX,[RBP+0x00] |
| ADD EAX,[0x22222222] |
| ADD EAX,[R13+0] |
| ADD EAX,[RAX+RAX*4] |
| ADD EAX,[R8+RAX*4] |
| ADD R8D,[R8+RAX*4] |
| ADD EAX,[R8+R8*4] |
| ADD [RCX+R8*4],R8D |
| ADD EDX,[RAX+RAX*8] |
| ADD EDX,[RAX+RCX*8] |
| ADD EDX,[RAX+RDX*8] |
| ADD EDX,[RAX+RBX*8] |
| ADD EDX,[RAX] |
| ADD EDX,[RAX+RBP*8] |
| ADD EDX,[RAX+RSI*8] |
| ADD EDX,[RAX+RDI*8] |
| ADD EDX,[RAX+R8*8] |
| ADD EDX,[RAX+R9*8] |
| ADD EDX,[RAX+R10*8] |
| ADD EDX,[RAX+R11*8] |
| ADD EDX,[RAX+R12*8] |
| ADD EDX,[RAX+R13*8] |
| ADD EDX,[RAX+R14*8] |
| ADD EDX,[RAX+R15*8] |
| ADD ECX,0x11 |
| ADD DWORD PTR [RAX],0x11 |
| ADD QWORD PTR [RAX],0x11 |
| ADD DWORD PTR [R8],0x11 |
| ADD DWORD PTR [RCX+RAX*4],0x11 |
| ADD DWORD PTR [R9+RAX*4],0x11 |
| ADD DWORD PTR [RCX+R8*4],0x11 |
| ADD DWORD PTR [0x22222222+RIP],0x33 |
| ADD QWORD PTR [RIP+0x22222222],0x33 |
| ADD DWORD PTR [RIP+0x22222222],0x33333333 |
| ADD QWORD PTR [RIP+0x22222222],0x33333333 |
| ADD DWORD PTR [RAX*8+0x22222222],0x33 |
| ADD DWORD PTR [RAX+0x22222222],0x33 |
| ADD DWORD PTR [RAX+0x22222222],0x33 |
| ADD DWORD PTR [R8+RBP*8],0x33 |
| ADD DWORD PTR [0x22222222],0x33 |
| #new instructions |
| MOVABS AL,[0x8877665544332211] |
| MOVABS EAX,[0x8877665544332211] |
| MOVABS [0x8877665544332211],AL |
| MOVABS [0x8877665544332211],EAX |
| MOVABS RAX,[0x8877665544332211] |
| MOVABS [0x8877665544332211],RAX |
| cqo |
| cdqe |
| movsx rax, eax |
| movsx rax, ax |
| movsx rax, al |
| bar: |
| .att_syntax |
| #testcase for symbol references. |
| |
| #immediates - various sizes: |
| |
| mov $symbol, %al |
| mov $symbol, %ax |
| mov $symbol, %eax |
| mov $symbol, %rax |
| |
| #addressing modes: |
| |
| #absolute 64bit addressing |
| movabs symbol, %eax |
| |
| #absolute 32bit addressing |
| mov symbol, %eax |
| |
| #arithmetic |
| mov symbol(%rax), %eax |
| |
| #RIP relative |
| mov symbol(%rip), %eax |
| |
| .intel_syntax noprefix |
| |
| #immediates - various sizes: |
| mov al, flat:symbol |
| mov ax, flat:symbol |
| mov eax, flat:symbol |
| mov rax, flat:symbol |
| |
| #parts aren't supported by the parser, yet (and not at all for symbol refs) |
| #mov eax, high part symbol |
| #mov eax, low part symbol |
| |
| #addressing modes |
| |
| #absolute 64bit addressing |
| movabs eax, [symbol] |
| |
| #absolute 32bit addressing |
| mov eax, [symbol] |
| |
| #arithmetic |
| mov eax, [rax+symbol] |
| |
| #RIP relative |
| mov eax, [rip+symbol] |
| |
| foo: |
| .att_syntax |
| #absolute 64bit addressing |
| mov 0x8877665544332211,%al |
| mov 0x8877665544332211,%ax |
| mov 0x8877665544332211,%eax |
| mov 0x8877665544332211,%rax |
| mov %al,0x8877665544332211 |
| mov %ax,0x8877665544332211 |
| mov %eax,0x8877665544332211 |
| mov %rax,0x8877665544332211 |
| movb 0x8877665544332211,%al |
| movw 0x8877665544332211,%ax |
| movl 0x8877665544332211,%eax |
| movq 0x8877665544332211,%rax |
| movb %al,0x8877665544332211 |
| movw %ax,0x8877665544332211 |
| movl %eax,0x8877665544332211 |
| movq %rax,0x8877665544332211 |
| |
| #absolute signed 32bit addressing |
| mov 0xffffffffff332211,%al |
| mov 0xffffffffff332211,%ax |
| mov 0xffffffffff332211,%eax |
| mov 0xffffffffff332211,%rax |
| mov %al,0xffffffffff332211 |
| mov %ax,0xffffffffff332211 |
| mov %eax,0xffffffffff332211 |
| mov %rax,0xffffffffff332211 |
| movb 0xffffffffff332211,%al |
| movw 0xffffffffff332211,%ax |
| movl 0xffffffffff332211,%eax |
| movq 0xffffffffff332211,%rax |
| movb %al,0xffffffffff332211 |
| movw %ax,0xffffffffff332211 |
| movl %eax,0xffffffffff332211 |
| movq %rax,0xffffffffff332211 |
| |
| # Get a good alignment. |
| .p2align 4,0 |