FromNandの日記

自分的備忘録

【アセンブラ】GASにおけるljmpとljmplの違いについて

gasって意外にネット上に情報がないので、ここに忘れないうちに示しておく。

ljmp - オペランドのアドレスから続く4byteをeipにいれ、5-6byteをcsにいれる

farjmp: #void farjmp(int eip, int cs)
    ljmp *4(%esp)
    ret

 

ljmpl - オペランドは二つあり、一つ目をcs、二つ目をeipにいれる。ただし、オペランドには即値しか使えない。

taskswitch3: #void taskswitch(void)
    ljmpl $3*8,$0
    ret