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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
; K( y  \8 j) `  V以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。9 i- L2 Z) a& X/ [7 `/ I0 q
;---------------------------------------3 _" q) L4 G2 B# O7 H! S! G
3 S6 h+ ?! U) [2 i6 q" u  w
.model small
8 Q$ p: h; V6 `: [3 L1 q. r$ H1 j.586p
$ z9 r% z0 ~9 J5 r( G.stack  
% v* X. L( J6 u" T0 m+ Q% L; ?    . N( z3 g+ b3 M5 i: A
.data' B2 N7 Y( I5 ]: o
7 s% S6 v; K% T' t# w7 F; @, y+ |
DESC STRUC
8 A2 G$ h4 ?4 @6 o  LimitL DW 0  
+ \0 ]& F! y% G  Q8 P$ S  BaseL DW 0  % A8 }. _) ?# q
  BaseM DB 0  
" a& Z2 w* e2 @8 f' _  x$ S9 K  Attributes DB 0  1 t5 z( A: `* [2 H
  LimitH DB 0  
/ f4 F* e* T% s  BaseH DB 0  
2 h* x8 J) f6 F* v1 a; ZDESC ENDS9 g: B# U1 I$ E

  N( K4 ?0 t0 ^! s9 |+ z; fPDesc STRUC6 x$ [6 \# E5 u0 w$ w- n  f/ z
  Limit DW 0  
! a9 O2 A( _) B& Q  Base DD 0  
7 N3 _2 H6 D# m7 R7 @/ o6 RPDesc ENDS
, P) N; D! [& U
5 s! b5 w3 ?# A, i, PGDT_def Label Fword
8 S1 v% D, ~  w( s" ^; Y6 p7 m! ?Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>& t7 J( W  w* p0 L+ X8 A
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>3 k1 s5 s" j4 `! D7 O/ H  d1 Y
; A% {7 d; j: h6 ~) B( [! U: q
GDT_Addr PDesc <$-GDT_def-1, >
( [6 b0 Z5 Q( U! [2 \cmd DD 255(0)
/ j# u  {+ `& k, u# r3 k5 i8 O; A' |; v
.code8 f9 ?0 A) t) R6 f. f) E
main proc
/ N3 t$ ^; I% r, k) e' D7 [  call Set4gb8 a6 w7 }; w' G$ p' E" _

8 U, Z, K7 A, d" Y! N2 k  mov esi, 20000100h
+ e, W" i0 q# y* i$ s/ R  mov dword ptr fs:[esi], 055aa55aah- u! U7 [* h+ B7 \, @9 d
    * N0 P& `% e9 m" N0 H7 _0 u0 j
  .exit5 j; F  e) o) |7 W$ H
main endp   9 _) d7 k- \; `

$ Z+ F, r) i4 W* M. A" A( h! vSet4gb PROC NEAR  P, ~% s4 Z1 y  O: j' e1 Z: ]
  in al, 92h
4 ]# y% N6 K* A  or al, 0027 g9 W: G3 c! \9 \( m0 e- l
  out 092h, al
% F3 }( M6 O+ ?# t/ e8 ]  out 0edh, al2 J' x% M- U- G& w$ J% V6 H

9 E0 n$ f; v$ w" n6 r( T  cli4 S% G9 V7 s* o

2 f6 F# Y7 C- P- f) _2 {0 q  mov eax, ds
6 j: t. V; v& o  z  shl eax, 4- H0 G; k  ^( t, y
  xor ebx, ebx
, ^, L1 B( J+ v& \# s8 O: H  mov bx, offset GDT_def" v! S* j0 o( L) g1 n9 T/ E
  add eax, ebx( i7 r( n$ ~9 j; u( J
  mov dword ptr GDT_Addr.Base, eax, C/ G1 s# M% Y8 b
  lgdt fword ptr GDT_Addr* b2 d9 B0 d# @- I1 R/ g
. K9 ?. p8 F' \" A
  mov bx, 81 C0 Y" A, G3 m0 N
  mov eax, cr0
9 ?" G( U/ R2 \/ d6 z( \% u  or al, 1- Q" ]7 _8 N0 d( ?% S4 ^
  mov cr0, eax2 V; o, l7 j" `, {8 y' h* m
3 h$ ]$ D9 d+ ?3 h+ G2 h
  jmp pMod" f9 u' x# M: S0 ~. P4 W
  pMod:
- {1 m9 y' V. C/ C) n9 }/ q! A- {  e: ~, O  t
  mov fs, bx1 T# H4 ^) [8 \, f8 K7 Z
  mov gs, bx. t, J! i9 Z, x% W/ L* f3 \
  and al, 0FEh
( a) h- l' ~1 d: @  mov cr0, eax
3 e+ c( }* l( c# `   
, G$ x+ {, ~) M8 M+ H  jmp rMod
8 c8 |; @% J6 H' m  rMod:
) [5 V5 E/ ^( M6 s' S# R  D7 y  F7 F% `( y9 W
  mov ax, 0! S1 E1 X1 }" ?; p# Q. n! o5 N
  mov fs, ax
$ S0 c- I0 m( A# t  mov gs, ax: w0 d3 i3 E$ a2 L. j" {: t. b
   
5 h% H. Z+ v1 Y* |$ v! Q2 m   
3 `+ K) f% }" x, \) ?) J6 O7 @
& y& h: ]0 j1 j: d4 i  sti
7 Y0 O4 Y/ z. Y  ret& Z8 Z' ~( i* M- D. P. L# D' G0 P" p
Set4gb ENDP
9 v2 a8 X+ a* g5 t9 j+ Q, I3 U   
9 c8 b* Y8 u7 aend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-2-1 05:37 , Processed in 0.102045 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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