
No.1ベストアンサー
- 回答日時:
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関連の入門書などを参照したほうが良いと思いますよ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行ファイルからソースはみれる?
-
アセンブラ言語がわかりません。
-
void __cdeclなど_
-
マシン語で再起動を書くには?
-
GCCの.cfi_系について
-
アセンブラのLA
-
アセンブリ言語について。
-
ライン数とステップ数の違いは?
-
MPLAB IDE v8.92アセンブラにつ...
-
アセンブラの本、最近多くなり...
-
[C言語→アセンブリ言語]はどう...
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
シーケンサのデータレジスタD...
-
レジストってなんですか?
-
CASL2(減算命令と比較命令の...
-
エクセルVBAのIf,Then 構...
-
Delphiでの関数の戻り値を別の...
-
整数除算の意味とは?
-
SRAMとレジスタの違いは何でし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
アセンブラ言語がわかりません。
-
このアセンブラの意味を教えて...
-
実行ファイルからソースはみれる?
-
高級言語がアセンブリ言語に比...
-
アセンブラのコードについて質...
-
MASMの擬似命令「ASSUME」について
-
PICに書き込むプログラムや変数...
-
アセンブラwordという単位
-
【H8マイコン】HEWで埋め込みア...
-
アセンブリ言語について。
-
アセンブリ言語について
-
アセンブラの配列処理
-
PICC(HI-TECH SoftWare)によるI...
-
アセンブラで割り算
-
アセンブラのLA
-
アセンブラ言語で質問です。
-
Cとアセンブラ
-
PICはアセンブラとC言語のどち...
おすすめ情報