2013年1月23日水曜日

64bitモードにおけるスタック操作

Intel® 64 and IA-32 Architectures Software Developer’s Manual の Section 7.3.1.5 において,64bitモードにおけるスタック操作について説明している.
困ったことに,pushad や popad は使えないようだ.
PUSHA, PUSHAD, POPA, and POPAD are not supported.

LKMで処理を挟み込む前に汎用レジスタを退避させたい.とりあえずの対処として,makeした後に生成される *.o を objdump -d で逆アセンブルして,使われるレジスタを見つけた.その後,使われているレジスタを push/pop で退避させた.

参考:Intel® 64 and IA-32 Architectures Software Developer Manuals

0 件のコメント:

コメントを投稿