CPYOU Registers

RAX G
RBX G
RCX G
RDX G
RDI G
RSI G
RBP R
0
RSP R
0
RIP R
0
R8 G
R9 G
R10 G
R11 G
R12 G
R13 G
R14 G
R15 G

CPYOU STACK

0

The x86 Assembly Instruction Set

INTEL, 1995


ADD
ADD D, S

Adds two arguments [D,S] storing the result in the (D)estination register.

MOV
MOV D, S

Moves the value of the (S)ource register to the (D)estination register.

POP
POP D

Pops the top value from the stack into the (D)estination register.

PUSH
PUSH S

Pushes the value of the (S)ource register onto the stack.

SUB
SUB D, S

Subtracts the value of the (S)ource register from the (D)estination register storing the result in the (D)estination register.

MUL
MUL D, S

Multiplies the value of the (S)ource register by the value of the (D)estination register storing the result in the (D)estination register.

IMUL
IMUL D, S

Multiplies the value of the (S)ource register by the value of the (D)estination register storing the result in the (D)estination register.

DIV
DIV D, S

Divides the value of the (D)estination register by the value of the (S)ource register storing the result in the (D)estination register.

IDIV
IDIV D, S

Divides the value of the (D)estination register by the value of the (S)ource register storing the result in the (D)estination register.

AND
AND D, S

Performs a bitwise AND operation on the value of the (S)ource register and the value of the (D)estination register storing the result in the (D)estination register.

OR
OR D, S

Performs a bitwise OR operation on the value of the (S)ource register and the value of the (D)estination register storing the result in the (D)estination register.

XOR
XOR D, S

Performs a bitwise XOR operation on the value of the (S)ource register and the value of the (D)estination register storing the result in the (D)estination register.

NOT
NOT D, S

Performs a bitwise NOT operation on the value of the (S)ource register storing the result in the (D)estination register.

SHL
SHL D, S

Shifts the value of the (D)estination register to the left by the value of the (S)ource register storing the result in the (D)estination register.

SHR
SHR D, S

Shifts the value of the (D)estination register to the right by the value of the (S)ource register storing the result in the (D)estination register.

JMP
JMP L

Jumps to the part of the program specified by the symbolic or numeric (L)abel

x86 INSTRUCTIONS
<_magic>:
	push rbp
	mov rbp, rsp
	mov dword ptr [rbp - 4], edi
	mov dword ptr [rbp - 8], esi
	mov eax, dword ptr [rbp - 4]
	imul eax, dword ptr [rbp - 8]
	add eax, 13
	pop rbp
	ret
	nop word ptr cs:[rax + rax]

<_test>:
	push rbp
	mov rbp, rsp
	mov dword ptr [rbp - 4], edi
	mov dword ptr [rbp - 8], esi
	mov eax, dword ptr [rbp - 4]
	cdq
	idiv dword ptr [rbp - 8]
	sub eax, 30
	pop rbp
	ret
	nop word ptr cs:[rax + rax]

<_main>:
	push rbp
	mov rbp, rsp
	sub rsp, 16
	mov dword ptr [rbp - 4], 0
	mov dword ptr [rbp - 8], 25
	mov dword ptr [rbp - 12], 13
	mov edi, dword ptr [rbp - 8]
	mov esi, dword ptr [rbp - 12]
	call 0x100000f30 <_magic>
	add rsp, 16
	pop rbp
	ret