|
|
Hi 各位高手好
9 E/ E5 A( W; _4 w* E! m以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。- \0 @! z v2 A3 Y+ m
;---------------------------------------
/ F: ~* Y5 q( F& B
8 t2 |9 ^% u" P.model small q( j. N" ~6 {1 w, B4 E
.586p& k, u2 Z/ z+ e$ g. \
.stack
+ Q/ N/ i7 I3 ^' n3 C 8 `" G/ y9 k, I& z4 H
.data. n2 T* z0 Y- K, h$ b
9 b7 w9 J" {2 e( Z" e+ s4 w9 B* uDESC STRUC; `) N1 ]& p0 y, ?7 Z* R) h
LimitL DW 0 & Y9 W7 @5 s# q" [% [3 ?4 c: r
BaseL DW 0 2 m$ q2 i& L& E& G& Z0 _# L
BaseM DB 0
) o: D8 y" |8 q9 T- L Attributes DB 0 * u _5 \8 g; l6 F3 T/ I" ?
LimitH DB 0
2 K. G" ^3 |, q4 _9 [ i5 f# v BaseH DB 0
+ @1 q' v. K; d5 ?$ [/ C$ v6 M! G- [DESC ENDS+ ^7 n: P$ `& E9 n# I5 I3 @
+ }/ j; V4 V! l* E; \: W1 e" a2 w4 ]PDesc STRUC
8 W" U% O2 \" J: n Limit DW 0 . R# N/ J4 P, d4 A3 g1 a
Base DD 0 . r' F2 e) n, B0 m/ V1 c) X+ U
PDesc ENDS' b* x5 {. A. k4 E: M$ G1 O
% W! Y; ~+ V1 F. Y; B
GDT_def Label Fword6 Z3 }/ Z2 G7 [, a2 Y$ ]
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
3 ^0 h3 z5 M8 v2 y, RData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>* m9 k+ H: S8 F$ \! g
4 f2 m: f0 e7 y8 M
GDT_Addr PDesc <$-GDT_def-1, >
: m1 ~; O( P: ^. e# gcmd DD 255(0) x! E0 O; f9 o
3 K' U4 N# W n3 c& t4 K
.code
7 b4 N; d, u* M4 X$ p. \6 tmain proc7 W8 U+ }9 {+ \3 E9 v" t! t
call Set4gb L9 u2 G; T% w- g2 m
# {3 S- D. O" m# I& T+ N mov esi, 20000100h
7 b! e; {4 }8 i( \ mov dword ptr fs:[esi], 055aa55aah
# r* `& O: Y- z % d( j, c" p. Q1 O+ \6 }9 v3 d2 |, Z
.exit
! }! P, o# j& C# u7 z7 omain endp ! ~, P3 ]: [ C! G" a
+ a8 B5 \4 h$ H" w
Set4gb PROC NEAR
& X/ ?: H( ?* Y5 j in al, 92h
. V3 k/ c6 I; R/ g0 L or al, 0020 r" X! h! f+ v" x# a
out 092h, al
4 `! u7 M4 q C" o1 h$ B6 k out 0edh, al
7 i$ C# J3 x0 z3 q5 I j
- m) e$ Z6 u6 b- W& f2 N& ?2 E cli
: F+ L: o7 ?/ k/ o! G: a" ]1 R2 o8 W9 k9 d9 A
mov eax, ds& ]) e7 d6 C: ^6 |. y
shl eax, 4/ _7 N8 a O+ K' f" b4 m, o
xor ebx, ebx( a# }* T# y% P$ ]% D* [
mov bx, offset GDT_def
9 |7 f; G* h( A add eax, ebx( t8 r# s, t+ a. Q0 b/ V; I: P R
mov dword ptr GDT_Addr.Base, eax) U, Q9 O6 M% Y. k
lgdt fword ptr GDT_Addr% ~: @+ H- I2 W0 f$ u' h9 [6 z
- l/ m; {# `. y, t5 X( O1 F
mov bx, 8. ^) v& t+ ]3 Y% O9 I8 m7 h, s
mov eax, cr0$ V3 h: ~3 Y" L/ C
or al, 1: I' j$ W$ \, O4 x& F7 t4 E
mov cr0, eax
7 ^- I4 U- }6 s6 k) a' g. R+ T. q. G; s& l* i
jmp pMod
2 v9 L' j) Y( o8 q% Q pMod:3 z' Q2 Z+ _6 Y0 i5 t" z
8 v1 p& t" y5 I% H2 Q
mov fs, bx
2 d' R3 E* V. C6 t. C4 h S mov gs, bx
# N% K) D7 s5 e# `4 O and al, 0FEh
' E* t- r7 E+ m l mov cr0, eax
- r; o. ^% h) [) z3 W) }' G8 A
* ]2 \* g$ @1 }6 i jmp rMod1 s8 m- _5 {/ M/ @% A
rMod:
6 q+ r5 k5 x: @) j5 C6 W7 S; N- z1 B( P+ W5 F1 W1 V3 U
mov ax, 0
9 w( P. J" N4 V+ ]% s# R" E. u3 b2 Q( V mov fs, ax+ `$ m9 G( g7 V$ V
mov gs, ax
3 o6 R+ @. ^& T4 ]7 S
; ]$ s) L( m7 E . D; ?! _# f! l2 ]2 p
% k1 {/ P. e3 e( l. ^ sti
2 h) D6 u" O4 Z7 n! F" r' E ret2 y; x) y- _$ X; O' Y2 k
Set4gb ENDP& j; F2 A0 r% M) l! r. Q
7 y4 B- h/ K3 ^7 {* A
end main |
|