|
|
Hi 各位高手好
' L0 N, a$ h/ p* j2 [+ o以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。% C+ H+ P `. j" i# `- Q2 A! J# ^
;---------------------------------------
- D8 f& m: X: S' w7 Y9 W& d$ N
* Q, l% {5 `+ s.model small$ t) z, Q3 n5 \6 n( o/ Z
.586p
6 [ H7 E* K: h* S. u.stack 0 f$ [8 F* K h( B8 t
) X& }6 R6 J( _.data
. G8 V4 _8 a$ G
, M+ u+ T4 s. E7 f+ S, S" W, o5 pDESC STRUC
) s# `9 E) I! u0 ?6 a6 ^ LimitL DW 0
. u# J7 w# l% R7 ^) {9 R$ R BaseL DW 0
6 p; v6 `. n ^! C3 D! R BaseM DB 0 # W/ W5 \7 s- P2 w0 a
Attributes DB 0 3 \- e$ B1 j! ]4 x0 C; |0 e" S
LimitH DB 0
! l/ E$ H$ M8 a6 c; n: }$ s BaseH DB 0 . f% ^; \1 W' [! a. G6 o3 @' j
DESC ENDS
: H6 j9 V0 ^" ~# h3 }1 k$ j
, O& [, O! C4 j! PPDesc STRUC" O% G( G# s4 Y" }9 y2 O3 w
Limit DW 0 : Z. S) O" h; P& k
Base DD 0
1 ~) q- l% S$ P; d( mPDesc ENDS- s! U( }8 S3 m, u( Q9 P) S
( b: w+ x- M# {# a MGDT_def Label Fword6 Q* `0 t" s$ ]; l; {- \
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
' j: O+ l3 ^2 \$ a# o- q( `Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
. X8 Y, s% { D( }
% g8 P, X, p" u! p1 }2 o0 PGDT_Addr PDesc <$-GDT_def-1, >- k- V( J" l, M- N4 P; V4 y% I
cmd DD 255(0)
3 r q" z, U( F0 L5 `8 U# ^3 B& B. B: t9 r/ b+ i9 m* x
.code
' I, A5 s p: f6 cmain proc, ?, Y. Q1 N# r& `& D0 d
call Set4gb' c9 y A' o/ j
* O3 _& D! Y1 F" @
mov esi, 20000100h
( f$ Z: @$ N4 R. Z, y" }2 d mov dword ptr fs:[esi], 055aa55aah+ @/ U( E7 x& n" }+ c4 Q) O
4 @6 [& s0 U; q3 E, c9 r+ F7 \
.exit
3 s( B3 i" K$ C, ~0 H* wmain endp
5 X# E4 p: J8 _, C5 m
5 y8 O) n7 X& h o, n# X$ i& ^Set4gb PROC NEAR; n( N# F# H8 p! d. E5 e1 H0 `
in al, 92h" l5 a* ~4 X. t8 o& T4 h: l4 j
or al, 002
6 f" c; \* S. B% u5 U, v out 092h, al+ U3 A I3 |; Z; ~
out 0edh, al) A4 f& c2 m" _- ^
7 ?( |, Q+ c% z% o: ] y
cli; I7 S+ N6 U% U
) g& u& X0 b1 B$ L9 k& R! q9 b mov eax, ds: y4 r# q& ]( [" k; H
shl eax, 4* ~, o' L* w! e; w6 u
xor ebx, ebx7 }3 D% `/ I. G; g! J' u6 a
mov bx, offset GDT_def0 E i& W2 }6 ^: H* d) f
add eax, ebx
7 y9 |8 Q! [6 {# t" C3 {" g# { mov dword ptr GDT_Addr.Base, eax
) d& h; J5 W# O9 [9 f* n lgdt fword ptr GDT_Addr
* Y" ?# h8 b" N' g
$ S/ p' |& s! z+ s E6 @% z1 w mov bx, 8
e3 b. ]/ W) a3 ^7 P, t mov eax, cr0
+ Y% p. L# O9 d' z. x or al, 1
* q; u! U$ |' p/ u/ `; @ mov cr0, eax
$ O1 d( r/ c0 A
* U8 y( ~) N# n! C jmp pMod
; P" B# S9 H/ d7 U2 Y, Y pMod:
8 T5 V* i3 r+ d
8 Y v- N# F% x mov fs, bx
. P" j# ?4 q" N! ~2 l mov gs, bx
' L- h6 h/ x1 }) x1 F4 Y/ @ and al, 0FEh
) q5 i0 f- {6 `5 c" f mov cr0, eax" p6 b: v& e8 E1 S8 ]
3 e- ~- x- N: G3 ^: Y# l jmp rMod" ], m9 }; I$ k7 n K+ A
rMod:0 I& N4 ~, _# m) g1 @) Z
+ l0 L8 f7 \+ k$ ?) Y% @5 i6 H# E mov ax, 0, a u( M9 Q8 ^
mov fs, ax: X8 U t. A& I. N/ l
mov gs, ax
5 K/ A" [7 @) y( R! X* U2 Z ( l6 r2 M7 p6 q0 G! x# f2 v
. K- P3 E. @ ?' t6 `
0 b1 P7 w3 G& f) J. w. A2 F sti# Z. M1 u. z* a, b, \
ret% B1 A' U) R- X$ T7 a5 Q
Set4gb ENDP
# p3 [/ Q% } q9 L 1 B+ z/ \6 B; P3 H% S( v
end main |
|