Changes

Jump to: navigation, search

X86 64 Register and Instruction Quick Start

203 bytes added, 10:23, 2 October 2014
Starter Kit
cmp %r10,%r11 // compare register r10 with register r11
cmp $99,%r11 // compare the number 99 with register r11
div $%r10 // divide rax by the given register (r10), places quotient into rax and remainder into rdx (rdx must be zero before this instruction)
inc %r10 // increment r10
jmp ''label'' // jump to label
jeq je ''label'' // jump to label if equal
jne ''label'' // jump to label if not equal
jl ''label'' // jump to label if less
mov %r10,(%r11) // move data from r10 to address pointed to by r11
mov (%r10),%r11 // move data from address pointed to by r10 to r10
mul $%r10 // multiplies rax by r10, places result in rax and overflow in rdx
push %r10 // push r10 onto the stack
pop %r10 // pop r10 off the stack
* Character values are indicated by quotation marks. Escapes (such as '\n') are permitted.
* Data sources are given as the first argument (mov %r10,%r11 moves FROM r10 INTO r11).
 
For the MOV instruction:
* You can append a suffix indicating the amount of data to be moved -- e.g., q for quadword (64 bits), d for doubleword (32 bits), w for word (16 bits), or b for byte (8 bits).
== Resources ==

Navigation menu