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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好/ ~* C0 @: \) u
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
: _% ^/ L4 g" i* s# w9 [8 t;---------------------------------------
. \. Z) j: n- B7 J4 s& T, ?) ^2 a9 V! h' x5 E, A$ w: [
.model small
- ?0 y+ D* L- t& J.586p
. Y0 R" ~+ q$ l6 W.stack  5 ?4 a* \$ @% E
   
7 O( G6 e8 `* {; P1 e( u, D- y: K.data
$ C6 C( R: u: v* `
9 k, V; i5 ~: s* a% HDESC STRUC+ ^' o- `+ }5 d8 f! R2 A9 q
  LimitL DW 0  - p: `( h$ D8 V. D7 o, f
  BaseL DW 0  
3 L+ h+ ~9 O' G' F5 B  BaseM DB 0  2 r4 z, [& `- @# d8 |
  Attributes DB 0  
+ }+ S& B7 J7 ]2 j* c) L  LimitH DB 0  3 v! U$ Y- s3 o. Q5 s5 a
  BaseH DB 0  
4 D1 B' `1 y9 p! p& QDESC ENDS& p/ z! I6 w4 x8 |

1 o/ G: m* x& n& k1 l3 hPDesc STRUC
. h/ F5 t# Z  l# ^. S) \  Limit DW 0  , x$ ?! \$ G! F/ @
  Base DD 0  
0 U* d) h7 v( z/ ], x2 cPDesc ENDS
/ m; Z0 |" J9 M7 v
% y8 P; j) p" G6 Z" ~% r( {GDT_def Label Fword+ I# d4 @; j/ f! M! A
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
2 {8 S, U& P0 gData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
" ^, h; h9 B& M0 `1 H9 n" x1 q1 v9 p. e) q" N) D; ?5 n
GDT_Addr PDesc <$-GDT_def-1, >4 u; w- ?* [- Q# L3 N
cmd DD 255(0)
- G# E3 n3 m% f( f) S5 n
! ~4 S2 e8 A3 E: f8 |+ y3 g.code) t9 _# O' t5 B( W# x. d
main proc$ y. P5 U4 O9 y8 \9 V, Y, x( Z
  call Set4gb" J8 ^8 w# v, T- I+ t& a. ]( M
5 w8 w1 g0 L8 }/ [1 q9 a7 P
  mov esi, 20000100h/ q  \, b. M( X0 j& y4 P
  mov dword ptr fs:[esi], 055aa55aah
* l  y1 v7 ^* g# _. U    3 d6 E+ z0 _6 q3 Q9 }/ _# ?: d4 X8 [
  .exit# O0 ^& c+ r- l9 |) G! m
main endp   
- d8 }- V! `# @' ?! U2 R* u" P6 A; s4 \" m: Z
Set4gb PROC NEAR
& B) ?& N$ H$ r  c  in al, 92h
9 A9 D$ }+ }6 V; ?! Q  or al, 002- Q, S& _: F" p8 I) e% X" S. v
  out 092h, al
! n& S1 }+ r5 v0 f" z6 k  out 0edh, al
0 N$ B" s1 {* r0 e& [5 ]) T  r; Y3 i5 M. }  k
  cli* u% E6 |5 V0 A- n9 ?
1 j: _8 e9 `# T
  mov eax, ds$ D: B( t* O4 w4 x. t* ]
  shl eax, 4; T* _" A) }) N
  xor ebx, ebx
- d  o5 a% Y% Z/ ]  mov bx, offset GDT_def$ z; H8 v) A( t0 J; e% y
  add eax, ebx( R$ _0 H6 z4 k" H8 k( P+ F
  mov dword ptr GDT_Addr.Base, eax8 P3 a. L. B# S: k. ]
  lgdt fword ptr GDT_Addr% \" l- G2 o5 V4 G
; p6 n0 C2 G( @0 ~* J  ]0 O
  mov bx, 8; [9 A# \3 b: g9 X* @+ s$ M
  mov eax, cr0) w" }: z- J/ {. R9 z
  or al, 1
% U" l+ M5 C( D+ |8 g, k  mov cr0, eax( ~# z1 {4 T1 Y8 j# R. S9 y

" E: I2 ?, h% K  jmp pMod  L2 Y( N4 e/ x$ \4 o
  pMod:( |* d8 R; V. V# L6 f6 X% S' m7 N

* ]/ T1 h- V1 r$ L5 J  mov fs, bx
- w! z1 |* ~% y. Z' l6 R6 S% I  mov gs, bx1 x4 q. ~" f6 l$ K% T9 k4 w, t
  and al, 0FEh
# c& H/ S0 z& E) A" ]- i6 H  mov cr0, eax
: d, o% i0 W$ m# D2 _. Z0 h    + u. I& ~6 [2 x% @
  jmp rMod+ r- a+ ~9 a4 }# X
  rMod:
- d2 W% }2 [8 h4 N
# y- F+ r) l$ X( p* O  mov ax, 0
, A, R+ k9 P: ~) x8 ]6 @  mov fs, ax
2 `7 q' ~, a# ]; _+ N  mov gs, ax
4 n5 T% c  [. I$ a6 Y6 J   
! g2 U3 e& q' \! j' @/ F$ B   
% c" ]% F4 {, A) d% E% t2 E8 q6 o- M! X9 T! ?2 ~( [
  sti, F& O* d5 f# l  U6 m$ V- d0 e
  ret
( @$ c7 E* g& H# A7 U6 pSet4gb ENDP: n0 [0 s5 G# s) |
   
0 u8 D/ X7 h6 y/ l; Zend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-5-31 21:03 , Processed in 0.047717 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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