マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

謎の値

今、RETFを使って、CS、EIP、SS、ESPを同時に切り替えようとしている。それで、試しに下のコードを実行してみるとbochsがCSがおかしいと言い出す。それで、そのCSの値を見てみると0x38。しかし、0x38なんて値は入れていない。下のコードのEBXには0x3bがECXには0x33が入ってることは確認済である。スタックに入れる順番を間違えたとしても、変な値か0x3bのはずであるが、どこにもでてきてない0x38だとbochsは言っている。一体何なんだろう?

    PUSH EBX ;SS
    PUSH EDX ;ESP
    PUSH ECX ;CS
    PUSH EAX ;EIP

    RETF