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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好. _+ z8 f( |& b; \4 L7 \; w0 v9 [. i& q* |
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
3 j. }" L; `4 p4 J;---------------------------------------  U8 R, N* A" x" J7 K" P! [

+ U2 R1 g% Z/ M* D3 N.model small
8 w8 _8 l- L6 H+ e: f.586p8 o/ T" V! u, {% D+ Q
.stack  
6 m7 k' Z: f" t! c% Y. @: K! h5 v   
# O6 u3 Y2 A4 a/ z$ j9 z.data
; f3 ^& h7 e% s1 Q: o7 t
3 z! K) X0 U7 a5 Y- `DESC STRUC# ]7 u/ [* ?7 q9 K, M7 l
  LimitL DW 0  3 F% g! `) t3 `0 Q5 b# }
  BaseL DW 0  
- j* }/ m* m3 M8 Y( _- _1 P" O1 m  BaseM DB 0  
: X3 k6 X- F9 `1 N+ A, T  Attributes DB 0  , X- |: t! R) V( f3 s+ `; \' N
  LimitH DB 0  * N( F4 n8 [! j& z: ?
  BaseH DB 0  
( J% f. X2 {2 p. ODESC ENDS
1 H+ {" F5 @; V6 G) ]
6 w5 S# H( `# \) Y3 [PDesc STRUC
1 a) f( t3 A4 w3 L& O  Limit DW 0  
% {  F4 Q& o% O9 {- O  U  Base DD 0  % x* v1 N/ {4 n, ~/ T
PDesc ENDS9 n. T0 q" R. q
- U# r  e: i7 O  ~$ C* y
GDT_def Label Fword
4 h" q7 `0 l2 F6 pNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
. j5 P" [; z: d* o5 S. Y& K# |Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>: j0 s8 X6 z$ [+ x- h" D
$ B  v' `( b* O8 V- U( v
GDT_Addr PDesc <$-GDT_def-1, >
$ B# x! _2 B' V2 c1 U# Lcmd DD 255(0)
4 {4 q& R5 F9 ]* [# A; \/ a1 C4 [1 h; T( K6 L
.code
0 y" T& z- O5 X5 D0 Xmain proc
- f) u8 K5 w7 L9 T. a2 G  call Set4gb
, ~8 `# P/ g. E! |& O4 {
. z. w, ~9 s" x* a  mov esi, 20000100h- g" v; V. w8 a! @& i
  mov dword ptr fs:[esi], 055aa55aah. {! F( ?+ |& `4 M0 Z, s, y: i
    ! }. @* r* t3 z  m% O4 M, e
  .exit  L. H# Z2 G' n+ b8 E
main endp   
9 W2 |% b4 B& L8 u* z, x# O* w5 ]# v* c2 @8 `
Set4gb PROC NEAR2 n% g8 l9 V! i) ], f$ n. B- M/ [
  in al, 92h
/ X& H- |5 k# G! N  or al, 002
! b, d6 }9 {" o2 ?4 e; L  out 092h, al
1 H" m3 u8 L" _5 i7 O  out 0edh, al
( r7 s0 v' ?" c; R3 ~* d: C0 E
: b8 p. Z1 u# M, a  |5 s  cli
4 ^, J, n5 G( l2 B7 e) {; t# r- w/ g' ?; r" n0 {$ [3 D0 _
  mov eax, ds
# l7 ]! \; }& o' f  shl eax, 4' q- {  S! [: Y. D. }
  xor ebx, ebx8 T2 o# F* o& G# B
  mov bx, offset GDT_def4 o$ S# N. S. D' Q: }) N
  add eax, ebx  t* S; ]. @+ X2 h) c
  mov dword ptr GDT_Addr.Base, eax/ r& E) z3 t8 x; ~: }5 [/ e
  lgdt fword ptr GDT_Addr# C3 Z8 u. R/ L- g, v

& w7 X7 x- ^0 c, O: h" m  mov bx, 8
4 j* _5 b! q' U9 ?! J$ Z/ ~  mov eax, cr0
' \1 g0 |# n3 m+ z# ]& k9 h  or al, 15 \5 x7 y9 V* m2 o
  mov cr0, eax* m3 R! D7 @) E2 _7 W6 L( \

- A! z6 V; M' h; l* R  jmp pMod5 b2 n% f1 `2 ?5 \2 ^9 f% N
  pMod:
$ W; u$ ^# Y& K! W; _* O/ y- h. @2 l1 e
  mov fs, bx& y( G; w4 ?, v0 |) W& d' T
  mov gs, bx
: `3 f9 k8 ^+ G4 K  and al, 0FEh8 V8 j. A- H% d' m0 t- |: O
  mov cr0, eax
$ T! ?# S$ D7 V   
! t" l  a  L; P9 }, v1 K  jmp rMod
/ `. [9 y# G. J  rMod:
5 \- y7 |$ A2 U6 K' {. s; v$ @1 F) B
2 {  S! A4 }0 G0 `! _! I/ C5 t  mov ax, 0
! B9 R; r! v( s+ A; B) d  mov fs, ax! C: I! Q( \4 ]+ H9 p  n; q
  mov gs, ax; r1 o1 Z2 X- K' x  d0 F5 C
    8 r! X6 H& O" P3 i- J7 V- P
   
3 N2 n. z- u4 Q. k& u7 U
) y# ^9 d0 q0 Z4 W* x  sti
4 @1 @8 j) ~6 ]! r& F( I  ret$ i% w* o2 N5 s9 j+ @+ O: W
Set4gb ENDP5 [) u- f0 T( r; g2 ^* g% d2 N( ^
    ( X8 o% n6 ?0 Y0 S% j: i5 K% N) b
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-9-1 17:35 , Processed in 0.216092 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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