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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
3 n* {' P" L; \- h2 v, W& X以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
7 m' p  T  u. G* ^4 s;---------------------------------------7 K) w% C, m4 F+ ]! x
; ]4 {/ y" C0 T. E
.model small: G0 V& w( e& x, P$ Z$ P2 t6 [1 O
.586p
8 O' b% t4 K; w4 T3 N.stack  7 i6 M! ]+ v' S; i
    $ R( Z) z$ }0 N1 b/ `& W& W
.data. t) Q( S% |5 k4 z! S3 Z

3 X# ^0 N/ k/ w, P6 ?DESC STRUC
5 D; _* n' N# N  |# [  LimitL DW 0  + B, n. c5 J+ }
  BaseL DW 0  % m* s" I( w" {0 p
  BaseM DB 0  
, O0 n. p6 ~6 @4 h" D) c5 V  Attributes DB 0  
& ]" m9 K$ \# v" Y* G  LimitH DB 0  , o, s6 ?; k" `! K
  BaseH DB 0  
' z6 b/ Y2 ^; N7 n  n% C! fDESC ENDS
: }% F9 d0 `% T! g  x" J2 v% k& ?8 K, I9 O
PDesc STRUC
8 A, W6 b7 I; |' u! ^  Limit DW 0  % O8 v; {3 w1 O$ \; o
  Base DD 0  
& t. ~& v0 L/ ~9 I+ pPDesc ENDS
: K1 u' U& R- H6 r+ W1 E& x- k! B# `; S) r* _
GDT_def Label Fword
3 q7 ~: P; v  WNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
9 f- M$ Q0 i; X! z! h9 MData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>4 [% m1 q0 @# n; L! g
% ^, u. h; ?: P0 Y9 g) p- n  Q, x
GDT_Addr PDesc <$-GDT_def-1, >
. J& M, v2 ~  }cmd DD 255(0)& f7 N- T" ^. x9 Z2 O# T7 X' G4 h
9 ^, M! I( w5 e
.code  D3 X* C9 Z+ U% ^, i
main proc- ]4 `# Q4 P$ B! l
  call Set4gb- a. ?1 g4 t! j$ F% f2 ?" B
$ F# T+ z7 H. p) ]& N
  mov esi, 20000100h
, @& A) G% N3 }8 F& W; G0 F  mov dword ptr fs:[esi], 055aa55aah
% \$ k% y9 b; y) G! l4 k% i9 @: O   
4 v& n# J+ w7 ]+ k, S  .exit" h8 p& @$ y4 ~; |
main endp   
% g6 i6 V: }/ w1 t, ]
( A  y7 D1 Y+ U3 G% G# ~5 CSet4gb PROC NEAR
$ t; H9 u) u4 e  in al, 92h9 ]8 W. Y. _" L9 Y) u. |+ {! f
  or al, 0028 @' E6 {" w/ c* B- c
  out 092h, al0 @" i2 y3 a: W1 [' ^% @
  out 0edh, al/ G) U; Q1 G7 |- {7 p5 C

1 R6 ~7 x) m9 t" b9 ~9 l0 c  cli! v) Z8 Z1 O  y0 ?

( S/ ~; g1 M3 J* d4 E  mov eax, ds
0 Y5 e4 s' k. \( R/ v  shl eax, 4) {) W" [$ E! T1 z( `" l; h  E
  xor ebx, ebx
! |& d! p: P4 A: h4 k. c  mov bx, offset GDT_def
1 ]; P( B" w8 y7 f  add eax, ebx
# V: v9 C1 x$ R+ Q  mov dword ptr GDT_Addr.Base, eax
0 ?' S6 A4 a5 U! O) j  r6 S1 `  lgdt fword ptr GDT_Addr
$ E% i$ T: w# t8 p# T
5 w  m% r% b. }5 Q& W  mov bx, 8
0 s1 T2 K9 C- [" a+ o  mov eax, cr0; F3 o. q4 ~: G  c! f  X
  or al, 1
9 u1 f* b7 [7 ?8 b9 Q; S3 i% U  mov cr0, eax' \( @6 g) p% c& C& b6 J/ k. I

9 ~3 c4 i/ b: C# f! l& _+ k  jmp pMod! X1 L( Z+ B/ Y0 Q! Q  P
  pMod:
) N% x/ _5 N3 q; P0 s' k# y7 Q) }* x1 |
  mov fs, bx# n' R- z8 A9 S/ C
  mov gs, bx
7 t  u" [$ K! w4 L, D2 q; K  and al, 0FEh2 v; [: [3 v* p0 m$ W( l
  mov cr0, eax' F7 R7 b" M* o% o0 `2 B
   
/ S. c* Q) R/ T6 e% |% |  jmp rMod
: G  y/ L8 B2 R8 W  M  rMod:& j( C. a# T# r( A4 G  \

1 q9 c9 V  J( ~+ T' n  mov ax, 00 C4 q  t0 L, E, b% C" `
  mov fs, ax
5 x8 b" J1 l  u8 r  c1 |  mov gs, ax% ~$ Q! d8 b: a- H. O" q
   
( C0 c; `* i, l0 G   
2 q2 @) p- l. \4 f5 W' O8 n2 e7 r- a! A
  sti# d3 y0 c0 p0 u1 e
  ret
; u7 ]/ l' T* w1 s5 [1 `8 r! a1 pSet4gb ENDP
9 t6 n: D: q  e+ U' |    & O! T) X5 ^, |+ I- D5 N$ _1 ^
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-4-4 14:46 , Processed in 0.126251 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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