|
Hi 各位高手好
' D' |% g; I/ c: \. d以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。; N4 W( Y6 a% @
;---------------------------------------
/ }5 H# v; C6 ^+ F2 P# j6 _( V0 u6 s5 Z2 S
.model small! x3 Z4 J9 w u; U U& S' @
.586p
5 v: G0 \& q+ K.stack
7 Y% b+ d$ ?3 W( e2 a7 T. T' S: f
: `1 K; } A1 z+ s# |.data
" h# z" ?* t& H' j$ k. A
- {! F* Q" M, F1 FDESC STRUC- @: Y: l" z- a# u% I
LimitL DW 0 ! Q4 e% u5 y+ t$ c" b
BaseL DW 0 - \% p5 q5 P; t/ D' j6 w
BaseM DB 0
3 f5 c' l F% ^3 e. F1 m* m3 d Attributes DB 0
( `& s+ w+ }. g& k LimitH DB 0 . K% Q5 W4 c5 H
BaseH DB 0 * S, t( _" B# x) t* i6 W+ d1 x
DESC ENDS9 P+ A2 H; p* H8 u* D$ a G
$ a$ k V, Z, p/ J6 O& TPDesc STRUC, b7 i% w [$ y' x$ K9 H# O
Limit DW 0
+ k+ c5 n3 \, B* J$ c4 I% G0 k+ z Base DD 0
1 U& q0 p: b3 v: l( u& H; f$ DPDesc ENDS) L2 @$ n+ i; {) J
6 {3 D; ~4 \& Z, J* }: M. B: U+ V
GDT_def Label Fword5 ?4 N4 l+ J, K6 h' D
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>. L9 W2 I3 z1 I" R7 K0 b, Z' ^
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>; F3 }) U) s% W. D$ L
9 e2 ~$ e2 {7 J% E' A1 w3 {& w
GDT_Addr PDesc <$-GDT_def-1, >9 U. v4 O! u+ C% H X( m
cmd DD 255(0)
# i# y+ K& @( S' h5 Q$ G& B9 q: z* _0 A! T( x# k8 u) g* ~
.code$ X% t7 H4 p% B7 J3 p& O: b
main proc
3 k. n6 f$ W1 ?/ Y8 o+ C call Set4gb
1 w4 [3 e& o! X5 r d
! g& Y4 T3 @ L3 _. j7 `3 Q mov esi, 20000100h! d8 K5 w: @0 [: y" Z: X
mov dword ptr fs:[esi], 055aa55aah
2 |5 N' h& a& R* Z: \- Z* A! U# z I: W1 E$ |# q
.exit1 O- ]. o0 i. i" ?8 {+ J
main endp U' o( N: U! M" `# D3 e
( Q0 b& A; G6 ^' R+ eSet4gb PROC NEAR. {( c7 Q9 L$ f1 a! Y+ s9 N0 y
in al, 92h0 ?4 Z1 V) H6 \ l2 U7 V- a! u
or al, 002
( D. ~7 b9 G( ~) W O9 C out 092h, al
/ f( h) a2 j) @+ `, f out 0edh, al
- {8 |& q& D9 W W' P2 R$ Y3 [ h5 P1 _( d7 u; a' C& j9 c
cli
, B3 {1 P! e1 }# \
$ b% L- S) q$ Z; u/ a; u0 e mov eax, ds
" v, Y4 _3 a+ L/ {; O0 p shl eax, 4
! ^% f0 h: {2 T. G" ] xor ebx, ebx5 P* x4 @" i6 H k. ?" S0 {
mov bx, offset GDT_def1 b* n3 p6 j& A
add eax, ebx+ n G" O5 N2 L" L d, [8 n: r, j
mov dword ptr GDT_Addr.Base, eax+ A) P) _! k' D5 Q3 n+ L
lgdt fword ptr GDT_Addr
" h/ V+ S1 p, B8 t r$ e; n0 Z+ W5 i& e" t8 ^" L
mov bx, 8
- S# K4 t" ~8 C. Q mov eax, cr0
1 P E2 A& v1 H! K4 ? or al, 1) u. V/ t% Y u, o0 X
mov cr0, eax% p2 b5 _) Z3 t1 u
2 r) L; {6 o* t
jmp pMod
' ?8 ]& a8 b% D pMod:$ v; S8 l. B4 L! _) Z
2 M) R5 X& u5 l' a7 B, q' N d mov fs, bx6 v! f1 H! j( d) T1 i
mov gs, bx4 L! m8 W2 R8 A) T+ g$ a. A9 z& }) Q
and al, 0FEh
2 Q9 C8 E0 X1 S& P mov cr0, eax
" g/ V% r! S" k; x" S# G \7 Z . I! ]% t4 ^' u; T* ]
jmp rMod
8 h% f# \8 ~1 b5 J rMod:, |: Y$ B$ v/ T0 C7 L. _( e
* A) O; k: E: V4 t' L4 A2 K mov ax, 0. ?4 {4 k0 \' V2 m
mov fs, ax7 n1 s9 g' v2 l" f* A3 n& A" N, W
mov gs, ax
+ U5 k- P b9 p: S4 N
" f0 O- W! C' l: N
9 o* o) o Y' p1 m+ A) [6 E& b! j7 ~$ K' W0 v% }8 o
sti
1 e9 ?; V$ D4 ]" C ret8 Y) C- h8 j" A
Set4gb ENDP1 D2 U1 f# K4 h
" T' `3 q9 g. ~8 _4 J- ]$ ]/ t" T& W
end main |
|