diff options
Diffstat (limited to 'modules/arch/x86/tests/imm64.asm')
-rw-r--r-- | modules/arch/x86/tests/imm64.asm | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/modules/arch/x86/tests/imm64.asm b/modules/arch/x86/tests/imm64.asm new file mode 100644 index 0000000..5b41bfa --- /dev/null +++ b/modules/arch/x86/tests/imm64.asm @@ -0,0 +1,35 @@ +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 + |