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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好, K  p" i, c4 I" Q4 \
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。1 t! [5 A6 E: S0 Q4 A
;---------------------------------------
2 w1 X5 l7 C8 T0 ?& I- M" J% N6 I& W
.model small
# H" G$ R; Q* L/ U.586p
; e4 d$ C0 M" E% [( S, A$ W.stack  
/ C) f6 Q/ ^& n2 `    + h& M7 S4 u9 L" [
.data  k! u- d4 |. M# K4 j( v

' J; A# A% C- gDESC STRUC
$ y" t9 a+ V* _  j5 V# `/ H  LimitL DW 0  
  @2 m5 W9 W; A# c: M6 u+ U) V6 R  BaseL DW 0  4 d8 b! T. z7 s+ O8 k; i* S* |
  BaseM DB 0  ; g6 ~' Z& E& o# |9 H+ Y
  Attributes DB 0  : n. y1 s% R( J0 N" U
  LimitH DB 0  3 g, j0 b$ n/ T9 M
  BaseH DB 0  & |: y' a+ G# e4 e' H) U
DESC ENDS
) w0 r3 r# Y# E* o) |5 w0 e  |' S8 h7 _2 |) M" F
PDesc STRUC
5 }, i( r  z7 p* T  Limit DW 0  
7 A# ^( n& `, e: L% t2 n( [& H# C  Base DD 0  
+ y# J* {' S9 [/ P9 O, YPDesc ENDS
' U! ]9 L+ Y4 U5 w5 p' M: I0 Y6 ?0 ]. ?6 d8 ]+ `* X1 x
GDT_def Label Fword8 F+ [9 s  |0 P# C  h. E5 J0 l# a
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
. i2 ]$ R+ l6 j; M) R  U3 WData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>4 U& L2 w( e6 Z" X% Z3 u% J

: K$ t3 D5 Y1 |2 bGDT_Addr PDesc <$-GDT_def-1, >0 N* W9 |' }+ J, ~
cmd DD 255(0)
5 Z1 }  e! b4 F8 }- b9 O
1 D% o( `/ j( p/ f4 x: P$ Y; }.code4 h6 q9 ?, y0 M+ b% `9 P, d3 `
main proc
9 h* c$ m2 K8 \$ u9 K+ o  call Set4gb
) N  A0 F  U% b4 E
1 F* ?8 I9 G9 ?  mov esi, 20000100h
  H! u0 `0 Q/ ?  mov dword ptr fs:[esi], 055aa55aah' x8 m7 p* Z6 ^' H5 p
    - u0 j7 Q% X  a
  .exit8 _6 k# K3 z+ Y
main endp   . C# o0 H" i3 j# M

. u' o$ P  k* F0 sSet4gb PROC NEAR
' T# j) f8 ~- ]3 \3 a1 _* R  in al, 92h2 ~2 |; E0 Y! K( ]2 z- V( U5 S
  or al, 002
; P% ~) h* ]! `6 B8 m  out 092h, al
/ e. X; B& w7 J2 H  out 0edh, al
3 Q8 S2 Z6 ?1 ?5 b
- l7 [* K+ e3 l9 X7 a* ~  cli
) p! d# R$ ]# E) q+ @& m# }
  A% V7 i% A2 y6 F1 @) t2 j+ V  mov eax, ds, c1 b3 i/ m2 B# S5 |4 D  W
  shl eax, 4
8 E$ c0 X0 J8 ^  xor ebx, ebx8 K+ C4 o: Z; d9 k/ w4 k
  mov bx, offset GDT_def
+ l5 x7 q0 C" p  V0 n2 S8 g  add eax, ebx
2 M8 ]' p. U6 Q2 n0 D  mov dword ptr GDT_Addr.Base, eax- N! H; e0 Q! |
  lgdt fword ptr GDT_Addr
: r3 o# H9 j. P
) H9 g; n3 ~! Z6 m  mov bx, 8' G. J: l' o6 @8 _5 d
  mov eax, cr0) `1 J+ [% f) G8 X8 A
  or al, 1
% I$ D5 f0 k! V; {$ W  mov cr0, eax9 L2 l6 |# Z/ l0 {
* U# o; r% K4 \7 D0 p$ W: g5 ?+ d
  jmp pMod
7 N; }* a$ x8 u2 \) M! |+ ]  pMod:1 u4 i) z; a$ L
! o: c2 n, A/ a# P
  mov fs, bx
3 ~/ P1 b/ P9 ?. f6 ?6 C% {, o1 Q  mov gs, bx. @* U% ?' C& \  w. A: ~
  and al, 0FEh0 E! R# N5 @+ \; `- g
  mov cr0, eax/ L7 ~* P4 ]0 }+ o( @$ e
   
' m8 u2 i5 W* a- z  jmp rMod) e* w3 `4 Q% M5 k3 K
  rMod:5 l) z) W" @8 W. v
) J6 e( |( A1 t+ l
  mov ax, 0* [% @- J6 m7 G" t! Q
  mov fs, ax
0 q# r9 V/ A# C: C5 p8 L4 l  mov gs, ax
! f& R9 `) u: P   
0 K% R8 @/ B, z- g) _0 j0 `    $ o# Q, [$ @# d6 {
3 ~; o# Y" M* Z  H, d: p3 h" I
  sti* c3 z4 Z6 V) A6 ]- `9 ~
  ret
: B: W! o# i5 A# MSet4gb ENDP" Z0 S' h7 I$ v/ M
    ! d  C& i3 [7 Q9 X1 F; S+ Y6 z' @+ a
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-11-3 23:13 , Processed in 0.177225 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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