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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
|| - ELF Header
00 - Byte 00
..
ff - Byte ff
'a - Character a (byte 0x61)
'! - Character ! (byte 0x21)
etc.
\n - Newline (byte 0x0a)
zA - Zero rax
im - Set rax to an immediate value, e.g.
im;05;00;00;00;00;00;00;00;
will set rax to 5.
ax bx cx dx sp bp si di
A B C D S R I J
The instruction for moving one register to another is [dest][src], e.g. CS is
mov rcx, rsp.
XA - mov r8, rax
YA - mov r9, rax
ZA - mov r10, rax
xc - xchg rax, rbx
sq - mov qword [rbx], rax
lq - mov rax, qword [rbx]
sd - mov dword [rbx], eax
ld - mov eax, dword [rbx]
sw - mov word [rbx], ax
lw - mov ax, word [rbx]
sb - mov byte [rbx], al
lb - mov al, byte [rbx]
nA - neg rax
+B - add rax, rbx
-* - imul rbx
-/ - idiv rbx
+* - mul rbx
+/ - div rbx
!A - not rax
&B - and rax, rbx
|B - or rax, rbx
^B - xor rax, rbx
<C - shl rax, cl
<I - shl rax, imm8
>C - shr rax, cl
>I - shr rax, imm8
]C - sar rax, cl
]I - sar rax, imm8
-S - sub rsp, imm32
cm - cmp rax, rbx
te - test rax, rax
jm - jmp rel32
je - je rel32
jn - jne rel32
jl - jl rel32
jb - jb rel32
ja - ja rel32
cl - call rax
re - ret
sy - syscall
|