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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
0 [2 a% e- F4 k. v3 H- V以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。& F" J+ p6 t# |5 [* h1 y
;---------------------------------------
, D0 X, U8 G0 Q, G; h
  c, {2 e% y6 K; s* I, E.model small4 J/ o# o) D6 ^# r9 v6 M4 I
.586p) c1 M) A% B9 U) p1 m& Y
.stack  , A" ], a! ~. G' F1 c( Q: w; V
    * [+ t( F7 m  C  w. r5 k
.data0 C$ a2 o% u6 g6 L& B' T1 A

) X. Z' W' y  c3 Y# }6 \9 GDESC STRUC$ m9 L7 o" U# ~# k8 _6 m5 [
  LimitL DW 0  
/ A, M% b% `5 n" S  BaseL DW 0  1 b! |' m' T0 E6 |& e
  BaseM DB 0  0 ]4 t% }  @( h% J* \) L! Z
  Attributes DB 0  ; @. t! ]) \# a* H
  LimitH DB 0  ( F+ O- V  _9 x
  BaseH DB 0  
0 ]( G: T; ]6 v& o3 ], t2 \% @DESC ENDS' t! M- b0 @  D" [7 d4 o1 F
/ ?, L- |. X9 C3 y
PDesc STRUC8 U& A; I6 I7 o% z/ Y/ r0 K
  Limit DW 0  % I1 B! O- s- V
  Base DD 0  + L; S/ u9 x7 G) R
PDesc ENDS* [5 J# d, y; ~, S$ W# X' }+ k' D

- M1 X4 C; ~9 ?, W0 B5 t$ cGDT_def Label Fword; I, \* x  _2 t/ F6 h* [; o
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
! ^. f3 f& O$ @: w$ B# }8 oData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
: l0 C% D5 F6 q/ V: x( X& `: W5 I7 N5 u& s  o5 `: `+ X
GDT_Addr PDesc <$-GDT_def-1, >
+ t; a, a' W- {6 ecmd DD 255(0)% _( P! s) C- \  x% I

% e. o  k" E* N5 B, l.code
4 y% X: `3 E6 _( [2 M: v0 y" C( I) F2 r1 cmain proc; p& o2 A/ {' B9 k1 N/ }
  call Set4gb
; }6 I8 t8 W  n9 D4 D1 j7 w; n/ I( j0 C; _+ r
  mov esi, 20000100h- r: q+ T3 @/ [. @
  mov dword ptr fs:[esi], 055aa55aah2 x+ g' x; Y! L' c+ i" a
   
- X# I7 ]2 m7 y! |  .exit) V. x# W7 ]0 i4 L
main endp   1 G; F$ d# L) ]: I) U
3 O0 k2 f- Q- S, N& c1 P/ L! ?
Set4gb PROC NEAR  I2 B1 q2 p" \. {& v0 M5 g
  in al, 92h
& ?4 v1 ?5 g/ T' O) M: Y- o9 f  or al, 002
$ h5 @  m0 U0 W$ s  out 092h, al5 R0 E. H) Z$ v( w) H4 Q6 T
  out 0edh, al3 @; u$ ?3 e! K2 d4 M! M% B2 ]

8 H0 _4 N3 {' s( ]& s/ x  cli
9 Q9 \4 c/ M1 ]6 H2 P/ S6 p1 b5 w# m8 B3 @$ b+ F0 f
  mov eax, ds$ t8 x1 c9 ~0 f1 Y& t/ W) x
  shl eax, 48 B4 O) u3 P$ e8 V6 X! X2 O8 h9 r
  xor ebx, ebx* z1 P& K6 J) E* _2 v- T
  mov bx, offset GDT_def  v& r" b0 E+ N
  add eax, ebx
9 t1 M3 o$ u( x! Z# j  mov dword ptr GDT_Addr.Base, eax6 K0 F) S( w5 o5 A+ H& W9 f# j
  lgdt fword ptr GDT_Addr
/ S  V) N6 J7 v! P7 @  J; z, W1 t" q9 Q! @
  mov bx, 8
/ H" L9 @+ w* D/ [  mov eax, cr0- G4 B" v" v. z" U6 \
  or al, 1% k8 B- t, A4 X* ]! G& i
  mov cr0, eax% _* G, s' I4 v
% r' I5 a. p! o
  jmp pMod$ s. N. [9 `0 D, N% ~% a- l
  pMod:
1 A1 w4 B- L' k2 U& e* Y
6 h! `: t: w$ d$ o0 S' A  mov fs, bx* o) w0 _4 Y2 |9 [
  mov gs, bx
+ _' m) P5 r9 M" b* j3 s% }: L& U  and al, 0FEh
7 Z6 Z; L3 t3 w6 \6 g  mov cr0, eax
; H$ F2 M. o+ Z$ }' F- f    3 X( }' Q; T) v2 u+ N
  jmp rMod
5 \9 |7 D* \' I6 E. t3 @* k9 B9 x% m: g  rMod:
# r$ J4 f. w/ I: N; ~
8 K3 w7 h+ Y. x+ D. D- ]0 j; l. t  mov ax, 0# a0 `9 \7 m7 j0 _$ K- b
  mov fs, ax- I, y# K" x! W' k$ e
  mov gs, ax
0 N( q, J" R, c) m+ y: ]- d7 G5 G   
- j9 d2 r& ~, d) K: T; X3 W) t4 U   
3 m( F" g; X2 ^2 F% t
! N& c, E' a# g) V8 y0 W- z  sti
- W9 h( l  m9 P4 T  l1 H. T  ret3 X5 K0 D) _# I
Set4gb ENDP  t# j! Y! q7 c7 n$ D% [
   
3 x; I( q: \! F7 o# l, ^. G" c9 |end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-7-23 00:19 , Processed in 0.151435 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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