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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
5 s+ O, u* [- l. J+ L  I$ z1 ?以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
) ?$ x7 ]6 X- n! g* \. A! Y;---------------------------------------
. B( S$ Z4 x3 X0 i0 F5 q  |  h* Z6 S1 \: k" w
.model small2 X0 ]1 ^5 M3 g% Z+ I5 M$ P
.586p
( F! L, P& H6 ]8 f  Q.stack  8 C1 t' h, N+ C; E
   
  w( q4 ?0 Y( \, A2 I.data1 p; A6 b/ L6 ~- b  a8 U9 W$ o5 a

# w9 t* c1 l- P, c# F6 x4 GDESC STRUC  O+ }% a9 }) l; V
  LimitL DW 0  
, ?8 ]+ E: M; E- V: P; P  BaseL DW 0  , {; _. U3 F; [
  BaseM DB 0  5 o' w! B2 g( ^
  Attributes DB 0  0 o& c0 N  p% l3 i% S9 {
  LimitH DB 0  
+ A2 m# M3 d. L  BaseH DB 0  
4 F$ C' O9 v- ~* |DESC ENDS
2 c* z) V" l& W6 W2 c) g) j
2 j) {; |' H8 [3 zPDesc STRUC6 c' G+ d4 u# s) d& d
  Limit DW 0  
. Q* ?4 `; m. J6 v  Base DD 0  . B3 H9 A0 C1 m- B/ l1 ^
PDesc ENDS
" Y5 T$ C" k& {
3 j# {0 D2 o& s& V) IGDT_def Label Fword
' V8 T8 O) F! xNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>, b" ?% c1 g: J; K4 o* o6 r& W; |
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
$ v& b$ F- u' h
  v  J. _( A3 yGDT_Addr PDesc <$-GDT_def-1, >
% r  {( B" s, H1 F$ |) mcmd DD 255(0)3 p& B* m3 k6 x
& d+ W5 }) i; p5 ^) K
.code
. ~4 g( J" h4 X. U  i' Y0 t5 }main proc9 t" m- g) d# n( u$ q
  call Set4gb. q5 f# u$ D. q) J8 q) `5 ^

. P  t! @1 v6 `8 ~# p( w/ a0 u  mov esi, 20000100h
2 n* P% w- J8 b. Q3 A, K2 Q  mov dword ptr fs:[esi], 055aa55aah  F6 n1 [* x3 @4 e# E
    ! o  j9 R0 k/ k& t  b, c5 z5 y1 d
  .exit$ B3 ~- [+ \+ {# W, C' t8 J
main endp   
9 u; o( e3 S; s$ q8 J' @& W8 j' {1 r! r3 L9 p+ n, T! k$ _
Set4gb PROC NEAR
' X  r* @9 S2 P- c0 q+ s, \  O  in al, 92h
* V) ?) [3 [5 _+ R' c, n7 d0 r  or al, 002
6 C, |, q6 h' d5 t* r  out 092h, al
) e0 }# A; @9 S  out 0edh, al
$ f0 c$ W! ^9 w0 v5 g& z0 V
' C6 s5 }5 O# `) C" U: A+ Q0 s  cli5 a: \2 M, n# G! q$ F& N7 u& y
/ {+ D! E+ H6 p5 J- ~9 i/ Q. M
  mov eax, ds& b* P3 l7 A; M% P1 Y1 c' j' `
  shl eax, 4
1 o5 |' [, i' D/ W6 T! a  xor ebx, ebx  Q3 P1 n' l1 X) \
  mov bx, offset GDT_def; i/ m" U* t8 K: e$ J
  add eax, ebx0 w4 ?, Q- j. i; D( T+ x  {8 n
  mov dword ptr GDT_Addr.Base, eax3 R+ l5 m1 ^: ^* w  X
  lgdt fword ptr GDT_Addr
$ j# N2 W. g8 c: C
7 A3 A. V2 Y4 ~& g. P6 ]6 o! c  mov bx, 8! R6 \3 }8 u0 [5 ~6 t6 m( M0 R
  mov eax, cr0
3 j. `, F9 k1 z0 Z7 n3 l  or al, 11 _' k" E/ V" \# U/ r0 _7 q8 M! m) A
  mov cr0, eax
( _. i# `- @% s; r3 G. s# P" C7 z0 ^2 ]1 J3 ^& T
  jmp pMod
! x5 |1 Z# I% u( _* x; h  pMod:; j. A. @, y# _9 V. Z. f' D

- \0 O9 U3 W, E6 d& R  mov fs, bx1 ]0 Z0 ]( E3 R0 W5 f
  mov gs, bx9 y, f& `5 ~( X8 a+ r
  and al, 0FEh
7 V. D1 `  ~- g( s- G  mov cr0, eax, _! d+ [' j+ A6 U% W' t) `
   
/ ~; Q0 P7 Y- r$ z3 j  jmp rMod
" L. ^. i& H: O) G) l  rMod:
0 Y- x7 f: j. S) g. P3 r4 t$ {0 h: |" o) P3 t
  mov ax, 0; Q! z' |$ Z6 E; s
  mov fs, ax; Y/ n7 M3 s3 l
  mov gs, ax" ~# o6 L9 L+ l. i
   
0 T, i5 f4 _. l  {: l7 L3 A4 s   
2 w  G( a8 h9 M, i7 e2 W
  ^+ ~5 G! W5 O  sti
# S* @  X8 _& [- q! m. ?  ret
" p! e% o9 b; O$ Z! SSet4gb ENDP9 U) q7 k, }, {2 Y5 U! s7 N
   
2 Q5 s3 G& L0 h) H2 l/ k# j* _end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-4-4 16:04 , Processed in 0.280942 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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