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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
  O' _2 W0 m3 P9 Q; Y+ ~4 h  P以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。( G4 p! }  r# @/ i) D! y
;---------------------------------------
5 R! w% ?" ~1 j3 t2 `, u8 a# N3 t3 B! d  T  w' h
.model small
. y0 N) J  n: w& m! j: @& w8 o8 n  T.586p5 h1 k* P$ X: W+ T+ D
.stack  * s* t+ @* S+ L2 h
   
- [3 e7 X! F2 h8 ^/ P: Y% s.data- w0 V0 }% h7 t( }# x: z+ Y

1 W3 ?0 f; p2 xDESC STRUC; j$ P+ f& P  c9 b$ |3 \
  LimitL DW 0  4 S; ]9 K8 D3 r' R' B. M7 F
  BaseL DW 0  + K9 h% b+ \: m8 b1 \4 L
  BaseM DB 0  ) G, P" T& {) P+ v/ x7 }
  Attributes DB 0  ! O! u1 G, D/ h( v! X0 R  ~
  LimitH DB 0  . b9 L, v* c! I4 J5 v  w
  BaseH DB 0  
/ b3 [8 Z; J* ?6 x$ e" A8 o! A  X) hDESC ENDS
, W" m2 t' L5 A; x- B/ @/ l7 n$ m  K) f
PDesc STRUC1 C. f) c8 E5 x+ i! A; U
  Limit DW 0  
, Y  r! w# o! n2 j9 U  Base DD 0  ; ~! n5 X# s8 M$ a; R9 q$ H
PDesc ENDS& X' t: u. V, Y6 g
# d/ @5 ?! }) l4 w& M" T' N
GDT_def Label Fword4 D: r% G) E9 S3 z! b
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0># D& v/ `0 k5 H' [& U) q$ S
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
/ A+ J6 L! |) Y4 ?% ~8 T2 a
& ]$ v' c' ?) A& p" SGDT_Addr PDesc <$-GDT_def-1, >
/ f: E/ o* e2 f: R# V1 pcmd DD 255(0)  D: |+ R/ {1 W# c$ F
6 U# i! H5 _+ o/ x# t* n' V
.code
8 H; K7 L( ^! kmain proc5 _$ U7 C9 w2 p5 w/ ~* Z
  call Set4gb" X  ?) d8 n  p

. x- P& Q: b# ]& f2 l4 l% K/ `; G  mov esi, 20000100h3 Y& @6 V! l( D6 N$ H2 Y
  mov dword ptr fs:[esi], 055aa55aah
; f# |$ W( s& K   
  `% Q! F8 {( o% W" M5 I$ r0 n6 M3 L; s  .exit
3 [6 o  f0 }: {: D& R  Umain endp   % m2 J" U' M+ L

* Y* T% Q, A! k9 H1 l# B0 f7 fSet4gb PROC NEAR! M) d2 Z4 L* r
  in al, 92h
4 d9 y+ n1 Q1 h  K8 t  or al, 0024 {+ d1 C, Z7 g
  out 092h, al
* u: s1 {. ~3 ~7 Q  out 0edh, al- ]" f# U  W# ^  ^$ |9 ~

' z/ Z% R0 q8 z/ O* |/ |  cli
: P4 W# ]3 R" H' o: j( e2 N
, {5 G9 \7 ], r$ c, p& a  mov eax, ds- u4 H* o- W& H' J8 d) [2 r
  shl eax, 45 k3 l! K+ v/ b7 |$ F$ U
  xor ebx, ebx
0 a3 L1 U9 A" `# K7 k7 I$ A  mov bx, offset GDT_def$ j; P1 B" b  O  w
  add eax, ebx
" r9 c" S2 w9 P2 c7 \  mov dword ptr GDT_Addr.Base, eax
4 R! K; w* a6 ~9 `  lgdt fword ptr GDT_Addr
) C+ _, @0 _1 f/ @
0 @; X# \% u- d* x3 s! b; S5 g  mov bx, 8& t. E- [& y9 b. w8 H1 W5 C: s
  mov eax, cr0
9 m  f* W" i8 ]5 m' f3 R2 y  or al, 16 R9 ~2 y2 h( _  I& |; B
  mov cr0, eax
% x0 @, ?7 Z% a' z
  J( Z! s" c" ~6 E3 g- k4 `  jmp pMod
6 s) y) A5 z9 B+ ?/ G8 \  pMod:
$ [" q; {1 j' M, Z5 r; ]$ }+ z* x& {, t3 R# J: F
  mov fs, bx
# e3 s+ i5 U9 l3 F7 N  mov gs, bx
  Y# x1 T5 l  ~8 _/ D8 r  and al, 0FEh4 D5 z6 E4 C  `4 ]( L
  mov cr0, eax
/ d7 }% F" `5 N* x   
, I  g9 u6 A& {) \  jmp rMod, @1 h4 M# i5 Q4 S; I# I2 h
  rMod:+ _. P! t6 i7 o2 ~& c- I/ m  z
0 g7 `6 f$ F" p; B1 p
  mov ax, 0
. E0 {+ a3 r* N, ^3 `8 d! r7 D1 w  mov fs, ax
7 n' O. d  g+ G6 p5 y  mov gs, ax
3 k" I" b( b/ l6 P9 D* D. R   
5 ]$ L. P4 k) H- a   
3 A: c: I; _  t! f1 K0 E* u+ N8 b' `) `$ a% H9 P8 l1 {. V
  sti
8 @2 k8 `# X0 k7 Q. Y1 p/ X% i  ret
1 @; y8 A7 M9 h$ p5 i0 xSet4gb ENDP
0 L! D; C; V0 J1 t0 e0 f5 M   
/ [) ]! W3 h( t+ b8 E& M6 _end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-7-19 20:12 , Processed in 0.065893 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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