|
|
Hi 各位高手好. _+ z8 f( |& b; \4 L7 \; w0 v9 [. i& q* |
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
3 j. }" L; `4 p4 J;--------------------------------------- U8 R, N* A" x" J7 K" P! [
+ U2 R1 g% Z/ M* D3 N.model small
8 w8 _8 l- L6 H+ e: f.586p8 o/ T" V! u, {% D+ Q
.stack
6 m7 k' Z: f" t! c% Y. @: K! h5 v
# O6 u3 Y2 A4 a/ z$ j9 z.data
; f3 ^& h7 e% s1 Q: o7 t
3 z! K) X0 U7 a5 Y- `DESC STRUC# ]7 u/ [* ?7 q9 K, M7 l
LimitL DW 0 3 F% g! `) t3 `0 Q5 b# }
BaseL DW 0
- j* }/ m* m3 M8 Y( _- _1 P" O1 m BaseM DB 0
: X3 k6 X- F9 `1 N+ A, T Attributes DB 0 , X- |: t! R) V( f3 s+ `; \' N
LimitH DB 0 * N( F4 n8 [! j& z: ?
BaseH DB 0
( J% f. X2 {2 p. ODESC ENDS
1 H+ {" F5 @; V6 G) ]
6 w5 S# H( `# \) Y3 [PDesc STRUC
1 a) f( t3 A4 w3 L& O Limit DW 0
% { F4 Q& o% O9 {- O U Base DD 0 % x* v1 N/ {4 n, ~/ T
PDesc ENDS9 n. T0 q" R. q
- U# r e: i7 O ~$ C* y
GDT_def Label Fword
4 h" q7 `0 l2 F6 pNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
. j5 P" [; z: d* o5 S. Y& K# |Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>: j0 s8 X6 z$ [+ x- h" D
$ B v' `( b* O8 V- U( v
GDT_Addr PDesc <$-GDT_def-1, >
$ B# x! _2 B' V2 c1 U# Lcmd DD 255(0)
4 {4 q& R5 F9 ]* [# A; \/ a1 C4 [1 h; T( K6 L
.code
0 y" T& z- O5 X5 D0 Xmain proc
- f) u8 K5 w7 L9 T. a2 G call Set4gb
, ~8 `# P/ g. E! |& O4 {
. z. w, ~9 s" x* a mov esi, 20000100h- g" v; V. w8 a! @& i
mov dword ptr fs:[esi], 055aa55aah. {! F( ?+ |& `4 M0 Z, s, y: i
! }. @* r* t3 z m% O4 M, e
.exit L. H# Z2 G' n+ b8 E
main endp
9 W2 |% b4 B& L8 u* z, x# O* w5 ]# v* c2 @8 `
Set4gb PROC NEAR2 n% g8 l9 V! i) ], f$ n. B- M/ [
in al, 92h
/ X& H- |5 k# G! N or al, 002
! b, d6 }9 {" o2 ?4 e; L out 092h, al
1 H" m3 u8 L" _5 i7 O out 0edh, al
( r7 s0 v' ?" c; R3 ~* d: C0 E
: b8 p. Z1 u# M, a |5 s cli
4 ^, J, n5 G( l2 B7 e) {; t# r- w/ g' ?; r" n0 {$ [3 D0 _
mov eax, ds
# l7 ]! \; }& o' f shl eax, 4' q- { S! [: Y. D. }
xor ebx, ebx8 T2 o# F* o& G# B
mov bx, offset GDT_def4 o$ S# N. S. D' Q: }) N
add eax, ebx t* S; ]. @+ X2 h) c
mov dword ptr GDT_Addr.Base, eax/ r& E) z3 t8 x; ~: }5 [/ e
lgdt fword ptr GDT_Addr# C3 Z8 u. R/ L- g, v
& w7 X7 x- ^0 c, O: h" m mov bx, 8
4 j* _5 b! q' U9 ?! J$ Z/ ~ mov eax, cr0
' \1 g0 |# n3 m+ z# ]& k9 h or al, 15 \5 x7 y9 V* m2 o
mov cr0, eax* m3 R! D7 @) E2 _7 W6 L( \
- A! z6 V; M' h; l* R jmp pMod5 b2 n% f1 `2 ?5 \2 ^9 f% N
pMod:
$ W; u$ ^# Y& K! W; _* O/ y- h. @2 l1 e
mov fs, bx& y( G; w4 ?, v0 |) W& d' T
mov gs, bx
: `3 f9 k8 ^+ G4 K and al, 0FEh8 V8 j. A- H% d' m0 t- |: O
mov cr0, eax
$ T! ?# S$ D7 V
! t" l a L; P9 }, v1 K jmp rMod
/ `. [9 y# G. J rMod:
5 \- y7 |$ A2 U6 K' {. s; v$ @1 F) B
2 { S! A4 }0 G0 `! _! I/ C5 t mov ax, 0
! B9 R; r! v( s+ A; B) d mov fs, ax! C: I! Q( \4 ]+ H9 p n; q
mov gs, ax; r1 o1 Z2 X- K' x d0 F5 C
8 r! X6 H& O" P3 i- J7 V- P
3 N2 n. z- u4 Q. k& u7 U
) y# ^9 d0 q0 Z4 W* x sti
4 @1 @8 j) ~6 ]! r& F( I ret$ i% w* o2 N5 s9 j+ @+ O: W
Set4gb ENDP5 [) u- f0 T( r; g2 ^* g% d2 N( ^
( X8 o% n6 ?0 Y0 S% j: i5 K% N) b
end main |
|