Intel x86 の命令

Intel x86 の命令

addressing mode

    (address)     *address    address参照
    pointer       *pointer    pointer参照
    (%esp)        *(%esp)     indexed
    2(%esp)       *(%esp+w)   indexed + offset 
    %esp          %esp        register参照

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

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
MUL    multiply              
        imull -4(%ebp),%eax
OR     or
        orl %eax,-4(%ebp)
swl    sign extend
        movswl %si,%eax
btract
       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/