找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 6933|回复: 0

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好' F/ V  k6 p7 e4 E
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
" |4 i6 O3 y8 s;---------------------------------------9 P: e( i0 j- v5 ~5 |5 [

5 e$ ~' M4 J" S  b.model small6 B& F) P7 z( x& z' Z) L8 c
.586p: Q' k; x% X7 g. r
.stack  3 O$ X6 {3 w/ Z! V! `4 G  x
    8 b) Y. I4 ^5 [" w2 Q, E  m' j2 Q* h
.data
# s4 `: O/ _5 [9 J& t0 H  y3 m% [. s/ n( r. n2 ^+ J
DESC STRUC
" Y! m7 E" G* j. }  LimitL DW 0  
& ~  n, }( M. i5 A$ Z4 x" h  BaseL DW 0  / _" J; u, F/ {6 x* R/ a2 }
  BaseM DB 0  
3 l$ Z. V  I7 b5 O) l7 L  Attributes DB 0  
9 U! p( a3 e# a( e! g  LimitH DB 0  " I3 S: k/ Z3 T1 K( S' P
  BaseH DB 0  
8 A+ [: {: c1 L9 E5 [DESC ENDS& A5 p- u0 [8 k+ P

7 C- R0 c' O6 l+ _# }) A6 f6 TPDesc STRUC
3 ^( U- q: x- N! S& T) j  Limit DW 0    L' `# b* X: _0 \/ z, ]7 t. j, _
  Base DD 0  ' ~! O8 F, S& z: u
PDesc ENDS
. [) ^8 r* R, K& O
5 R, @8 u0 y# xGDT_def Label Fword  Q4 B9 e; B4 j* E# B) Y
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
3 i8 D8 }$ ?, k- t/ v) K, F/ ZData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
) M( t/ V& ^- [2 a2 a4 h+ [- P: r0 Q  T' W; I/ v1 h4 @
GDT_Addr PDesc <$-GDT_def-1, >; b. {7 d7 W  g- G4 {2 e0 f$ H
cmd DD 255(0)3 `. q' Y1 E3 Z! ]: N* {

" S& D% E2 K  R+ q, D.code1 p! p: T% }; N
main proc# `) I; `4 f2 Y6 K- d- }7 o3 h
  call Set4gb+ f$ x7 W+ J; A( B! R! c6 a
. |/ ]& o( G8 l3 K
  mov esi, 20000100h
6 g/ B( f' w  Q/ j5 P# T  mov dword ptr fs:[esi], 055aa55aah
  B" j' S* F2 S: Q& }    ' s2 l6 F3 H  _
  .exit
, O+ d3 y  A/ Q$ G3 amain endp   
* U* o: D$ F% v9 A; j0 d$ O! d! \+ h# L" @5 Q# k
Set4gb PROC NEAR. G' e9 f4 p: M
  in al, 92h
& C4 ?4 Z' N! D2 Y; j- `  or al, 0024 q1 O2 r3 s; n  z8 X; T: p! F7 M
  out 092h, al4 p6 q/ v8 y8 F* T1 J
  out 0edh, al
4 n& a8 _9 h6 X7 y- j/ a8 l* r  N% ]; Q$ U! z
  cli
/ o4 [  D4 z' X# s7 |1 g; V7 q0 c1 Q4 t6 w. Q, i; i" J, I  M
  mov eax, ds
) P8 O  P5 ^. o, Q  shl eax, 42 w: ~, S1 @4 m3 X# K
  xor ebx, ebx6 Z+ q+ V% Y7 {$ R; M, H
  mov bx, offset GDT_def
; [& h% }/ F: g2 n/ |! {& ~# U  add eax, ebx
: ~3 W4 x" R, A, K  mov dword ptr GDT_Addr.Base, eax$ s! K) n( Y5 o/ U
  lgdt fword ptr GDT_Addr7 {0 i& t7 S" z* y

3 x* j1 L! n1 w% @+ u" M  mov bx, 8: t' Z! k' t5 J$ R
  mov eax, cr0- C' O, [' Z: k8 a% @- r+ F6 B
  or al, 1
5 c5 ]# w3 V9 s' p% _  mov cr0, eax
- B/ Q) b; Q! r9 b, u' K- p% K6 ~$ o2 h% O2 C7 l
  jmp pMod, {/ Y- }9 f& f* d# G
  pMod:( m  W' m( s3 D& f0 X& {- j

% i' _4 @0 {$ z+ e8 L  mov fs, bx, Y4 {( y' k5 Y
  mov gs, bx
# C' f$ Q- M/ }# x6 \. V" O! ]  and al, 0FEh. z3 [' I( V0 `  M& |: Z0 v/ ?$ {5 j
  mov cr0, eax% H5 I: s6 T4 V4 w
   
) W1 b/ d1 i, G3 [5 @; v7 J% s$ i$ }  jmp rMod
/ Z6 d! Y. p$ v8 y% j* ~2 m  rMod:
+ `- x5 F. j6 L, ]
0 d# K9 D' r* r% j; @1 {0 V  mov ax, 0
: P! q- \1 n- }  mov fs, ax
) S7 X( k* N6 w/ Y- g5 d& b  mov gs, ax; D! D8 y$ r" K" d  {
    , d7 ]5 I5 c( V5 X5 _; u+ h( `: v. X
    % b' v; w2 D& G: R; a& b. D( T8 U* A2 [
* l) V. \7 ~! |/ N. Z% ~+ W0 I
  sti
! N. o6 V1 ?6 {1 S  ret
* n2 o# ?. O0 Y  K7 F. |' ASet4gb ENDP3 H/ q3 Q+ Y3 {$ w% m0 t1 U1 R
    2 o9 ?6 @) b4 P# h5 I6 J
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-7-21 22:11 , Processed in 0.075368 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表