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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好2 v' I! ^4 s* L' z' b
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。% O! g% v) W+ F2 l' ?# q" D
;---------------------------------------' E; m: [9 ~' e; T( F4 V8 j
6 U/ d' F) H6 B, {0 D
.model small
+ \* q5 w- l/ M3 [0 F9 d  _.586p  Q9 E7 p8 p3 T
.stack  
# h' G9 }$ T8 L9 o0 y; G    ) x. G6 ~3 z: a: D
.data
  G0 f: A2 q( R5 f. t- L, Y& K; k5 L2 f
DESC STRUC$ h7 v6 V; V4 D6 I7 j; w' g
  LimitL DW 0  / n% {0 J0 N5 g/ \- G: l7 b
  BaseL DW 0  
4 X2 s$ Z! d8 ~$ e5 \' a  BaseM DB 0  4 q6 I4 `. Y+ S. f0 |) G+ ~8 p
  Attributes DB 0  ) Z. d7 Z/ E  n# o% p. c. E
  LimitH DB 0  " B9 V( {5 H9 j1 t, D# Z
  BaseH DB 0  
& H9 ]' S  S8 h. ?! h. QDESC ENDS
* i3 X* w! r  s: g1 X' q; H
" q# f# K+ s7 C) a7 CPDesc STRUC/ q, I) n* G1 Y8 M6 L2 g* }5 _& q
  Limit DW 0  
0 G* G" A# A1 F3 {, k0 C4 q  Base DD 0  , m' l: p' l( {: P- ]
PDesc ENDS; y  W6 K5 d$ Y# b$ t$ f. j4 N
, X" R# P7 C  H0 ^: z
GDT_def Label Fword+ }8 E5 i% e) j6 l) ]2 o( T. V6 U
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
+ [  V! E9 X( A5 \Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>$ T- S7 x( M. H5 v! ^6 I& P/ E, S
& |/ A* y7 x2 @$ f9 Y
GDT_Addr PDesc <$-GDT_def-1, >  Q# _) l- a# A2 B, T
cmd DD 255(0)
; ?. L% m) P; C8 A$ Y- W6 L1 M. _4 r. j8 g
.code0 m" }  ^# w- i5 z/ |! }3 l% }
main proc
; ]: F# o5 h. Y4 U' g! T  call Set4gb; \+ Y( @" @: N" {$ n
; Q7 f) W2 P/ T' M1 h
  mov esi, 20000100h
+ X2 H' h+ G6 f  ^4 |- M  mov dword ptr fs:[esi], 055aa55aah7 b- t5 J! T8 c- \( O
    3 U- b- J1 z+ U, w: ?
  .exit
3 s# p& `6 g4 K9 v3 `- amain endp   
) o* V. l6 u7 s1 U  d' ?3 n0 i3 j  Z- g2 G, k3 W! s- Z
Set4gb PROC NEAR
5 u" a) C  a% p& {) w  in al, 92h& _$ V9 r! R3 y7 Z) k# v! T. Q
  or al, 002* E/ G6 v- ^; g! D8 W$ @
  out 092h, al+ Y; i! ^6 N% H2 K, l
  out 0edh, al
& `; \. H+ w( s6 a5 O$ I
( `- `" C0 c; t6 p, O+ {  cli
3 d% b/ U$ X( ~8 J9 r: x% x. E0 J3 r
  mov eax, ds; n$ G6 g9 I. u4 v' r  `
  shl eax, 4
! }! J( n# p1 m. q  xor ebx, ebx7 p5 p1 v9 J$ \6 h6 L8 }
  mov bx, offset GDT_def
/ R; S2 m% \8 f/ c+ Y8 u9 t  add eax, ebx
! i. r7 ]3 D  _5 l+ D5 p# z  mov dword ptr GDT_Addr.Base, eax% S  q( o8 j9 D5 \4 m) \  t
  lgdt fword ptr GDT_Addr
5 B1 U/ \; H) \0 \" G; J# s$ n8 L6 m3 H
  mov bx, 8
5 `6 p0 P( N& _' H$ I  mov eax, cr0
# j& L0 s$ M5 j5 F) n/ m  or al, 1
5 R  g* K+ f* T. Z  mov cr0, eax
; V% y- v6 r- V: x6 h" i" I0 r7 d: g4 H
  jmp pMod
" O' p, B, P" l" I1 S: N, |  pMod:/ d, U. H& f& S
2 v( B6 @4 T7 |9 I
  mov fs, bx
4 k5 S4 f' m: K% z$ J* ?  mov gs, bx
' G* I# x. [0 l  and al, 0FEh2 X9 N1 h9 s1 ]( b
  mov cr0, eax
9 J0 F* H' x: @( a$ A" L# N$ Z   
$ v6 O; V0 Z- e  jmp rMod! Y# O2 l. h5 {/ Q
  rMod:
9 z! R* s1 O7 f/ ?- b4 t9 e3 }! \& a4 m: x( M
  mov ax, 0: s7 z. e$ i- n" U& c2 y  t
  mov fs, ax
" F! c4 x& X5 b- z. n9 P' c  mov gs, ax6 S9 x' t  K) A6 L. k' E0 t
    * m5 O  F* E0 C. M
   
( z3 b, F9 Q% L1 l: s1 v( I
2 ]# m; T/ X0 F  sti
- f  S/ I* X8 ^8 S1 Y$ \" h* S7 S/ O  ret3 ]9 j) ]5 J3 {( v6 {
Set4gb ENDP" o* l/ \6 T8 h  _2 Q! i$ L
   
  `, t/ T- @6 K( n- p- n' [end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-9-21 21:54 , Processed in 0.567517 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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