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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
9 V. Q4 C/ q. J, I$ A4 b8 ~2 W以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
# S" t) R3 I5 j) _+ s' p;---------------------------------------
$ Y2 v2 k1 s# H) e; D6 t0 r5 M/ |8 a; f* x% Q
.model small
- i, L' u$ A/ \! Q4 J.586p
; V. i5 |. R; K7 M! t5 z0 G- S.stack  
  U4 x: d- w. t0 c   
! m; O' R" f! U- m$ L* F  V9 H.data
! g+ V9 j3 B) y6 L' @( L1 }# [% w
$ U; R- w8 |( u5 uDESC STRUC
3 A; t2 Y$ S+ O7 G2 z7 J% b  LimitL DW 0  / G# p$ r, P1 w1 p, d+ M$ O, A
  BaseL DW 0  9 v+ x- \! i! e7 Q4 `& P# r
  BaseM DB 0  
% }. ?0 d. P+ C; `  Attributes DB 0  . X7 S/ }7 n* E2 Y
  LimitH DB 0  
3 P- Y* w5 ^/ ~) l; h; h+ y  BaseH DB 0  
+ G4 O( b5 T* sDESC ENDS
& S' L3 X$ ~' [9 Y
- i3 v7 v* Q9 uPDesc STRUC2 ~$ w* N' I( C  z- _8 z# Z
  Limit DW 0  $ Y% ^1 h  E& }, E/ h) ^5 W
  Base DD 0  - B1 y9 B' g" L0 i2 N' G
PDesc ENDS5 |6 k4 V2 }) m; Y5 E. @

8 k: {3 C" [6 S$ g8 L$ K7 LGDT_def Label Fword
& N2 R% ]8 M) w& I/ S+ YNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
- _8 t+ s! `# M8 Z# ?Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
+ J! Q8 @, v+ g* ~, i+ X. U: V7 x: V1 Z4 D
GDT_Addr PDesc <$-GDT_def-1, >. J7 D' _0 Y) h2 Y% J" I1 r8 n0 @
cmd DD 255(0)
& f7 {5 z) d0 g$ ?+ u6 w2 z  ~# a7 F. V7 H9 A
.code
+ t: l, a& E; fmain proc: t5 V% R3 G3 ~  K3 A% y; p) h
  call Set4gb
) q1 }* G+ V! \0 X7 n! h" z+ E1 d& }% g% j$ g: Q
  mov esi, 20000100h
) }& F0 U) Q; r9 h  e( ]) |; f  mov dword ptr fs:[esi], 055aa55aah
' B9 T3 J) h" C7 E0 t7 j   
" a* k, _' U8 b9 n# w  .exit; J8 G( Y0 N; z0 X5 g
main endp   + v/ z% C* \0 [

( A7 P1 ^  E' j& x8 L) U! Y+ z6 @1 ]Set4gb PROC NEAR3 k  S2 ~) s/ f1 ?- {# b
  in al, 92h$ \: v' m* p5 M; n
  or al, 002
! a+ G  {1 R  K  out 092h, al: V& ~/ R# Z: A; c$ L  J4 M
  out 0edh, al) Z3 R( u+ |% c: g/ T7 I

# ]. C1 e& F" R6 o. a  cli* I4 ^& ~& f' X% c7 b% B

/ x2 V, [5 J  |7 G4 x  mov eax, ds9 E! J% P! H( x& p$ f5 U! O6 {
  shl eax, 4# P" r4 E8 @0 f- N3 x( [) F
  xor ebx, ebx
0 I  d7 R' }! h' p+ X1 l2 Q5 i  mov bx, offset GDT_def
5 _) Y8 R5 d, Y# C  W  add eax, ebx" T# [  u8 M; q9 D% q0 H
  mov dword ptr GDT_Addr.Base, eax3 C8 M1 n5 Q6 X1 n1 A% ~6 L) V
  lgdt fword ptr GDT_Addr% Z9 k! Y7 w& G$ h; [* c# @
7 @: l9 O; t! H! ^3 K, x$ ]1 D
  mov bx, 8/ H  n" q' r9 I. s* ]
  mov eax, cr0$ s9 a* P) L' n+ }8 J
  or al, 1
. g. e; X7 ~9 s+ N- ?  mov cr0, eax/ j4 @9 M* k8 h( ]% v' J2 M. i- {
5 W8 _9 t+ ~: i9 l
  jmp pMod7 W/ p! O5 [- z) b' T' l
  pMod:
" U/ X/ Y0 y' i9 C' N
  w/ }4 X% c6 f$ H$ J  mov fs, bx
. M/ T* G; p' o$ l  mov gs, bx9 n/ r' X( y( l" ?% f7 O" w
  and al, 0FEh" K! E/ n9 R. f5 }
  mov cr0, eax$ ]) c- A5 @8 E* J1 P1 y
    ; h# S- F/ Y3 f
  jmp rMod9 p; s7 \0 a/ t
  rMod:' }6 L* B+ S: I0 \* Q8 Z

" W3 p0 d3 b, e4 \* v+ o& v2 U' f, d  mov ax, 0
, R0 A! \& D7 P+ \1 {  mov fs, ax
, Q! D' m9 w+ S% O# C* F7 ~  mov gs, ax
5 ^5 S0 F0 W# ~) N: i7 F   
0 k/ |9 \+ q/ F0 x: R/ K; |7 x    8 v' Z% C3 X" ^
1 h3 c0 K1 h& r! }
  sti
9 I. L% t. {. Y: `) `  ret3 J2 E8 ^7 D5 s, y0 t
Set4gb ENDP1 R. I, S4 {. _% c9 w
    , ~4 O8 o% w, w: Z4 C: {2 _" J
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-6-29 04:03 , Processed in 0.151568 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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