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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好. |$ ]8 Z. D& b1 K
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
) ^6 W& D$ u" _4 l& V;---------------------------------------
/ {) B) p& X4 q3 ~/ }- w  X
' `  ~& ^0 W  r.model small
" I" W9 E: b( Q& z- m! s$ n.586p
4 M' V! O# `% L* S.stack  - z) h9 @; A& M- S
   
% y8 f8 i6 r9 H. v.data+ J. e- \7 |# V  _% I) k
2 F7 d$ [9 V: s
DESC STRUC7 s/ I/ @8 I; N# o! Q$ P6 S4 F. H
  LimitL DW 0  3 T  n% b9 s( I3 A& n% S; e, A
  BaseL DW 0  
% R/ ^  G! T7 p0 V) u6 P  BaseM DB 0  
- w& C* v' U* C# n' W1 l  Attributes DB 0  
' O7 b4 x; m* J0 g$ Z  LimitH DB 0  
7 T) @' o' B' j! t! U  BaseH DB 0  3 P" V4 t7 \- S& x# p
DESC ENDS8 \) _, S% `3 M% [

6 @, o8 O1 i1 X& J) U; ^; nPDesc STRUC
- u0 l  S% O* e% F  D  o# i  Limit DW 0  1 A' V3 Y) ]6 P: n: j" _! F( H
  Base DD 0  $ ^& b$ R" J* R' o% H' n
PDesc ENDS
4 l2 u4 T, m& ~+ |' U9 R' J) p" n
7 Q$ o: P7 a; PGDT_def Label Fword
3 M$ G3 I; T; w9 w6 eNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>% N* Y5 Q0 K% v/ [; |; r
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
; T9 i2 \0 Q! g% ^9 P) c
$ X1 B/ H% k" ?: h( X) kGDT_Addr PDesc <$-GDT_def-1, >
) s4 A. C2 _, W4 y8 C* Q/ n, Ccmd DD 255(0): o% Q4 i+ ?' m" {% z# O

2 j$ C+ p- j* V6 h! ~! m.code
5 l* R; F& J4 @, wmain proc3 S* m* P1 F/ z/ P/ N8 Z
  call Set4gb
) K  E& r$ U# O7 e4 H& X  `. m7 l7 i! `3 v" x, j9 A5 S
  mov esi, 20000100h( M  _6 ^1 F# n& k
  mov dword ptr fs:[esi], 055aa55aah
6 J1 U; `% k7 T   
' Y5 \) H0 t. p' M$ l/ A  .exit2 R: _- {5 h' j: H
main endp   0 e) @5 ]! f# K6 j
: C: o+ T6 l6 [, d
Set4gb PROC NEAR
: Z/ O5 O/ v: [% ]5 c& F  in al, 92h
4 ^5 j* W: p- E/ X5 T  or al, 002  I7 {  l9 U/ {, m5 d7 X/ r
  out 092h, al' y; f0 J! q$ D1 B6 x1 b
  out 0edh, al
. f2 ]7 {" m% w3 M  F% n  Q
; Q5 i+ R; w6 }, Z9 U& Q  S2 {  cli
( ?( L, ^5 z8 h: H1 O2 C
. }' E4 Y  i8 Z' k# v, [  mov eax, ds
6 n, j* e* Z* V* A  [& c. b  shl eax, 49 }. o, g# a. v4 T7 y/ _  g
  xor ebx, ebx
& r, y; c& Q, f2 ~% r. l! c) p( T9 n2 y  mov bx, offset GDT_def
) ?* M& Y" S. D/ H  add eax, ebx
; Q; P0 L" I1 C' D# K! [4 F: i  mov dword ptr GDT_Addr.Base, eax
9 A& G/ C  X6 u) |7 r( [- v  lgdt fword ptr GDT_Addr, F3 D3 u! y2 k7 a! T/ H. w9 O
: R7 h& |( R& V6 H# b
  mov bx, 8, s5 J* c/ {+ Z8 H8 ]
  mov eax, cr0
/ g+ w5 ?, M9 b0 w3 k4 @3 B5 d$ G  or al, 1
! A: b" }: g+ N9 ]  mov cr0, eax$ I) B3 o2 Y& ?2 d* I

% `/ ?9 H8 ~6 j  jmp pMod
& k9 P2 e- f4 K+ d- Y6 ^2 I! q& g  pMod:
5 Z* \* p' P4 M
8 ~6 W: L- G$ G) g  mov fs, bx
& O7 X8 k1 C8 P( J4 G+ F1 H  mov gs, bx
  V7 G* U: b2 R3 m  and al, 0FEh
. q4 n2 d: c' N5 K  mov cr0, eax
3 S& `+ ?  ^; w3 w4 t   
/ y2 j2 z3 x0 _3 T# K  T+ s: U/ t  jmp rMod
! D& o0 W+ b* K0 i! X  rMod:
3 @/ ^; B7 t: E& v  b' D4 W6 q+ f, B+ ?- t
  mov ax, 0* R8 K4 H! s) g9 s
  mov fs, ax! N9 j+ Y9 k: X  V4 K
  mov gs, ax
3 O0 P# H4 o! s$ t" p7 K    4 m, s6 ?. V5 h8 _: Y6 `$ m, i
    . W# m/ k) Q5 t: [: V+ ~

/ u' [. O1 a, V' q" b/ a* \  sti$ _8 J! J8 E$ V# h
  ret
. c" Y' _! D# j& R) `6 S1 jSet4gb ENDP
7 d, O& ?, X0 V! n5 p4 a   
- k$ T0 c  [$ i8 ~% c: cend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2025-5-22 10:47 , Processed in 0.032908 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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