summaryrefslogtreecommitdiff
path: root/modules/arch/x86/tests/imm64.asm
blob: 5b41bfaeb98ed595c51ba63879caf7275edc0c6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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