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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好; t/ Q! m6 w& O; g- V6 @
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。: u) A, ?+ x+ b: U5 U/ [0 ^  m
;---------------------------------------+ u8 M3 ?9 O& w
5 Q( s6 N9 }8 e6 n) V. H
.model small5 `; a5 N8 [  \" Y; _2 ?0 C; S8 C4 k
.586p. q& Q$ D; E3 Z: S5 m. c
.stack  1 J& r7 g5 w; B$ g
    " F7 U  ]$ S* F' _, Z
.data
6 u% B, u" U3 W1 J2 C& E5 d5 J- G0 w# k8 a" J/ ^
DESC STRUC
* ^/ v- Y$ h5 q5 q% I  LimitL DW 0  
4 J8 a, w, Q7 ^5 ~, a" e  BaseL DW 0  ( e; h, ]. _/ \0 H6 j6 ^- |
  BaseM DB 0  
0 x; ?" e$ k- E2 G# g  Attributes DB 0  
6 I/ n6 R  U& H; X  LimitH DB 0  8 x' x& D5 R4 u- v+ P3 b
  BaseH DB 0  
+ Q% ~9 l( u* Z& ZDESC ENDS2 a, F1 ^0 a% g1 j& _
  f) y( ]' R9 Y2 ~8 I
PDesc STRUC( ?! J, |: i  g: E/ c3 g/ X7 M
  Limit DW 0  5 @! X2 v9 q! w5 q4 _2 q
  Base DD 0  
  }2 K4 b7 s% I6 J* r0 I7 ~PDesc ENDS" y# [, \0 ?( d+ l8 M% s4 s; i

( [7 U( A" x/ t. VGDT_def Label Fword
% X/ ]  R# o, s0 l# U) L3 hNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>: W' [* {' W$ V6 j0 Z" R, f
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>: y% R4 i7 z& V: Q$ T6 `) k0 u

: v. w4 [: a" }9 B$ r5 mGDT_Addr PDesc <$-GDT_def-1, >( i$ G5 u" V' u: r8 Q$ c
cmd DD 255(0)9 O8 a' B* ^6 a% w. ~3 d. \
/ u; M" W; y  h1 P6 b2 z
.code7 t2 J' u* h, |+ I" }1 A0 p
main proc
& I3 m0 Q2 Y. a. S7 b; \) I  call Set4gb
  x# Q4 V4 o0 }. h5 C5 ~+ _1 @
, _5 {0 _6 Q8 k2 r) N; c! f. ^# E3 ]  mov esi, 20000100h! x3 T2 Y0 e! d2 e) ~7 x
  mov dword ptr fs:[esi], 055aa55aah
* a! ?, T6 L! W9 B( A) w   
3 v' O/ p4 _$ b; H: B3 B  .exit/ ~& M+ _/ q( L5 G
main endp   
5 Z/ A: K7 _& Z; e. Q  h4 l% V% e+ B5 B+ ]3 s% K! j
Set4gb PROC NEAR
5 p6 Y+ U/ S  h2 x' z  X1 _! }% y  in al, 92h
$ Q' b. V9 Z4 _+ o: f, y1 E6 H  or al, 002
( q+ w/ Y7 |* }7 e) r* t$ l6 d  out 092h, al# u  ]! c; v* d/ L0 M; P- o
  out 0edh, al4 @0 P  _  [- x. j% p
( ]. u) X' p5 e; J- @
  cli- h9 Q+ y9 g; v1 V: V) x
, r# p% @0 H$ I: d6 s/ r
  mov eax, ds7 J5 s- u2 Z* k) m+ t" Q
  shl eax, 4+ r* Z% V# `( U8 Z7 q) O% ^* u5 W+ n
  xor ebx, ebx# R. k/ }5 v  j  P. Z  z
  mov bx, offset GDT_def
6 `( n/ b- L. j3 y6 i/ H2 c  add eax, ebx! J* p" q% B3 U9 g0 H; f6 b
  mov dword ptr GDT_Addr.Base, eax
. P* z: L/ f& ^( v! l# Z* `& \% c. ~  lgdt fword ptr GDT_Addr
! L, h! M" f( A, H' w9 v) R, W9 z3 s1 |
  mov bx, 8
+ H6 u. V  G: G8 H  mov eax, cr0
: R& n6 U8 |+ I7 R% W' i5 ?  or al, 12 l5 K# w2 L2 v  V; @
  mov cr0, eax" Y$ A8 f" r8 Q, N) h. a

* P# O  s* @5 W: f# ^  jmp pMod& `0 R( H) d. Q9 I* x6 z( P
  pMod:6 l* M: U9 q1 o* U3 h! U6 w

, H! H4 U0 a! a2 ~  mov fs, bx) p, A  l8 D0 [( v* \& o! [  K7 C
  mov gs, bx
' f& b- \  C; v' V* ]; J5 S  and al, 0FEh3 ]: \- x) a  I" p4 W  n
  mov cr0, eax
! X3 }% E  B2 P# o    ) {9 E8 a+ r( }; g
  jmp rMod
0 M, q9 a9 q; u5 j1 I  rMod:( y: e% w( U2 X7 }% Y5 J7 D
% y% e# j9 ^9 x0 L. I: q5 S
  mov ax, 0
+ Q$ I6 f: d- |' K5 k4 f  mov fs, ax
/ O9 @2 W6 R( [1 z( O  mov gs, ax4 ^( \" R0 W" q
   
* s5 f6 V) P3 Z5 V3 k+ z9 U: u    1 W, v! ]' c& s6 Q( V

6 p; q% X" C' h6 T1 d8 {  sti
, z1 M9 b. P" ?9 t% M! O! A  ret
- q' q6 ?: V0 S+ ~2 |. w9 SSet4gb ENDP( C: Q, M9 C; U1 \9 K  r2 d
    $ v( V) {& P$ p# n/ ]
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-11-1 20:28 , Processed in 0.114938 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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