|
|
Hi 各位高手好
, h' }4 Z$ x: j2 {以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。& A, d: j, E" }# j1 H$ {/ }4 W
;---------------------------------------
5 C) }9 A5 I: K9 e- ]" s
& h5 v8 R# a8 G: G.model small2 t2 c9 c: z e* P3 K/ e. C2 ?
.586p
9 V! u4 ~& H; Y5 w.stack 8 V2 n; N5 J$ \) m0 [
/ @2 C! a' Q: L- Z! o.data) n+ {' ]$ I8 j! \
D* Q: L) R7 A' eDESC STRUC3 S: o/ \+ |+ d
LimitL DW 0
_, f/ `* l6 P/ M1 K0 @& f& e BaseL DW 0
) A9 P; f" K" n C- v+ C BaseM DB 0 & D7 s# t7 _& x4 a
Attributes DB 0 ; Z. @ X$ r0 x, z# Z9 C t$ u. E2 V
LimitH DB 0 ; e! M E, Q, _
BaseH DB 0 : x4 Q5 z! ~, A+ ]4 S
DESC ENDS' o6 I4 I( [3 a
7 |& g6 E& V; o0 @0 wPDesc STRUC
+ A% R9 W( F9 u/ {1 Q W% h Limit DW 0 M* T; m7 u9 l( U V7 T
Base DD 0 9 `- ^' ^/ A+ H T3 [ s7 Q
PDesc ENDS* V" o7 H7 b' V# s. n6 j; R
# R, R, Q: i3 n/ w6 h9 RGDT_def Label Fword
7 ]+ n8 P6 N/ O$ l9 V" U- j6 {Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>$ i$ b2 n' @3 U& @6 E$ E r
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
7 [; V6 e/ X( p9 x5 c: S; ~9 t
6 N& ^6 `3 x: d- S9 @7 e9 hGDT_Addr PDesc <$-GDT_def-1, >
- m" Q/ o0 t5 Jcmd DD 255(0)) u' i) J/ Q0 o+ g& q
; Q. k& |- W5 ~4 V! F A+ X.code
: c( ?2 J7 i8 R, r7 K; f, J: _( f0 dmain proc( }. d. S9 @& [ W- ~, |+ {
call Set4gb! z d0 _& b4 R/ p; _; w: @
/ R* L9 ]+ B: \" [# h mov esi, 20000100h% J& |. I- E7 x* u# d+ W5 y! I
mov dword ptr fs:[esi], 055aa55aah
$ d3 i9 y$ z) j; [ # ?# \, N: C/ [! P4 ^1 m6 t" N
.exit
( v4 G- n3 @: [9 j$ x! y( P: ymain endp * h: d+ V/ Q, a7 d m5 i x! @/ \
6 V+ U# e5 q6 l! |
Set4gb PROC NEAR
% `3 B- [2 |9 O5 J$ a; o in al, 92h% A. j) l8 @0 C
or al, 002
5 h2 I1 i4 j2 B4 P E- R out 092h, al
5 r3 r# O& P" @ out 0edh, al& b- w, O, H: `8 m f/ b3 Z' _
) }( W2 w. L( L cli1 Z: C! ]( L: f- s
9 Z) p# l* H( h8 v3 ^- I( C9 h mov eax, ds
+ P; E i8 V- C$ U! p$ n shl eax, 4
3 a+ q' A& \5 @ t5 X+ u. u' Z3 f xor ebx, ebx9 H. i' b2 {6 B+ ~) g
mov bx, offset GDT_def
: [$ u) |. _0 f* O# } add eax, ebx! a- B) h6 F& w M0 ] J
mov dword ptr GDT_Addr.Base, eax
: j ~7 |! Z& n. y lgdt fword ptr GDT_Addr) m) T0 @0 ^+ x; p5 k }% H
# L5 A& }2 N+ }5 | mov bx, 8
X: [% G2 I' v8 w# f4 ` mov eax, cr05 A; J( W" d# p- O( ?! n
or al, 1
( Q" I' I! }) [ l5 U mov cr0, eax" Q* f; [8 z9 D, Y' b. D
. k( _9 G0 b. W7 W
jmp pMod4 V2 X6 x6 W: `+ R0 ]
pMod:
/ F1 i: z6 _+ {! @# }! k; w6 x
$ @, O" r M0 ~ mov fs, bx6 R- o$ y: x9 R a- X0 X$ P) e) F! E
mov gs, bx
- ?6 }; Z+ B4 w- H$ j- C; t3 T: |: L and al, 0FEh
1 H: V2 B+ m/ M$ _) o5 U. O6 u- K& p mov cr0, eax: u2 m$ O" x1 b- I
- s3 s2 ] I" ^+ d. E jmp rMod% u6 g1 p6 M9 r2 B" ^& S: k
rMod:
! i7 Q, |; ]. _7 R. g' C
9 V9 b! I3 o$ u' y/ n$ ~, _ mov ax, 09 h4 ~. p9 _" T8 j" z/ N- L: _
mov fs, ax& W. v, m+ k. ?2 E* I% o) x
mov gs, ax
! }5 L3 {! U4 j* _) k5 Q- i2 X' d 7 m! r6 u& q/ p# A
5 I) N" y% C. W
4 N" j5 B/ b5 ~3 Q0 ~ sti
- P6 L- H5 c- G U F0 x* s ret ]. h7 I5 l0 p0 ]9 u$ v
Set4gb ENDP
$ S" b7 R5 b% a 7 c3 B0 B0 W0 d0 B
end main |
|