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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
1 x2 O8 A9 E9 b以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。( d7 [9 g/ x- M0 n
;---------------------------------------
$ g& M& s7 E/ L9 a- ~4 @4 ?" R* X" ]7 [
.model small9 k0 \# C3 c- F6 s* A' [
.586p3 e  i+ Q+ {. j* F2 O" R. z; P# U2 A
.stack  # m" I, e1 V$ q: Y" z. X7 L
    4 |& ^4 R& ^( l5 X
.data: y% W% w* x6 M. O" s

6 e2 b1 N( d3 W  q+ ~3 S4 w: jDESC STRUC' H2 D% l* O: R7 x. ^; U9 y
  LimitL DW 0  
+ Q! h6 \( f1 T7 \  BaseL DW 0  ; M* J- @# [; k, c
  BaseM DB 0  4 u$ t& J  O& B9 g+ \) y* x9 l
  Attributes DB 0  
- z; x! k3 L1 i  C" p" T* w  LimitH DB 0  
  I6 Q+ `  n. k$ E  BaseH DB 0  
: b# L/ c' F( x$ s; u$ T/ N% ZDESC ENDS+ V- g' N( _! }

; L+ C. R3 z& y, i: ~. {PDesc STRUC
" l* `0 f5 j# L: ]: m1 i7 ?  Limit DW 0  2 y; I3 U% T* m. w& F% X! B
  Base DD 0  
4 N; B) C; h. ]4 b3 uPDesc ENDS
. A$ v  K8 l# h7 H6 U; V3 U" r' n# T0 Z0 H
, Q8 T8 y! J1 lGDT_def Label Fword5 C6 x: v) f" d/ `
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
: \( K- d; E5 `8 ]- SData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>( e3 H" h" @% @% m6 g8 v

# L. f5 `: l% N) y( x3 F6 ^9 E3 E* nGDT_Addr PDesc <$-GDT_def-1, >/ d# `& v. L+ L  C; j5 ]
cmd DD 255(0)
! A. h) y7 N' x2 ?  ^* H/ J: e9 j8 H( @& W5 u5 d
.code
& ?0 g0 _( f; H' \: imain proc
5 H  m0 t) u% m( }  call Set4gb
2 J) Q! k0 U: G% U6 G6 Y
; Q( U/ T% T4 H# G3 y2 F+ {  p: _( J  mov esi, 20000100h- I( h" U5 [) k" ?% f0 e+ L9 S% |8 f! U4 |
  mov dword ptr fs:[esi], 055aa55aah
2 v$ c9 i1 n: C+ ?   
$ t$ V/ k# W) y& e2 h4 [* R  .exit5 Z1 B% c$ }3 `! t( n1 N
main endp   / s% X4 z' s- s. E* u
, O" Y2 C! P; e& X& o2 O/ x
Set4gb PROC NEAR7 ^1 R& g" K4 A. o7 U* r: h
  in al, 92h
( E6 `0 A6 L' [3 k  or al, 002
+ e$ o$ k/ k2 h7 W3 O. p3 I3 `  out 092h, al
4 E4 v0 N; [7 Z( Q; V0 o6 T+ N, G  out 0edh, al3 b/ f! B( Z# F5 K: \! u1 T' w

/ G* M; I4 ~0 N  cli& J7 }! N) M/ r6 o) w2 c

2 K, U3 V- Y  W" Q* `  mov eax, ds
  Z. v' s0 T/ j" a8 p) Z% K& M  shl eax, 4
* b: Q  J, Y2 i" |  xor ebx, ebx
" e8 b* ?( s% T6 H" d' M: Y  mov bx, offset GDT_def
7 Y  i' P0 t/ N, p: p' o# \  add eax, ebx6 c9 F) D* E# B+ Y& l) ^, M/ t  E1 q2 Y
  mov dword ptr GDT_Addr.Base, eax
' d# Z& K. e0 n* I4 [  lgdt fword ptr GDT_Addr
0 O  X. W3 r3 C; _9 e. d7 m: n' Y% I6 y5 v8 X
  mov bx, 8
2 ^; K; v: N. Z8 C  mov eax, cr0
4 `0 p$ Q/ Y% H* u  or al, 1
. s( ]6 ]9 K( P6 |  mov cr0, eax) @. e4 f3 c7 P

; f- B" N1 a+ }! u' o2 @  jmp pMod/ I. u5 `/ Y) z$ h3 n
  pMod:, P4 W+ _- \' X! g: q* F- P
  Q/ _7 W9 b# B3 t2 ]% ]
  mov fs, bx! L" g! k1 C4 x
  mov gs, bx5 @" f  _; Q5 O
  and al, 0FEh9 W( l  c1 ^! ]1 z/ s3 J, l* T
  mov cr0, eax
2 \' }* A: A; S    & F0 U7 J' m7 O. ?
  jmp rMod! o# s& z$ s1 G6 x1 h9 P. i# T
  rMod:
5 G$ t  V3 N6 [0 p  R" ]
+ g; Q+ t( C% s8 _  mov ax, 0
: f, H) h0 q* u, `) E  mov fs, ax* v! \9 v6 {8 N& a- [9 M
  mov gs, ax2 [& Y0 T& J& {3 M0 h1 B6 D3 d* A
   
2 x9 G& i- `( }" R    + l/ R: h2 @- H

" o2 i5 a' s+ U  sti5 Q! J  P9 l5 I" S
  ret
4 g7 F, A: _1 M! k% pSet4gb ENDP
) m. q2 Q7 ~# N( t( ]6 O   
! K# W/ y  E  Z3 qend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2025-6-14 05:14 , Processed in 0.018405 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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