2013-02-09 符号拡張 割り算した部分の逆アセンブル結果を読んでいてsarが何をしているのかしばらくわからなかった。 mov %eax,%edx sar $0x1f,%edx idivl -0xc(%ebp) sarは符号付き右シフト命令であるからedxの最上位ビットが全ビットに広がる。idivlはてっきり32bitの除算だと思っていたのだがedxとeaxあわせて64bitの除算であった。よってこれはeaxの値を64bitに符号拡張しているわけだ。