Intel EMT64 の命令
Menu
Menu
(address) *address address参照
pointer *pointer pointer参照
(%rsp) *(%rsp) indexed
(%rip) *(%rip) program counter 相対
2(%rsp) *(%rsp+w) indexed + offset
%rsp %rsp register参照
_234 *(234) 変数アドレス
$234 234 数値
movq load/store from memory
movq %rax,%rdx 64bit move quad (%rax to %rdx)
movl %eax,%edx 32bit move long (%rax to %edx)
movw %ax,(%rdx) 16bit move word
movb %eal,(%rdx) 8bit move byte
lea load effective address
lea 5(%rax),%eax %eax = 5 + %eax
push/pop
pushq %rax
popq %rdx
movsbl sign extend (char to long)
movsbl 5(%rax),%eax 8bit signed to 32bit
movswl sign extend (word to long)
movswl %si,%eax
addq add
addq %rdx,%rbx
and and
andl %eax,-4(%rbp)
sal arithmetic shift left
sall $4,%eax
sar arithmetic shift right
sarl $4,%eax
cmp compare
cmpl $0,-4(%rbp)
neg negative
negl %edx
inc increment
incl _ptr
dec decrement
decl _ptr
XOR exclusiv or
xorl %eax,%eax
rol rotate left
ror rotate right
imull multiply
imull -4(%rbp),%eax -4(%rbp) *= %eax
idiv divide (signed)
xor %eax,%eax
idiv -4(%rbp) %edx = %edx:%eax / -4(%rbp)
%eax = %edx:%eax % -4(%rbp)
divl divide (unsigned)
ctld
divl -4(%rbp) %edx = %eax / -4(%rbp)
%eax = %eax % -4(%rbp)
or or
orl %eax,-4(%rbp)
subtract
subq $8,%rsp
jmp relative jump
call subroutine call
jxx conditional branch
je, jne,
jl, jle, jg, jge signed
jb, jbe, ja, jae unsigned
ret return from subroutine
leave unlink opeation
.align alignment
nop no operation