| bits 64 |
| default abs |
| ;extern label1 |
| label1: |
| label2: |
| |
| mov rax, 0x1000 ; 32-bit imm |
| mov rax, 0x1122334455667788 ; 64-bit imm (larger than signed 32-bit) |
| ;mov rax, 0x80000000 ; 64-bit imm (larger than signed 32-bit) |
| mov rax, label1 ; 32-bit imm <--- not 64-bit! |
| mov rax, label2 ; 32-bit imm <--- not 64-bit! |
| mov rax, qword 0x1000 ; 64-bit imm |
| mov rax, qword label1 ; 64-bit imm |
| mov rax, qword label2 ; 64-bit imm |
| |
| mov qword [rax], 0x1000 ; 32-bit imm |
| mov qword [rax], 0x1122334455667788 ; 32-bit imm, overflow warning |
| ;mov qword [rax], 0x80000000 ; 32-bit imm, overflow warning |
| mov qword [rax], label1 ; 32-bit imm (matches default above) |
| mov qword [rax], label2 ; 32-bit imm (matches default above) |
| |
| add rax, 0x1000 ; 32-bit imm |
| add rax, 0x1122334455667788 ; 32-bit imm, overflow warning |
| ;add rax, 0x80000000 ; 32-bit imm, overflow warning |
| add rax, label1 ; 32-bit imm (matches default above) |
| add rax, label2 ; 32-bit imm (matches default above) |
| |
| mov [0x1000], rax ; 32-bit disp |
| mov [abs 0x1122334455667788], rax ; 64-bit disp |
| mov [label1], rax ; 32-bit disp |
| mov [label2], rax ; 32-bit disp |
| mov [qword 0x1000], rax ; 64-bit disp |
| mov [qword label1], rax ; 64-bit disp |
| mov [qword label2], rax ; 64-bit disp |
| |