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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
- Q8 t0 Y1 v3 J5 n5 f以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
5 x0 H+ }" r3 t; d2 h7 X( G;---------------------------------------) w8 h8 q- O2 _% v- V% z0 I
) d; J! m, f; t# A5 O
.model small
4 j$ D( q0 P" J; n2 J' M# L.586p
8 y( d# ]# S" y.stack  
9 v% q, m' [# g" V" S. _9 k) x   
0 o6 Y$ r" ?8 C3 D0 ^, h7 i2 g.data
. q4 I4 m3 Z( N; C* f' M  L5 m2 }* e9 d" |+ B) D
DESC STRUC
, N. ~+ L) y/ X  Z- ?$ A7 C' H2 s  LimitL DW 0  & N) K3 F$ H9 v1 O+ l* h7 o
  BaseL DW 0  
1 T4 Y, n& ~; w* X/ ~  BaseM DB 0  5 F) T$ C# g/ [" x* \2 \3 L
  Attributes DB 0  2 Z4 v% v. u/ Q, N' Y
  LimitH DB 0  
! z$ B: n/ p& M8 v& g  BaseH DB 0  
! V* n+ R2 j+ S- k2 A  t' {) `DESC ENDS0 J8 Y( O9 z2 t! S; \1 a
% K% }! N& d7 G, X; O: O
PDesc STRUC+ Q! x+ V$ q3 w
  Limit DW 0  
( Y  C3 `/ D& E' @. o. ]  N  Base DD 0  
2 b% l0 Z  i4 T8 }7 @PDesc ENDS
" b! v: c$ R6 b. N2 H4 y0 k
5 g% d6 U* W8 jGDT_def Label Fword
8 i& w; p( u5 Q/ @$ qNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>& `# C7 X5 M- M$ w( v+ r9 k8 X% [! u
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>5 z- r- ?3 q) I, i
/ ~. t. S" Q% o  o4 p' j
GDT_Addr PDesc <$-GDT_def-1, >
; x& M+ z( l8 }9 Pcmd DD 255(0)/ J) j* ]3 L$ h

. O4 o4 B2 j( F  X! e% _.code! V( G1 g; h. M
main proc
% k1 b- B9 O* e$ |  call Set4gb
, b& z5 j7 r$ j; n5 R) u4 M3 q! A* O0 h7 k9 F5 `' k9 l/ X$ l
  mov esi, 20000100h) P% f" e) O  ^" i+ b
  mov dword ptr fs:[esi], 055aa55aah
; B$ I2 @: p* E; }    " k( d1 y2 c9 F  m& s7 v
  .exit  z5 e9 ^; V2 N
main endp   6 E5 K- P/ ~& Z7 g

3 ~# t$ ~1 a! }! y- r1 R* f( R, hSet4gb PROC NEAR
( p/ D7 _9 c# o. A/ v  in al, 92h
  c+ G4 W! M: [2 M( x  C" m  or al, 002
" r* d8 v; ^/ q# B! u0 O* j0 s4 K  out 092h, al$ E! D$ N* ?9 c7 t6 j
  out 0edh, al
5 M3 U7 F( L+ p6 L( d
4 p- r2 m9 G1 g6 Q7 Y/ p8 y  cli
0 ?, r8 l- J) _( g) p& O* W8 C' n( I7 ^# e; }2 L# [. y5 a
  mov eax, ds( V  x* i7 ]$ l; Q# r) \. V
  shl eax, 4. S% h+ Y4 V, w  z; D2 P
  xor ebx, ebx
* ~1 r# k0 G/ t' k' [# V  mov bx, offset GDT_def5 v: B- |, c# D  G: t) y
  add eax, ebx- Q: |* \8 `( w, `6 X' t2 O3 V
  mov dword ptr GDT_Addr.Base, eax
+ q, z4 V" l4 G: S9 L* t7 n" S  lgdt fword ptr GDT_Addr0 R& }8 G* N6 r) J+ F% p1 G! f& o
3 C/ C! K/ l6 ]  D
  mov bx, 8& }5 l$ a# f' Y2 a2 }# ~" o) w) S; G
  mov eax, cr0
$ i0 a/ \. Q8 q7 \! F* m  or al, 1
# p& o% ~# ~# m/ w5 C; X  mov cr0, eax! l7 S1 n+ T" `/ E$ c) r: J! S

) U! B2 k. P) o+ R6 C, o' X  jmp pMod
, n8 z2 G( k5 M; K' S% ~. [  pMod:
) K7 k  G" f7 G' g' R% N7 D" ~$ j! p+ }+ x% f' v
  mov fs, bx
" a) M5 n" [5 D8 P  mov gs, bx1 g& q1 F3 C! _. S8 Z4 X5 R9 u) o( p9 C
  and al, 0FEh6 C' I: S( Q+ t& ~  x; O
  mov cr0, eax' i$ V( f. ~- R8 Q* f- I8 s
   
. L, r- S5 _5 R+ T  Q  jmp rMod  u) w5 v) t/ y' U- N
  rMod:; N7 S' O" t+ g+ A

. W5 Z( j1 H7 Q' j4 H  V9 }  mov ax, 03 B+ o0 g6 G1 s2 n8 O' D/ M
  mov fs, ax
: C3 X/ b# W6 i) y: Q) h  mov gs, ax
) {/ d' l7 x4 M! K9 ?% ^9 ~( o   
' o" G( b2 I, |* N" S. d   
1 ^& @9 y, Q1 U3 w
; G8 s+ Q& e8 e9 L5 g9 |8 N( I  sti
. G; b' I- M% T- H3 R& x) M  ret
( ?' }: j: k* ^" KSet4gb ENDP
5 c# _2 d" o3 f1 h    & O( w6 m7 K# h" W- p  Q6 S/ C
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-8-11 17:00 , Processed in 0.046637 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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