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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好  z( v2 F& c0 B0 a% F# G
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。6 q  f: j; G, }
;---------------------------------------
' ]' u) \4 L: m/ H5 O, `8 E# F3 C4 x- L. C
.model small+ B/ W! p, _* Q7 s; Y! R
.586p
- G8 Z6 k) W; C# g! U2 x+ I.stack  
) n! E1 B* h! L9 [# C7 W) s    , I- h2 N. t( s/ m3 z" F
.data
, Z: P4 J1 D) D: V+ |! f9 e8 _2 w: W
DESC STRUC
# G/ R! C+ x" Q) Q0 i1 |+ A  LimitL DW 0  5 y6 V1 b0 }; }
  BaseL DW 0  
2 v5 R) y! U; f( N0 s  BaseM DB 0  $ \7 g7 R/ |( `& J! }* _
  Attributes DB 0  # J) g3 \" e3 o2 ]
  LimitH DB 0  
! X6 D: c' i+ x& g8 w  p  BaseH DB 0  
, b# ~$ O) p5 F% P. J* LDESC ENDS
7 P3 i- p$ o3 d7 X
7 g- R9 U. V" s& q# jPDesc STRUC0 \" |1 e! S8 R! ]# o
  Limit DW 0  
/ z- n/ I4 R) B7 Y  Base DD 0  * ]3 {1 Z$ ^* d  F: Q. W5 L. [
PDesc ENDS
8 l# v9 ^# s9 J1 _+ y
4 T# h8 k* L8 n. j6 YGDT_def Label Fword
2 \2 D% a# S2 |& j* tNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
$ O1 |3 |4 j) V" R$ U8 o; rData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>9 H6 \: X! _6 l- B# E

: J$ F( ]" _# N5 _GDT_Addr PDesc <$-GDT_def-1, >
+ j, r2 w( t! [4 Gcmd DD 255(0)8 V; G$ J+ H& C$ ?1 b6 m( f

/ l3 y2 N( Z4 Q.code0 J9 N# T- j) Z6 [" X. A, [4 r
main proc
. @# V' q, k" X% {' T5 v1 I0 y  call Set4gb
" [9 @% n+ L& Z# a# x' j! f9 G4 i/ c* b, B5 W8 \" r* U( E4 Y& h
  mov esi, 20000100h9 V1 n1 j, x# p( @  m5 l" b9 ?
  mov dword ptr fs:[esi], 055aa55aah
  O: w( [! s% U2 p2 F4 y( T    , L& h& p( R% A3 G( ^: }1 H7 k- @
  .exit
# E7 S8 w8 M$ `3 u" d4 f* Ymain endp   
# H' _, K% s- E3 I0 F/ _+ e' d- C
. L9 [6 k$ d; uSet4gb PROC NEAR$ o# U/ t- g0 @% n! e6 M& {+ ?9 r
  in al, 92h, W, l3 H8 z3 M9 Q( |' P
  or al, 002' h; |0 K) N% m* s! s. Z8 q: B9 z  m
  out 092h, al
2 @2 \) U$ e* c  out 0edh, al! b: A+ @  h0 w8 K

+ i1 U  U! Z/ I8 F1 ~+ x) h" Z/ t  cli
! d0 o. d2 s2 c- i/ u3 N+ _/ n
" @; T& G  n, e" c3 w  mov eax, ds' z; H( R6 J. B& O2 [$ L
  shl eax, 4
/ [1 l# [: c( I  T' O  xor ebx, ebx5 j, e* a9 M6 j! E& b$ H
  mov bx, offset GDT_def
0 n% I* J8 ~2 \! u+ q  add eax, ebx
0 B. d0 {6 B2 {  mov dword ptr GDT_Addr.Base, eax$ T0 d  f% \* a; }
  lgdt fword ptr GDT_Addr  n3 [% w/ w2 k0 W) t! {5 s6 V
  A+ n5 ^+ ^+ |8 }0 z; P
  mov bx, 8" s. _# r- g/ ~0 |' D  R- y& k
  mov eax, cr0
9 p( f9 d# [4 z3 A  or al, 1
  ^& j4 R/ e9 i* f" o9 N4 n6 U  mov cr0, eax% D" Y( {5 F3 X) V+ w6 y. I' O" h
- ^$ A' X/ l" F
  jmp pMod
2 O7 t8 H) p; K& [8 }* \, I" ?  pMod:' G9 n( G: x5 I% s4 ?

$ L, L" P* ]4 N& W9 j( ~  mov fs, bx$ _. K2 E2 Q- m
  mov gs, bx
8 P0 l+ B7 K, H& o2 V  and al, 0FEh
9 U) _4 H# d+ ~( S4 v+ T& l  mov cr0, eax
2 m5 N, B$ Q1 Q$ m   
4 y9 _7 R/ x2 M9 }  jmp rMod/ E% u/ g  i: W: W* O2 h4 L
  rMod:
7 v! P6 A/ I- Y; K: B0 ?& \" ?3 U
' w' G4 A8 Q1 k0 t  mov ax, 0
, \- W' ?2 j- m1 |' _0 }1 P  mov fs, ax+ l$ L  \  s4 Z  C2 \
  mov gs, ax
6 D" }0 U) Z" O* W; e   
0 \- }  |% F( P+ m2 F. l7 c4 I/ e4 n    1 b' j* z1 X- f5 y: ]
3 L# Y6 }) g6 J/ n6 V& y  D2 q* _
  sti
* A3 a, h& \8 j" d9 Z  ret
' Y/ @; x" K- g: X6 u: [Set4gb ENDP( t( K3 y+ |7 L2 n- X9 Z8 N( L
   
/ [1 j, I1 L2 I/ X3 ]end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-6-4 20:23 , Processed in 0.060227 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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