Intel x86 の命令
Intel x86 の命令
addressing mode
(address) *address address参照
pointer *pointer pointer参照
(%esp) *(%esp) indexed
2(%esp) *(%esp+w) indexed + offset
%esp %esp register参照
_234 *(234) 変数アドレス
$234 234 数値
load store
movl load/store from memory
movl %eax,%edx move long (%eax to %edx)
movb %eal,(%edx) move byte
movw %ax,(%edx) move word
lea load effective address
lea 5(%eax),%eax %eax = 5 + %eax
push/pop
pushl %eax
popl %edx
sbl sign extend (char to long)
movsbl 5(%eax),%eax
swl sign extend (word to long)
movswl %si,%eax
compuation
addl add
addl %edx,%ebx
and and
andl %eax,-4(%ebp)
sal arithmetic shift left
sall $4,%eax
sar arithmetic shift right
sarl $4,%eax
cmp compare
cmpl $0,-4(%ebp)
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(%ebp),%eax -4(%ebp) *= %eax
idiv divide (signed)
xor %eax,%eax
idiv -4(%ebp) %edx = %edx:%eax / -4(%ebp)
%eax = %edx:%eax % -4(%ebp)
divl divide (unsigned)
ctld
divl -4(%ebp) %edx = %eax / -4(%ebp)
%eax = %eax % -4(%ebp)
or or
orl %eax,-4(%ebp)
subtract
subl $8,%esp
branch
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
miscellaneous
leave unlink opeation
.align alignment
nop no operation
Kono's home page http://bw-www.ie.u-ryukyu.ac.jp/~kono/