SUB – Subtract

| SUB instruction |

(gdb) disass
Dump of assembler code for function *__GI___poll:
   0x00007fc50ab670b0 :	sub    $0x28,%rsp
   0x00007fc50ab670b4 :	mov    0x29c52e(%rip),%eax        # 0x7fc50ae035e8
   0x00007fc50ab670ba :	test   %eax,%eax
   0x00007fc50ab670bc :	jne    0x7fc50ab670d5
   0x00007fc50ab670be :	movslq %edx,%rdx
   0x00007fc50ab670c1 :	mov    $0x7,%eax
   0x00007fc50ab670c6 :	syscall
=> 0x00007fc50ab670c8 :	cmp    $0xfffffffffffff000,%rax
   0x00007fc50ab670ce :	ja     0x7fc50ab67121
   0x00007fc50ab670d0 :	add    $0x28,%rsp
   0x00007fc50ab670d4 :	retq
   0x00007fc50ab670d5 :	mov    %edx,0x8(%rsp)
   0x00007fc50ab670d9 :	mov    %rsi,0x10(%rsp)

sub $0x28(value at memory 0x28) ,%rsp(value at 64 bit general purpose register)

Process Involved

$ping gnu.org
PING gnu.org (199.232.41.10) 56(84) bytes of data.

Explanation

Usage: SUB dest,src
The source is subtracted from the destination and the result is
stored in the destination.

source  : http://www.penguin.cz/~literakl/intel/s.html#SUB