- 締切済み
x86系でリアル←→プロテクトモードに移行するアセンブラコードが知りたい。
x86系のCPUで、リアルモードからプロテクトモード または、プロテクトモードからリアルモードに移行するアセンブラコードが知りたいです。 このあたりの情報に詳しい本をご存知の方教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
x86の場合 コントロールレジスタCR0の ビット0(PEビット)のOn/Offで プロテクトモード・リアルモードの切り替えが出来ます ; リアル -> プロテクト .386p _TEXT Segment byte public use16 ' CODE' assume cs:_TEXT public _RealToProto _RealToProto proc near push bp mov bp, sp cli mov eax, cr0 or eax, 1 mov cr0, eax jmp flush_q1 flush_q1: pop bp; ret _RealToProto Endp _TEXT ends end ; プロテクト -> リアル .386p _TEXT Segment byte public use16 ' CODE' assume cs:_TEXT public _ProtoToReal _ProtoToReal proc near push bp mov bp, sp mov eax, cr0 and eax, 0fffffffeh mov cr0, eax jump flush_q2 flush_q2: pop bp ret _ProtoToReal endp _TEXT ends end といった具合です 上記のコードは単にモードを切り替えているだけです このほかにもDS、SS、ESなどのレジスタ操作もしなくてはいけないと思います 486関連の入門書などを参照したほうが良いと思いますよ