|
|
Hi 各位高手好
{5 Z0 f9 q6 w0 S, e$ C/ W! t以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。" k; d: _: ?& e( h e9 o
;---------------------------------------; Q5 n# K) @ |) h! |* K( A
' E! \8 b$ e, m: D8 [: I.model small
+ W4 b3 g. s! v2 F- V) @.586p; E. R, N1 T+ O) P* M2 v4 K
.stack 6 J! J( W4 m' ^/ K/ ]8 W4 _& C5 T0 E
+ T* i; J3 i4 v/ b3 E.data6 t- M4 Y% {" l; G. a
% u7 m# W! ]1 J0 u. v, q8 R; Z; Q
DESC STRUC
4 {0 b7 a9 \ `$ N, ~% o LimitL DW 0 / A2 h7 w6 g3 ^5 l
BaseL DW 0
r v! f( W8 e' }. O2 R; l% d0 j1 e BaseM DB 0
* R" z/ h' R$ p" F Attributes DB 0 i0 L9 `" J# E; M W
LimitH DB 0
' t6 J0 T4 D$ Q; w8 M BaseH DB 0
2 b8 v7 D1 w% Z6 ~DESC ENDS
4 J! l" W, [* f6 M
" [9 E7 [$ p2 X3 sPDesc STRUC
5 C0 f- M8 S1 @+ i% p Limit DW 0
& U# M+ O) V. f Base DD 0 5 O% {) Q" B. q$ h7 _
PDesc ENDS
% {5 y+ s2 ]) B, S6 ~7 S) O
6 B: ~$ G3 k3 {GDT_def Label Fword
1 x2 ~6 z$ B9 i. }Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>: S+ D! D, }% L% @2 ^
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
, ^8 j- m( k( d" s4 ~8 A1 R* y0 o- `1 T6 E" M2 p L
GDT_Addr PDesc <$-GDT_def-1, >0 L' A4 ?( j3 ?$ F
cmd DD 255(0)
. D4 Y1 Q. f1 [/ \4 t8 N- a9 W% y* |: `9 h. ~! [( O: E! K
.code
7 R" }( v6 x0 H3 B6 N' X0 }, @7 Qmain proc
! H: W, g( W- ~, \- n- G G. D call Set4gb' ? G, X: s( {# W0 T$ p
7 h4 s, v# z! ^
mov esi, 20000100h
( z; l! _/ @4 @. J I mov dword ptr fs:[esi], 055aa55aah
/ {, p/ V4 _* m# q7 o ; c5 K5 Z! N+ Q5 ^
.exit
' n# l9 z* U+ ~main endp - R- i; z2 S; t9 N
5 A; w- o: {0 @; `- A9 d( {/ XSet4gb PROC NEAR
0 S. H6 S" H9 t3 G7 c2 _7 Z, } in al, 92h
1 P2 `$ v: @+ u" Z3 F9 r3 ?5 S or al, 002
( h" Z1 Y& e4 f7 l/ d( u out 092h, al% E+ ? V+ Q& \% B; R" U
out 0edh, al
7 E D1 A+ I: G. V+ t6 |! g. D2 {5 W- W& \
cli
: ~$ |" J( ]: q- F3 j r5 A: j1 Q, W- ~8 c. h w; Q% z) j6 D
mov eax, ds% D9 G+ D- F9 S# h
shl eax, 42 b, U& d2 M( K0 c% d
xor ebx, ebx
G5 ?% u% p1 C3 j mov bx, offset GDT_def8 w0 k3 f- Z' D- k% u2 Y4 m
add eax, ebx" o& Y8 q& q% J" v, n) [- [: U. }
mov dword ptr GDT_Addr.Base, eax! z1 j8 o3 n+ X* [0 |
lgdt fword ptr GDT_Addr) J1 V" k( W- N7 X
2 A8 k5 F, }4 `5 F9 p! j" Y
mov bx, 8
( f3 A6 B) \( N4 i5 e* D$ k mov eax, cr01 U3 o3 v) Q& ~5 M8 |
or al, 15 X* Z7 S, @& o9 C8 P3 V4 m' V
mov cr0, eax& s- ?9 [& x6 @# Z7 l
9 q, ~. G/ ]& {& f! p# I! T4 `
jmp pMod
( p' x$ ^) k6 I9 }9 `" \ pMod:
6 d7 H5 R& d8 e3 _* O( k1 K0 E5 W. j" |0 g# Z
mov fs, bx
* [; _' x8 n# n* D mov gs, bx% u$ i+ ~7 R6 ^2 I& Q6 t2 h9 h
and al, 0FEh% C/ K: c7 Z5 k) d
mov cr0, eax' ?4 t1 c/ k3 v! o3 \
& d3 J0 p8 |8 Q% L, t jmp rMod
# a! B# G) P- m rMod:
4 `' L0 ^1 p# D# P+ R# |! y
: C! `, n4 N2 m4 f: m mov ax, 0$ B3 x0 A- K( M v3 A
mov fs, ax, @! A5 O7 {. |3 h p
mov gs, ax4 \( o2 Y/ c: B( P
% x/ z5 _, W; U3 j* e( Y& M6 F ) Q* Z$ e: n: u) l% y. c) B
' I% R) V* ]3 w7 c7 M! p
sti' a8 a3 E, ^- b- l ^ x p
ret
7 U0 P& Z3 \* Z0 Q- kSet4gb ENDP& C5 t: h4 c# F% j' X+ L2 u
: ]' C' A; E. d$ M) P3 v
end main |
|