|
|
Hi 各位高手好
O% e, M# F. A. g, `. t8 [, J: v以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。3 h( V. a L8 E. i8 ]
;---------------------------------------1 V4 s1 G+ q, H
5 g2 v, U" c I: M6 ~4 m.model small
/ y8 O' |, \; z5 i N% r.586p
5 G9 c. @* K( T- Y+ d# J.stack
" m; P! P7 n0 N& d. N' p& Q " \, x) R; {0 T9 G _4 R! p) d( l
.data7 w4 B$ u. ~/ m/ h! w
: {4 e$ W( n+ e, v6 @$ g
DESC STRUC2 T; M$ E4 [* ^
LimitL DW 0 : ^5 n/ O4 X3 p. K; }; n
BaseL DW 0
7 w1 N3 B' V# l BaseM DB 0 / W0 L6 k4 i- y+ t# g+ L- K0 z
Attributes DB 0
4 ~& x3 `* v' i, Z _ LimitH DB 0 1 R* |! g: {. Q$ [7 a8 a8 \
BaseH DB 0
# r5 I9 n: d! cDESC ENDS
- b; F- ~ g0 P. r+ E: Q
/ v2 Y. a9 R! G# T. IPDesc STRUC* g( \# N* }5 p" _ f5 H
Limit DW 0 9 M6 I0 L: O: \$ _6 Z8 G
Base DD 0
( P; F8 s. d& O. U# k, ~( H! |PDesc ENDS
: n+ ?: w7 t G; F2 W# @
# u6 j7 K9 F, [5 O$ ?GDT_def Label Fword1 K$ ?. b, g$ [& M* I1 j2 e
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>2 g! }5 h! B4 ~
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
/ x; c4 r0 j4 }0 g, M5 R0 g# v6 g8 r) H0 H% m' C C
GDT_Addr PDesc <$-GDT_def-1, >
5 s7 E/ X# D8 B* w, ^ ~% scmd DD 255(0)
# [8 f7 q9 {$ w* |7 Z6 o! ?
* Z- I2 o8 L1 n3 m& ?; W/ S.code) X: Z8 S8 Z: }7 v
main proc7 i1 I& w' K1 C- A( I
call Set4gb; @) z5 R+ D+ ~/ H1 t
9 [6 j& o6 n. h% |: g" Z mov esi, 20000100h% ?3 Z; X+ a8 f) _2 w
mov dword ptr fs:[esi], 055aa55aah0 Z6 v- N" w- l" i! b8 M
: O1 ~% m, W3 o0 I2 r4 |
.exit
' O% W3 @2 c- ?6 N# A% }main endp 3 g; S/ ^) k4 W
/ M) w# M x" g2 W1 G- RSet4gb PROC NEAR6 Y/ h7 }" V4 {3 h4 N0 d/ _6 E0 g
in al, 92h/ p/ C+ A8 _. i- j, N
or al, 002
2 t8 h) z% m- q out 092h, al! T; H c+ S c; h$ g6 K0 l9 [
out 0edh, al
1 S2 T% V1 O* U* }+ z, p& ^$ `3 G6 [" x2 r, w* K
cli7 Z7 Y; i, \8 C x- u4 f+ f) U6 h5 z
7 w$ E$ m( U! E; a
mov eax, ds
5 X# l1 C3 z2 S" S shl eax, 4/ b! @% S7 a) Y* }0 G% x# V: Z
xor ebx, ebx
" q5 e$ x& |: I7 ^ mov bx, offset GDT_def
( g `) P! W6 U, S" T+ Z2 Q add eax, ebx& x8 G9 o. M3 u
mov dword ptr GDT_Addr.Base, eax
+ o, E+ W: s6 ` lgdt fword ptr GDT_Addr
5 E" T( Q5 Z2 {$ Y7 l
6 z$ m& d q" U6 @7 r' H- [4 ^ mov bx, 8
4 O/ A2 L6 K, r5 N1 o: x- U7 b mov eax, cr05 y8 V0 ]. v6 X5 |# i( }+ H
or al, 1
. b0 b8 [/ c+ p5 _% S; o mov cr0, eax% H3 t, S2 A+ e, G' o" y; K5 t" o
' d# u7 h: W- e9 i; b( H& p" B$ { jmp pMod$ X D+ J, |- {) Z$ q
pMod:% t3 r2 j+ M0 m- C, U; \/ @
0 h" q8 K# Z$ F+ z0 v8 n( Q, {- v mov fs, bx7 i2 q* j& ~; r# p
mov gs, bx2 V4 u4 g, O3 Y) j! A
and al, 0FEh
4 Q5 J3 M# a9 ?9 C% R! K+ g1 J mov cr0, eax
/ e. A3 }" B; s! t& h2 L ( K8 h5 s! u( t+ y. S
jmp rMod# ]! k' q3 U! J' D6 s& Z' t
rMod:5 s- ]9 W, u- i; T- m& ~" f' p" Y
" R% P1 a/ L7 _) |& Y mov ax, 0
. p( y% _$ b& B% [ mov fs, ax
1 ^; c6 o* }: K6 e mov gs, ax* q6 A$ A3 |! Z+ W" b. W# w
. E) w8 G! W F* r' n: _) I9 c0 g
4 J/ K3 h. y d9 l: K
4 s5 N9 [+ G: C sti
8 x9 _+ K/ }* k9 ~' } ret
# [ [2 `) e' C o qSet4gb ENDP
0 k6 _7 g u0 y s
! R; ~: @+ r% B6 y ?end main |
|