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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
' D' |% g; I/ c: \. d以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。; N4 W( Y6 a% @
;---------------------------------------
/ }5 H# v; C6 ^+ F2 P# j6 _( V0 u6 s5 Z2 S
.model small! x3 Z4 J9 w  u; U  U& S' @
.586p
5 v: G0 \& q+ K.stack  
7 Y% b+ d$ ?3 W( e2 a7 T. T' S: f   
: `1 K; }  A1 z+ s# |.data
" h# z" ?* t& H' j$ k. A
- {! F* Q" M, F1 FDESC STRUC- @: Y: l" z- a# u% I
  LimitL DW 0  ! Q4 e% u5 y+ t$ c" b
  BaseL DW 0  - \% p5 q5 P; t/ D' j6 w
  BaseM DB 0  
3 f5 c' l  F% ^3 e. F1 m* m3 d  Attributes DB 0  
( `& s+ w+ }. g& k  LimitH DB 0  . K% Q5 W4 c5 H
  BaseH DB 0  * S, t( _" B# x) t* i6 W+ d1 x
DESC ENDS9 P+ A2 H; p* H8 u* D$ a  G

$ a$ k  V, Z, p/ J6 O& TPDesc STRUC, b7 i% w  [$ y' x$ K9 H# O
  Limit DW 0  
+ k+ c5 n3 \, B* J$ c4 I% G0 k+ z  Base DD 0  
1 U& q0 p: b3 v: l( u& H; f$ DPDesc ENDS) L2 @$ n+ i; {) J
6 {3 D; ~4 \& Z, J* }: M. B: U+ V
GDT_def Label Fword5 ?4 N4 l+ J, K6 h' D
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>. L9 W2 I3 z1 I" R7 K0 b, Z' ^
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>; F3 }) U) s% W. D$ L
9 e2 ~$ e2 {7 J% E' A1 w3 {& w
GDT_Addr PDesc <$-GDT_def-1, >9 U. v4 O! u+ C% H  X( m
cmd DD 255(0)
# i# y+ K& @( S' h5 Q$ G& B9 q: z* _0 A! T( x# k8 u) g* ~
.code$ X% t7 H4 p% B7 J3 p& O: b
main proc
3 k. n6 f$ W1 ?/ Y8 o+ C  call Set4gb
1 w4 [3 e& o! X5 r  d
! g& Y4 T3 @  L3 _. j7 `3 Q  mov esi, 20000100h! d8 K5 w: @0 [: y" Z: X
  mov dword ptr fs:[esi], 055aa55aah
2 |5 N' h& a& R* Z: \- Z* A! U# z      I: W1 E$ |# q
  .exit1 O- ]. o0 i. i" ?8 {+ J
main endp     U' o( N: U! M" `# D3 e

( Q0 b& A; G6 ^' R+ eSet4gb PROC NEAR. {( c7 Q9 L$ f1 a! Y+ s9 N0 y
  in al, 92h0 ?4 Z1 V) H6 \  l2 U7 V- a! u
  or al, 002
( D. ~7 b9 G( ~) W  O9 C  out 092h, al
/ f( h) a2 j) @+ `, f  out 0edh, al
- {8 |& q& D9 W  W' P2 R$ Y3 [  h5 P1 _( d7 u; a' C& j9 c
  cli
, B3 {1 P! e1 }# \
$ b% L- S) q$ Z; u/ a; u0 e  mov eax, ds
" v, Y4 _3 a+ L/ {; O0 p  shl eax, 4
! ^% f0 h: {2 T. G" ]  xor ebx, ebx5 P* x4 @" i6 H  k. ?" S0 {
  mov bx, offset GDT_def1 b* n3 p6 j& A
  add eax, ebx+ n  G" O5 N2 L" L  d, [8 n: r, j
  mov dword ptr GDT_Addr.Base, eax+ A) P) _! k' D5 Q3 n+ L
  lgdt fword ptr GDT_Addr
" h/ V+ S1 p, B8 t  r$ e; n0 Z+ W5 i& e" t8 ^" L
  mov bx, 8
- S# K4 t" ~8 C. Q  mov eax, cr0
1 P  E2 A& v1 H! K4 ?  or al, 1) u. V/ t% Y  u, o0 X
  mov cr0, eax% p2 b5 _) Z3 t1 u
2 r) L; {6 o* t
  jmp pMod
' ?8 ]& a8 b% D  pMod:$ v; S8 l. B4 L! _) Z

2 M) R5 X& u5 l' a7 B, q' N  d  mov fs, bx6 v! f1 H! j( d) T1 i
  mov gs, bx4 L! m8 W2 R8 A) T+ g$ a. A9 z& }) Q
  and al, 0FEh
2 Q9 C8 E0 X1 S& P  mov cr0, eax
" g/ V% r! S" k; x" S# G  \7 Z    . I! ]% t4 ^' u; T* ]
  jmp rMod
8 h% f# \8 ~1 b5 J  rMod:, |: Y$ B$ v/ T0 C7 L. _( e

* A) O; k: E: V4 t' L4 A2 K  mov ax, 0. ?4 {4 k0 \' V2 m
  mov fs, ax7 n1 s9 g' v2 l" f* A3 n& A" N, W
  mov gs, ax
+ U5 k- P  b9 p: S4 N   
" f0 O- W! C' l: N   
9 o* o) o  Y' p1 m+ A) [6 E& b! j7 ~$ K' W0 v% }8 o
  sti
1 e9 ?; V$ D4 ]" C  ret8 Y) C- h8 j" A
Set4gb ENDP1 D2 U1 f# K4 h
    " T' `3 q9 g. ~8 _4 J- ]$ ]/ t" T& W
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2024-5-20 17:57 , Processed in 0.016892 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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