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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
4 [- ^  U7 K7 w$ l以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
4 ~& C) ^( f3 p, c( y4 ];---------------------------------------4 C" Z* [3 X" Q6 g, f& M5 K

' W/ A1 d: a. r# D6 r8 ~7 m! ]5 a  {8 H.model small) Q, y1 s/ k! I8 _7 J
.586p' M5 |: O, q# \, H9 z
.stack  . Z1 L* G9 t$ i: o( g' G3 K, n
    3 P7 e$ {" r( Y' a; r6 g6 @. H
.data; R' h' J0 R% h: E4 F* P5 W

0 J% Y* m) Y# @# v  o/ I, eDESC STRUC
7 ~) E. a$ ]% V- C) |  LimitL DW 0  
5 c& J2 k+ y7 D5 L  BaseL DW 0  ! ]  X7 Q  G6 Z/ B% E" a: K
  BaseM DB 0  
0 t- j1 a: Y0 m( E3 N7 j! ~% s  Attributes DB 0  
& k2 p. t$ c, h  LimitH DB 0    y- r. `& |" R
  BaseH DB 0    X! [0 x3 a: _, Q( k( }9 f6 ~
DESC ENDS
) e  v+ h2 R3 v- L) _2 a8 \( Q! V; g. G$ x, q& P, P' R. ^
PDesc STRUC
% s0 @( Q  Q' T, N2 {- V9 S. `  Limit DW 0  
( `; K% X" S. p  Base DD 0    A( `1 r$ e# \/ K8 }- b
PDesc ENDS
% i6 O1 g+ N) M. F' y( q" \' O' \4 @4 k1 S. v5 |
GDT_def Label Fword
$ N( B; h( x: [+ \  N; q! kNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>3 |) c. b( e! u7 ]0 O
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
6 q$ E( ~6 e0 _# ~( [# L& S6 ~% K! l7 d5 B& k9 B# _0 H
GDT_Addr PDesc <$-GDT_def-1, >
/ s& l$ A& S! C7 N1 F" {4 @; scmd DD 255(0)
% a( b( z( S$ Z, {- _% a+ ^1 b* g1 q, x3 r
.code
0 E2 H6 G" J2 N2 xmain proc8 O! C) v/ [+ T
  call Set4gb6 ]! Z; Y. h8 P5 d

6 P0 [* H6 w; t" s0 b/ f9 X4 D  mov esi, 20000100h
1 R6 S, s5 ^, a* A& J& q  mov dword ptr fs:[esi], 055aa55aah
: b: I3 @1 N* R* W   
7 A3 d3 `1 V8 w% i8 O4 F! {3 x  .exit" B' {" l0 D/ l2 h3 ~$ ?
main endp   6 L( h8 E: X4 Z- `7 [- ?

; _/ P. [2 U- S; QSet4gb PROC NEAR
8 F5 w' t& j3 c- M; O) h1 P  in al, 92h! s2 d# S: [! k
  or al, 0021 C1 v( m$ ~. ?3 n  {  x: o$ X( e
  out 092h, al% D- m( m6 M1 N' h
  out 0edh, al
2 Y" l& [4 y( C5 M* ]% q9 `
, {6 E1 F, {# J  cli
% K, x: ?) P* }4 X6 h2 r! m6 U  s0 o0 V& ?  S+ `  k
  mov eax, ds
6 X- J6 W+ d* \" W( {4 k, I3 q/ ~/ w  shl eax, 4+ N& k3 [' ?% O% q  _& M& Q1 u
  xor ebx, ebx
4 O: p7 J7 J. G7 B3 t- p, j9 t  mov bx, offset GDT_def
3 ]0 n0 H& S9 c% I& `: ]  add eax, ebx* ?3 p: q# t0 e2 ]0 d3 H. j1 H
  mov dword ptr GDT_Addr.Base, eax5 k) Z$ V# i/ ~5 |3 E1 f
  lgdt fword ptr GDT_Addr: D+ _* ]- Z* F! f2 P& O* R- C
8 v: k! ?- k0 q& b# C" X* [) y
  mov bx, 8- F$ D# c( `/ w: d- W
  mov eax, cr0
3 N, p5 A8 b7 k( }& u  or al, 1
, G9 z' A' b1 d4 S8 y5 a) |: e( l' Y  mov cr0, eax* J1 ]& U& M# B# F5 n, m  C4 g
1 m/ n1 e1 \- h- z- o
  jmp pMod* }# {! r. k9 `% @% |
  pMod:( \6 X4 B9 Z- m/ o. z
# j& E( ?) h* G2 G9 I
  mov fs, bx$ P* R  l3 Z; _' \+ k5 k
  mov gs, bx1 V6 P7 _' E9 n" `6 ^7 a
  and al, 0FEh
8 M* d6 C  F3 z9 k/ S2 T. K+ b& F  mov cr0, eax  B5 H# `2 \' M, E/ l
      m3 I9 h/ `3 q, S- v7 R& n( W
  jmp rMod4 G  G& W4 w  _$ S& p
  rMod:
  y2 }2 C  M' ?- W  ^& K) @! {! ^* ?3 M3 D$ K. l2 E" m
  mov ax, 08 A, d" q* }9 {. q; ]
  mov fs, ax
7 j& v$ O: N! u1 ?9 `1 M1 G# v  mov gs, ax( Y3 Z" t5 _* ^8 }
   
; p* @& c' M  m$ @   
& F+ F% P/ N! p8 |; U2 L! A0 z3 M: w* ?, g
  sti6 X6 |- F/ \8 w1 H1 @/ _+ e+ k
  ret
) u( J' m* K  V" TSet4gb ENDP6 ]9 [+ s9 [- Y$ x
    ; w* y9 k/ e: V$ ]/ F8 a/ q- {
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-4-20 05:44 , Processed in 0.040158 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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