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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
3 E7 B4 J' u9 Z! k9 e; h1 s: b0 H$ Z以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
6 N* ?  N, A4 l2 A/ i* d- @;---------------------------------------
, k8 W5 n1 o; k2 g0 h, E7 J3 ?( ~3 Q9 x8 f
.model small  u9 j' W& H+ U( D$ z
.586p
4 z$ ]( Q+ `& v.stack  
# f) S' I% w# b, @0 v) L0 G    1 k+ Z( N% b3 @7 J. v% I
.data
6 {" L: s" }  Q6 @+ H
2 Y0 `6 s4 c5 p# n0 vDESC STRUC: `1 `" R# n; A
  LimitL DW 0  : `# p' Y. L) o# V
  BaseL DW 0  
* i9 R5 i, ]0 _* e6 L  BaseM DB 0  2 ~* X, k% h1 z7 j) o
  Attributes DB 0  3 v# F/ J4 C: [: R6 Q4 y
  LimitH DB 0  6 [- A4 z9 g+ f2 k. g
  BaseH DB 0  : ?. G1 _3 q! L0 o5 B) l& I
DESC ENDS! N5 J5 Q5 J- n& ^
) ?, I% P/ M0 `( V2 E, W8 z
PDesc STRUC
5 p4 u7 x8 j6 ^; L! C5 m  Limit DW 0  
6 P* q0 y5 f& t: }  Base DD 0  
6 K) M* O; A: J! @! M/ hPDesc ENDS
5 ?# O/ ?# q  ^2 o  L+ B5 @* z+ B0 N
GDT_def Label Fword3 r) ]2 m1 M1 K9 I& j
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>5 h4 |+ r: u) k( I
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>% @  @0 J9 _; }7 F' m

5 `' T# S4 V$ ]: |GDT_Addr PDesc <$-GDT_def-1, >
  {6 a7 G$ ^! R: v& vcmd DD 255(0)
4 ^1 x0 A1 T) R# S% y+ U1 W# C8 f2 G+ Y( z" |
.code
/ A! Y% W+ ^3 @0 m; l" ~8 ~main proc0 f+ b% _. |. {! N
  call Set4gb* j  z$ U5 I. k/ O/ h

  R' h4 Y  d7 l' _( c  mov esi, 20000100h
$ ]: a7 l0 Z4 A- g  O2 Y, q5 g  mov dword ptr fs:[esi], 055aa55aah6 _+ ]* h% B# `# q8 }& l" {" r  Y: ?( u
   
7 q* T% h' o) H5 A! ?# K- Y  .exit
4 s" D0 ]3 ~1 a2 s2 A7 l& Umain endp   1 S4 v5 S# Z0 E# x* s- i9 `
6 f, g  W7 Z( E8 \7 G) \0 F0 l
Set4gb PROC NEAR
' z9 o7 D: P4 W$ I" H  in al, 92h. f5 m2 T6 X4 v/ I: F! M! E* ^
  or al, 002
% @1 y- q4 W* n7 H: m4 Y9 \+ w  out 092h, al
  Q- G5 {! H! C/ k/ e! {9 v  out 0edh, al- x( \3 p& M9 @- _2 N' k+ B* {
6 I" `) i3 D# H8 \: I
  cli
6 d+ c# J$ {$ w( R9 @. o# V
1 m, n0 z# k3 \" P  mov eax, ds* G8 J8 w$ ?' @; E
  shl eax, 4
$ n1 j! B* O' c: k& l) a  xor ebx, ebx
; K& D' x. Y% T( ]" U( }% ^  mov bx, offset GDT_def
$ L3 Y$ Z: k* p( B# ?9 Y  add eax, ebx: g8 \% ]5 g- K! {7 m2 x* E
  mov dword ptr GDT_Addr.Base, eax! j+ R% n1 r# U; n- Z
  lgdt fword ptr GDT_Addr
) l! e$ g* t' W: _4 K8 h2 S
, o& f! n" l5 ]! _0 @0 [" V  mov bx, 8
) e7 P3 A; G# w& P  mov eax, cr0
, w" B( Z# N* p' V4 \  or al, 1
  r, t; I) R" q- s' l  mov cr0, eax
& e- z5 L5 f. X
7 ?  m, u1 q& K3 G. m  jmp pMod
: p& S5 Q3 l5 t; X# W1 N' n/ `, C  pMod:
( a% E1 e* t2 G$ A) j/ X/ A; y3 y" b- V% ~' A
  mov fs, bx
6 C4 A2 Y6 h; P# C7 H- _* r' a' [  mov gs, bx
' `0 i* I) @  H  and al, 0FEh
% w9 c# X2 ^' S/ b: h" |0 b. N  mov cr0, eax# r5 N8 n7 G6 J9 N+ P- B) y. n
   
: k( Y  z" n' s% q! d: Q  jmp rMod. k3 _1 E* r4 ~
  rMod:
- X4 L% F$ l# R0 l/ L) Z- ~. Z8 L
" R* S4 B) b! o* A% I. B  mov ax, 0" O9 n' Q; }9 Q, e+ E
  mov fs, ax+ q$ k& ?: E2 d" U" u
  mov gs, ax
+ ~( Y! i- _. l; m   
  C. Y* ]% {3 r! Z    % I3 [- W" \) ^/ L4 u  r! s9 m% f

; Q/ P( a8 `/ c" `* \* o( O  sti; j) ?/ _  m( E
  ret
, y$ F6 K: p! }. YSet4gb ENDP
" I, B6 ]: \  T8 g* y/ y; [    ) ?0 h( t! i0 D
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2025-4-29 04:59 , Processed in 0.045258 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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