アプリ版:「スタンプのみでお礼する」機能のリリースについて

古いlinuxのコードを読んでいて分からないことがありました。
具体的には、linux-0.1/kernel/asm.s の_divide_errorルーチンなどにあるのですが、

push %ds

命令がスタックを4バイト消費しているとして処理が行われているのです。
%ds は16bitのはずですし、普通にpushしたら2バイトしか消費しないように思えます。
スタックセグメントが32bitの場合は無条件に4バイト消費するのかと思い調べましたが
そういう記述は見つけられませんでした。

これはバグなのかと思い始めたのですが、中国語で解説されてるドキュメントを
発見して、push %ds で4バイト消費する図が描かれていました。

push %dsで消費するスタックの量は4バイトなのでしょうか?

A 回答 (1件)

とりあえず Intel の資料を読んでみてはどうでしょうか.



参考URL:http://download.intel.com/products/processor/man …

この回答への補足

ありがとうございました。
まだ目的は果たせてませんが、インテル資料を参考に頑張ってみます。

補足日時:2012/11/24 11:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!