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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
, m& R* F+ z2 Z' y以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。% _7 f- G  q: Z! R; }' K
;---------------------------------------
: \% W& D3 f5 |# k& M( X2 Y% K% H
8 W3 n" U) q2 m6 @& q.model small0 k. y/ a% I8 v- E; j0 W
.586p
' p) ]: ^% y! n  q0 [) M.stack  ; ~( t5 u  o$ @4 p3 N  o
   
2 ?- f- q: J! t3 K( @- c.data- T" N1 D- k  i) k" Z

1 C. S" w0 c0 n* F& X* Y' P3 bDESC STRUC
+ d0 Y& b) ]% K- }$ q4 \, q  LimitL DW 0  
1 Q: I  h, T: u1 j, J  BaseL DW 0  ' z+ O- P& L) J) F
  BaseM DB 0  
6 G- m1 v0 o+ X. \  Attributes DB 0  $ G! t% I" q2 U- I% ~$ C
  LimitH DB 0  7 s9 p7 Z* \& F+ O- L
  BaseH DB 0  
  t+ [! ]  z9 T1 R9 B9 R$ `DESC ENDS
5 T  X+ V" U# K! p
1 d6 i4 R8 U5 |3 I* c  KPDesc STRUC
3 e. S/ S$ F* i, E! D  Limit DW 0  
+ Q" l  Q  @2 y+ g  Base DD 0  
+ A* }9 R3 J. V  S: YPDesc ENDS5 S. Q: p, z- N% F8 {8 F
7 p3 |, P! @* f+ _
GDT_def Label Fword
) G& F. f" p  T4 \' rNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>$ t9 l+ Y7 D) T5 M5 z5 c5 A4 R- B
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
: b6 @5 A; p& e0 C& P/ l7 @5 Q" Q7 J8 u" o9 p* m
GDT_Addr PDesc <$-GDT_def-1, >
9 a2 _. _- _* k8 Y& i% v. dcmd DD 255(0)
. R/ y' T$ Q! [# R  c/ O7 S9 R4 y6 \7 `* C" `7 r& K6 l/ p
.code5 @# e8 m+ {* ], |$ w5 U
main proc0 c9 I7 \* {8 L, d  k* k
  call Set4gb, c9 d9 u7 P. e; m

1 Z+ p8 h( H3 |! B3 p5 S  X  mov esi, 20000100h
$ C" W% \7 N; T" `  mov dword ptr fs:[esi], 055aa55aah% g: ]' C& J) T$ W- ~0 O- S: B
   
3 F8 f( N. Y! N5 C# L8 H9 }" h  .exit
4 y% i- o2 K( b4 f1 ^main endp   
2 F1 Q& O& r9 f- t6 d# {
; C, g  P) j) P0 `. i6 pSet4gb PROC NEAR
0 b* ~: X) }& C  in al, 92h& \2 r" x0 n/ }( q
  or al, 002
6 A) D) _$ ^- M1 ~  out 092h, al
9 K; m$ M* E: ^7 p- C# T  out 0edh, al% C: g* ~+ U+ D- l" V. K) B
5 _$ \' a+ |" H' H7 P
  cli5 ^7 ]* J) V: O& A
7 R& E5 t0 z, u1 V6 p- X
  mov eax, ds
* a: n- W, [$ ?; d  shl eax, 4
1 F) y: u' E7 z  z- Q  xor ebx, ebx# A$ `3 ~: k# R4 a1 W# U
  mov bx, offset GDT_def
" m7 w9 E" k- U0 ]. |& E  add eax, ebx- h3 k, l- s: C% U
  mov dword ptr GDT_Addr.Base, eax
6 r/ L# c' L1 x% x8 A6 ?  lgdt fword ptr GDT_Addr2 L/ M3 ?9 ^; s2 |$ q# W9 V& m7 `

! H; F$ |3 n" B; ~5 ~- L8 I  mov bx, 8
6 ~, ]5 m0 y, w' {6 h# L  mov eax, cr0/ y/ q4 S5 x2 {5 B" q  d
  or al, 1
1 r4 z6 P; p! Y# m& \  mov cr0, eax1 r  u+ k' Z% X0 F$ d3 h+ i; r
) E; h9 [/ S$ R  z9 ^+ }. a& }" c
  jmp pMod
6 Z( R( b) ~7 A* @. ]1 ]# Q8 m- B  pMod:
+ {2 O! J& C* V9 C* X3 n; E6 G2 {
' E1 f& Z8 D# D6 S# z6 |: b  mov fs, bx
% J0 k$ r! f" C) ^! d: S  mov gs, bx
9 ?% C( m* f* o; l; q& L% Y  and al, 0FEh
. B/ \# K# g, M, M' u3 G4 m0 p  mov cr0, eax
2 y& X) F- @/ i# I# a- V' p% N   
7 q$ c  [; s& `4 n/ K- Y2 o! G- e  jmp rMod
- a( e. H& U) ?: R& @! C  rMod:
' E' S3 N: k/ r$ Y9 i4 W% B! C; I; t( `, D
  mov ax, 0
" n/ C9 r/ {0 k  mov fs, ax
! y: S+ y2 Q) v# X  mov gs, ax
* i; _  p5 ?3 j! M   
# q' k7 q5 y" n8 f    , {2 u6 u0 G! e0 [6 |# _- P) _
5 f4 Y# X6 P2 L  x
  sti  b/ e5 C$ l. g# O( W+ d
  ret
+ }6 f4 I- A0 t: t8 I+ D7 D& ISet4gb ENDP
" K1 A1 X& i+ q, P   
! L4 g/ |  V5 J: }9 l% Hend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-4-20 03:37 , Processed in 0.039715 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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