|
|
Hi 各位高手好
4 \6 W u& V, ^5 N( |! l6 s( [. T; V以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。- r( v( Q4 C0 p! O
;---------------------------------------* C1 s3 g. r9 M
$ F. b* `5 `+ w* B" w.model small( u9 i/ M+ F D) I' G% }( P
.586p4 j9 @. \; T& {* {% w
.stack
2 [/ M9 E: ~0 C6 ~( a: m
/ q3 A( r" B- o$ O9 z9 c.data# U/ K% K& p3 ?. T5 U' k/ z
( Q0 {, n2 o" [2 s$ BDESC STRUC& ^& [' T- K1 R* ]
LimitL DW 0
" A* L4 l0 @, [7 w( H8 ~3 A, [ BaseL DW 0
8 \0 J1 ^5 r% h) P6 Z% g2 x BaseM DB 0 - v7 s* E4 g$ [% u! G5 N- x
Attributes DB 0 6 Y9 p2 K& s- |/ c' f
LimitH DB 0 $ a! V4 r: s6 |" M- v5 V
BaseH DB 0
- r0 V/ x8 B+ ADESC ENDS
' s6 v1 D( s: M" W* [/ Q
% D6 v6 e. j3 \0 M6 b5 zPDesc STRUC
/ \! w3 [6 x( z6 c" \% D Limit DW 0
5 d% h0 [. Q! t7 l& t9 _( Z Base DD 0
( e( l0 m: M4 B" o# q7 GPDesc ENDS4 b2 e2 H5 S1 c- |# Q. ]
% c+ d. @. w! W; p9 \' ]
GDT_def Label Fword
& V4 C9 t+ t. vNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
# Q- [1 [1 `0 D( ]Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
+ ]2 c, W8 q2 r+ i9 o" u% T- p4 ?& d6 p3 E$ v4 @
GDT_Addr PDesc <$-GDT_def-1, >% Q, N4 E) d/ [: b: z% k
cmd DD 255(0)
- ]" Z! B& ]3 o) \0 R. p- u7 W) U$ r* U; q5 `3 l9 z
.code
* b8 d9 S4 q0 d- n4 [! P @& Mmain proc* u. W, n. b8 b7 j1 @/ l$ M
call Set4gb
X2 o3 Z5 e- U3 s" d3 k& g) V8 r9 @! t. q" Q% H
mov esi, 20000100h1 q" r4 _. @& h) G6 D9 K2 C! }
mov dword ptr fs:[esi], 055aa55aah/ G; P% ]+ N' p0 W, \( S
5 ^9 ~3 _, u' J; r, f0 f* `4 R .exit1 O9 r5 e, t4 T. ~2 q, l2 }* [/ z
main endp
/ w. v) }0 V0 a1 v6 R, m9 ]6 X
4 x; \3 u# r/ Y& f$ p& qSet4gb PROC NEAR
3 h7 s$ v; j: C& q* G/ L in al, 92h
+ t5 J9 m( j9 }4 D7 H or al, 002
# n" N# g7 `6 u1 { out 092h, al8 I6 s( b/ v/ K& G
out 0edh, al( y3 _; L4 T7 b C' }( |
3 ^6 f; S" k/ S' o* |
cli% ]: P. g4 g8 c+ J4 i* ^
% k' X+ O" v6 [! E
mov eax, ds
3 e/ O1 A( o. s* Z shl eax, 4# y, H% o& u, ^+ c y
xor ebx, ebx- O9 W1 z3 U- ^1 n- }% u
mov bx, offset GDT_def
4 W5 I. K# l V* C3 @& P8 C add eax, ebx
: X' q p5 h% [ mov dword ptr GDT_Addr.Base, eax
, B- p' y# H$ O3 `" F( F lgdt fword ptr GDT_Addr, k2 C% d$ U; W" O# u& }7 X) Q6 C
1 `: N4 g S4 W1 H; [, |) h
mov bx, 8
5 f- b0 }" `, L `7 y mov eax, cr0$ `0 p: X# C! b. Y/ y
or al, 1
/ |2 Q$ k( ^8 I5 g* } mov cr0, eax( X+ O, h2 X6 e m# C
: C1 R+ n, P$ O0 ] [* l, R& H2 n2 R jmp pMod# I* O! U" V: b3 G) F8 x
pMod:
/ c! J3 C& \- R4 \, s/ g: g8 o H) Z9 _* ?, _
mov fs, bx
7 z6 L$ t, x, O! ] mov gs, bx
v! {5 I* _2 h% H and al, 0FEh5 w1 f; p) ^$ C1 S6 d: o! N7 g3 @
mov cr0, eax L7 U* L K9 x
U* T2 _& R8 G/ o# W8 N0 N
jmp rMod; n' Z2 o" M/ b) T7 w W2 Z' P
rMod:" V' W6 ~/ i# z3 ~5 ]. _$ n4 @7 ?
) L. a5 ?0 _% X5 r' e+ n mov ax, 0
; b1 I b6 \ ^& j mov fs, ax
) p6 Y9 H$ ~% R; M4 S mov gs, ax8 f) ]% I; Y, c% B9 i: b
5 u: i, t/ D- c$ E7 Z& K ; {- _; q% C% m6 K% F6 e
" I- q! S4 _. b+ b sti* k9 K* Q8 Y0 h a
ret9 p" S* o, Y( \' V5 o# g* R& x/ z( \
Set4gb ENDP
0 u7 @ J0 ]2 n 5 o" {& V: g$ }* b" e5 |
end main |
|