Intel EMT64 の命令

Menu Menu


Intel EMT64 の命令


addressing mode

    (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         数値


load store

    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


compuation

    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


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

Shinji KONO / Sat Mar 24 11:30:50 2012