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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
6 C( n  ~% D. e' v+ W以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。7 n9 D; N5 v  E/ I
;---------------------------------------; t2 i' U2 P$ R. \7 p, M

2 t* S( J- q1 x4 \; l.model small, \+ @7 T9 y0 k+ ?1 @4 g% D
.586p  r1 z2 `: Q. b/ ]- Y% l
.stack  
/ `. C# [9 N+ m. n   
" r% v: Z% A. m3 Y0 Y  A.data
1 R7 q5 B3 I2 ^$ U! [" G4 _: `) o* q# c3 j6 l; V7 V
DESC STRUC
, P& L" ?8 M" d: D  i" l& B  LimitL DW 0  
3 G* d* \/ `2 J5 {' A  BaseL DW 0  
6 T' A0 V" b; `  BaseM DB 0  ! b6 G* E8 {; e! B* X' r& Z8 Y
  Attributes DB 0  # j5 T, Y$ I8 I7 o" ]
  LimitH DB 0  
" U# _7 Q; `- q. _( k6 m( [0 x6 E8 `: v  BaseH DB 0  ( V- h( a6 F! t5 E! ^" E1 w
DESC ENDS3 O6 Z/ i3 n& R
2 y+ [5 q" ?# L9 r( j/ j) y7 u
PDesc STRUC
% U' x/ ?2 X) ]3 z" K  Limit DW 0  
9 k$ T0 i  {, `9 h; v) q. u& a  Base DD 0  
4 r# L3 [7 s  S3 m: }6 q! uPDesc ENDS4 q7 ~1 b$ |! `  C
- m( e/ W' t! @
GDT_def Label Fword7 s6 b# E* `( ^$ n% @0 G
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>% B! I% ~8 v2 Z/ f$ \4 U
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>$ ?" l# _3 _% T; @& _+ t

9 K4 K% k6 |9 {( t2 V/ V6 a. SGDT_Addr PDesc <$-GDT_def-1, >' @, I3 u4 E9 `* m7 x
cmd DD 255(0). }% F% X+ Q4 \' D6 X
0 ^2 V$ P2 c& q1 A
.code
2 {* k' ^; T( u: smain proc" k0 n: D& R7 [3 o* l* P
  call Set4gb# Y4 l' D% o- z, l

4 H3 A' {5 {$ c8 U  mov esi, 20000100h
! H( H- I: d& G3 a+ g( |+ K3 L# ^  mov dword ptr fs:[esi], 055aa55aah
2 `! J, P/ d$ @% ?+ M# ?! T* f   
/ q  u/ K2 S, ~; E  .exit" z" T* P* U0 V. N$ q
main endp   
( N- z$ P' E  B3 p' T+ G7 l# K2 X. C/ V; k2 f" ]  h5 d
Set4gb PROC NEAR, s- {: b* A8 F# u$ j% o8 m
  in al, 92h8 p7 ~  Y6 \, `% e
  or al, 002
8 |3 O* ~. _% ?% @  out 092h, al
* H8 B; o* h" R; |8 P+ v; l# H7 t( S  out 0edh, al3 N4 U: W" F$ E7 H( k
5 k, `$ w- H' B7 d  n8 y8 q
  cli
" Y8 c0 a. j& ?% X! Y; l; I3 Q6 y+ }# [# a& k3 l
  mov eax, ds
, O( e- \" G* ?  shl eax, 46 R- P' R: c! |& `
  xor ebx, ebx0 R* J2 G+ _8 X) P9 \
  mov bx, offset GDT_def
# s. Y- }) n5 a2 ?; ~/ K  add eax, ebx* G* M1 d& S, Y" e/ F# Q! d; N7 B
  mov dword ptr GDT_Addr.Base, eax' `+ y& ?2 w5 r3 y0 d, V
  lgdt fword ptr GDT_Addr
0 v8 a9 G/ R2 u7 c9 v) Z4 f
% ?! c9 n6 M0 z8 u. W( k. _  mov bx, 8* B4 v; H- x3 u5 Q8 G
  mov eax, cr0
2 `& W" K2 V0 \: l  or al, 1
2 [* i& _: e# B7 @2 @$ F; d& {  mov cr0, eax0 @9 o: V- K: E) Z8 H0 e! @

* U: i( L4 K+ A$ i5 _6 V  jmp pMod
0 u( Z" x3 y  t8 i' D4 ^  pMod:3 L' _0 E; \. o% K/ x- Y

: T$ x# q; t, w3 J2 ~, P  mov fs, bx  b+ w2 e- L9 h* W
  mov gs, bx
% {7 _. ?5 v% i! E% Q! D  and al, 0FEh0 p# `& M8 Y1 y) s( G
  mov cr0, eax
4 N9 y8 z& b: C! S   
% T9 {' Z% I$ y0 l$ L9 `. g' M8 a7 v' I  jmp rMod% j; I! z: f4 @1 C& T% X
  rMod:4 m! k" l/ _' s

6 U, J* `) Y1 d& z( s. e# w% g( c  mov ax, 0
; u9 u' N4 P# c+ Q  mov fs, ax
% U( t7 b1 F% Q# C! Q  mov gs, ax' W/ c$ m' w3 r5 G& S$ [6 V$ B" e
   
( h0 S2 t+ ~  p' P3 A$ [  M   
9 W  |+ g$ @- c' W& k- Y
) K2 Z( f9 N6 u' ^$ u6 E2 g1 |  sti
$ ]5 J: ?+ u. ]4 j" G: T0 }7 z4 G  ret
' y- a+ J& C2 d7 J4 RSet4gb ENDP- t1 j" W  U. y" t6 ?
   
) E2 y, b6 a2 _6 Eend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2025-6-17 17:34 , Processed in 0.084999 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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