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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
4 z8 D, p) `& ?2 U0 T) C2 x9 {以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。& L) q4 b% E4 q3 v* E
;---------------------------------------0 e) \% |0 B" u) r
( M2 z5 A3 F7 g: P$ E8 r
.model small4 Q( J% I) L5 ~8 P9 j) m; }' s
.586p! I/ [( r7 d( w0 ]* D0 R8 n
.stack  
% t* w+ M( ?3 I' O; o. B9 S9 T, x    . H& V* J$ ?( k9 [- `
.data
) l8 f- H5 Y7 V
) X3 u6 |  j9 Z$ e3 l, z' E6 o1 [DESC STRUC
+ f- v$ b4 }  A  LimitL DW 0  ) J5 p2 P% n+ G7 j4 Y) @
  BaseL DW 0  . Q- }0 z" z+ y' F+ b; S  y
  BaseM DB 0  
" }( A! k# `: _2 N! Z  Attributes DB 0  3 e; D" j3 X- y6 C+ ]4 r
  LimitH DB 0  
# q! W: A" Q- D7 q* r  BaseH DB 0  ( v" N/ K8 ^0 u$ Q/ }2 `
DESC ENDS
# y  s7 a* Z* n4 R8 b- \; o- w
' b6 i8 Z7 D  p$ L  iPDesc STRUC3 B4 Z- H( ~" B) A
  Limit DW 0  ' {) ]' c3 E% P- d: }6 o6 z# u0 k
  Base DD 0  
- P) f+ E  Y* `1 r  XPDesc ENDS
4 q6 {! `. j$ J5 k9 T5 @4 i
) R6 S: `+ X  c% `1 h# @GDT_def Label Fword$ j% @" U; @5 u1 R
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
5 c' B  f& p- f/ a0 T" PData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
$ ~2 f' s- ^: q( n: V+ k+ D4 }* P& d% R9 n
GDT_Addr PDesc <$-GDT_def-1, >
2 J* D" C1 N: t5 N# Q( e: T5 d0 jcmd DD 255(0)
9 E( |( S" J0 t* C7 G6 x& v" t  j1 ]# n5 o
.code
* c# P4 j8 X/ @( T% |; u0 omain proc
1 x# P, k8 T" v& I  call Set4gb( I$ h  m# L6 O- ]/ f. v
1 N% B% v; {3 N- r  O8 I% P
  mov esi, 20000100h# t8 v& F$ p* |1 n& J3 s( n$ g! V
  mov dword ptr fs:[esi], 055aa55aah
6 \2 A; m7 p( M5 j# N" w    & `( F3 V( a) u
  .exit" t  F: |; P6 _2 ?+ T' u0 y
main endp   
( z, T. v/ A( I  M+ x7 b1 X% \: V
2 u7 z: a' m+ \$ {4 z; V8 ?4 S5 JSet4gb PROC NEAR
( `& R" T+ I3 D5 g. o2 t. A  T  in al, 92h2 Z* K4 X$ t* z( r8 ^- U
  or al, 002+ U- g, B( Q" U- B" z/ M& B. ~
  out 092h, al
4 {( l/ v+ O0 k" q  V  out 0edh, al$ p  c: I1 ]- F3 L
7 C% {7 b: Z7 Y5 ~( F9 r. m
  cli
8 N: j- C6 G- ]: G" y
6 @! L) b& M2 E7 q0 m8 X$ P# {  mov eax, ds
/ Q1 A, E$ l9 ^' G- u  shl eax, 4
! u; D% t! q& @" `  ~/ n" Q  xor ebx, ebx
& i" Z* o- j3 _, T5 Y$ t% [- H9 O" b  mov bx, offset GDT_def
: S9 t# n! k# S& X* r  add eax, ebx
  R( v% Q& {: V2 F. |  mov dword ptr GDT_Addr.Base, eax
' o1 }) Y' B; h4 e# `  lgdt fword ptr GDT_Addr6 W3 o! ~2 p0 o' l  g" L
% o* P* P2 K# w( ]* ?! e
  mov bx, 8
) j) E& G  j* J. i0 \3 @  mov eax, cr0
& {6 P* S& j8 j$ V, H8 G* F  or al, 14 w- ^: {4 c8 o5 h- D4 `
  mov cr0, eax2 C. P$ ^. x) @+ j

4 H" O) x. ^4 f  x* g% \4 E: E  jmp pMod5 ?/ p8 [) n$ ]5 K4 M
  pMod:* g1 B. i# _& A. v
6 L1 G1 V" {8 `/ ]4 [
  mov fs, bx7 ?, q- i4 Q; v) _( N( ]
  mov gs, bx
8 L( N( [' G: o4 j$ W' F$ t  and al, 0FEh
4 ?% D% g2 ~* G& [- G  mov cr0, eax, I1 H5 P* A" [2 T5 P! X
    9 Y' r1 @7 V" H! f, W' s
  jmp rMod
) _7 Y$ g5 a: }$ H- V- a  rMod:
8 t9 m3 t! z" e. _$ w
4 F# T7 k8 g( M, t5 s  mov ax, 0
; Y& i% V$ \( i0 ~  mov fs, ax
2 d% J9 _8 l. y- A1 n. M  mov gs, ax- Z$ p! E* G" N3 z/ ^
   
" @3 d) ^) A0 z8 O' }1 |  x   
3 c: b8 ?7 z/ C) N% q/ m
& F/ l8 b0 k2 S( `0 v  sti
% c( K$ h, d! p( G  ret1 g5 {% i' }3 A; a3 a) [& K
Set4gb ENDP
! l7 w2 w2 q4 s: b   
5 U1 F& a- Y/ `* J6 }- r3 L' C: Dend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-3-5 19:07 , Processed in 0.048537 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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