找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 6779|回复: 0

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)1 ]7 M# X8 n* @' I. v& E3 G4 M1 r5 b
9 @7 x; B% h4 I/ f
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'8 |- i8 ^% M  P* C
/ A2 m  w' d' [8 m- k) A6 M3 K
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  8 o! e! U" f( v3 g! @
( ^: }" d; m6 _& ^/ V4 c
.model small
5 g$ s3 ~$ d- p- _/ Q/ X.386p
% {: f1 p% J- G# L9 E+ ]DSEG SEGMENT USE16'data' 6 q3 X* J/ u) {% ~3 P
" H! a" ]4 P! D& s) u/ d4 V- t( ~
DESC STRUC
: m! f- a& I7 h) h! x2 U+ d7 j     LimitL DW 0
7 t* Q. H- n: N: ?  {' N3 Y     BaseL DW 0
  i) s* N. C, y: z/ h     BaseM DB 0
' u$ k7 L6 F8 F$ l2 F     Attributes DB 0
' O( ^5 ?3 b& O. m3 p8 X     LimitH DB 0
  \! @$ L9 x$ `8 z) G) `2 b     BaseH DB 0 6 F4 ~9 H1 Q7 A( t' J
DESC ENDS3 O. {3 F2 N# i
7 e: g# i$ Q4 B7 j; G0 D
PDesc STRUC0 ~" H/ a$ f' B/ O- g
     Limit DW 0
. A6 l# x! ?, `* I* }0 ^! }5 n' L     Base DD 0
, p' d. i2 w3 KPDesc ENDS; K: t( e7 E1 q" f

: Q! j( x2 @& ~GDT_def Label Fword7 ~  g# G* Y. i3 p: k
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
9 O- ^! D9 q( c% o3 k( ~Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>% V! t6 c6 T! p* J2 v9 l) V
GDT_Addr PDesc <$-GDT_def-1, >
+ K: R4 D: J9 x/ e/ S8 Z, \5 y* x( E. T3 E1 k8 R
Maddress Dword 09 I, Y6 K, T- h0 J5 P! W

8 t. ]7 f. r4 `DSEG ENDS 4 m$ Z; b, o7 f+ F9 ?
ASSUME CS:CSEG,DS:DSEG
( P0 g  z. f4 ~+ |: O/ y" p0 d% p- z& U& E9 z. Q' E; r
CSEG SEGMENT USE16'code' : d: a0 X8 r3 y) a7 @& `) O
      push   ds
* C. ]1 i# r* u- d' ~      push   es
# n# e! r- f" V* h4 p0 p) \      push   fs' s2 w. C* Q$ W0 q* K7 y# a
      push   gs' i( S# N& H$ W0 f4 u
      call   big_real_mode     0 H$ V% ]/ k: x9 k$ \
      call   Get_Commandtail
: V4 P5 g; L5 P      xor    ebx,ebx
+ [* y3 X: n" c      mov    si,82h- _; t9 _, s: V: x$ \) T
      mov    al,es:[si]
: g" W' i# h* ?3 U      cmp    al,'r'
% B4 g+ d; L- T; X/ T5 A) X, f  N1 P      je     R
) K, U. c; n) R      cmp    al,'R'" R( z8 l% p# m1 X$ v& x
      je     R9 Q, h. f3 B' Z! F
      cmp    al,'w'4 x) }! C; `6 }: N& @8 c
      je     W
- \; t+ O, u; {0 v7 o. G7 H$ t6 d0 @' v) u      cmp    al,'W'
% F( ]" n. P$ R# v1 z      je     W          2 Y1 z1 s+ t/ _2 r; d/ v2 @% o
R:- Z! e/ {- D) g- }6 H$ _$ ?5 l& U
      mov    si,84h
# a+ K: }7 L& u  C: o+ p. ^+ d      mov    al,es:[si]7 m* u: ], D3 S% j# u, S: H
      cmp    al,'b'( D3 I0 F/ h0 t3 L5 E' k
      je     RBT5 V, a. p# c: W, U% O/ c# K
      cmp    al,'B'
$ F* ~$ Y! H2 M+ U2 M  Z      je     RBT
& t( G/ o& u: G5 W2 z3 C- V' h# i      cmp    al,'w'3 K1 Z. ~1 Z: P0 v" ?0 {: e! f
      je     RWR  \6 l) f# `8 q$ H, F* g/ X
      cmp    al,'W'
  k) h; Q" H8 z. }9 a      je     RWR
. N. ]% S6 y% `! u; }0 I6 S& j" k      cmp    al,'d'5 W0 S* t. k# z6 P
      je     RDR
: i0 X8 _$ t# a: W  U! r      cmp    al,'D'5 M+ m0 ^: q# g8 x5 m
      je     RDR            
& x8 @& m* a! m- }W:      
, e3 p) n) g7 x7 o      mov    si,84h
1 {6 p2 N) F6 {) o# i      mov    al,es:[si]
& d( A% ?4 c+ [* e5 w      cmp    al,'b'
6 {1 f. S4 n: M, T: w7 c' l      je     WBT5 s4 F: o) Y6 i! A1 N, @: s
      cmp    al,'B'( `) T. k& o' `3 @2 v  A
      je     WBT
9 r# K* h+ y2 a. K( c( T6 F2 n      cmp    al,'w'+ T% M2 w, z# B' K5 W. i
      je     WWR8 p- W. Q, o! W
      cmp    al,'W'
) m9 x& d* w6 S      je     WWR
; L3 U+ r5 n7 {) q' O3 M      cmp    al,'d') i, G+ U1 q9 o% i: x8 f
      je     WDR" B: \/ ^4 e7 T) z
      cmp    al,'D'
  c4 R+ o! z) H: C) y% q# u      je     WDR# ]# r# c. {" k+ \, C9 J
RBT:
% q, ~8 b2 A$ y3 T; |( J5 n      call   PSP        
. r4 }9 v! r& U0 o* H      call   crlf           
5 p) F& x' f) W      mov    esi,ebx# m' p, S! K. C% z  `' n% O# u
      mov    eax,fs:[esi]# k4 Q  U- G) _+ L; e  b( }
      out    80h,eax) b& ?) _/ Z, `! [. q
      mov    ebx,eax
+ p  h1 o; X5 u6 J      call   _8bits
; |8 H# T& T1 F% P+ k, w. Y& K. |      jmp    Exit8 L! b1 N+ `7 ^8 V( ^( p# J
RWR:
- ~3 Y5 J' q9 J$ {, n" k      call   PSP        
2 o) E. C: n3 `! e4 O) ~: ]: a# K      call   crlf           ; J: F) j, G! r+ ]8 x1 R) ~: p0 o
      mov    esi,ebx
$ `6 _# f: M& P) F* W  t# [      mov    eax,fs:[esi]( x2 Y+ Z/ A5 w% C5 D& b+ n# `
      out    80h,eax
% I' O- V6 s$ _- X$ X/ [      mov    ebx,eax
+ e6 K1 k) i* a      call   _16bits6 _, [: k/ y9 a( C: }% {% ^  ~  E
      jmp    Exit
3 D; h6 M% V( g" H% I2 D9 KRDR:9 c. X0 ^: f- E/ N
      call   DPSP        
; I! _1 y. f6 k( [) B      call   crlf           1 C5 M& ]# {3 _, {6 A& q4 D
      mov    esi,ebx
$ w$ Q; f! Z* D$ I$ K/ E      mov    eax,fs:[esi]
8 C# g2 E5 o. d' H  V      out    80h,eax& h+ V8 g2 m$ L5 B
      mov    ebx,eax+ C- f6 W. L2 N- J) e4 M
      call   _32bits
+ V# O& O( l8 o* v7 i      jmp    Exit) `* y" U& |) a  H0 F. k
;------------------------------------------------------------------------------------------------
" L* _7 m& L2 N9 pWBT:
2 `+ O+ k, L, u7 k' n6 o! v      jmp    Exit
1 @- l, Y! o) y1 s  j: t! d/ SWWR:
( l' z) _, N0 ^! z/ _" a      jmp    Exit
; i' K' @9 Q9 y+ ?WDR:3 |& {0 P% z0 `) ]
      call   DPSP$ A: B  S( y2 a
      mov    Maddress,ebx      6 U3 f5 x$ G. L5 a, o) O) B
      call   crlf+ K% m  }7 t; n9 y6 x. z" J6 H' k
      call   WDPSP
. J6 Q$ Z" y2 S% c; s, R      mov    eax,ebx
, C! r, P$ M1 t! e      mov    esi,Maddress         
7 [0 A; K! ^9 G  T" I      mov    fs:[esi],eax1 |3 d' a- o( |' k9 {" z% J6 A  ]
      out    80h,eax
( B! G% Z. v" c. Q# \      jmp    Exit' H, n! v% H" H7 k
;------------------------------------------------------------------------------------------------       9 ~' n, u$ s% J+ Z
Exit:
  b8 B' l( u1 z( }) K# O3 c      call   real_mode     ( s; n+ H( K- O$ N* n+ C
      pop    gs
) M" s* V: g. b: m/ Z& U      pop    fs$ w1 b) Q: |; S3 ^
      pop    es
) s  S! D4 i- r! \. I      pop    ds      
) }- i0 b1 i* `* \, I0 O      .exit. z8 @% f' e( [+ y9 b# K7 K
;------------------------------------------------------------------------------------------------: O7 `" k& J+ H+ g# O
big_real_mode proc near
4 a0 a: g7 f% B2 R2 K" b      in     al, 92h% F% D5 H5 J! w- l3 v5 R0 J$ {
      or     al, 002# J/ a. v2 O+ j1 ?
      out    092h, al
3 Q. R8 p- b& M3 D      out    0edh, al2 {* r2 ?+ K2 i6 d
      cli
( `4 p' D$ c8 t      mov    eax,DSEG
& r7 i: n( u0 A      shl    eax, 43 j" p& Q9 H: \5 j& Q9 y
      xor    ebx, ebx
4 d( }) k! `" V- l" \* L6 F      mov    ebx, offset GDT_def) Z, {1 v7 {6 e3 N' y0 |* r
      add    eax, ebx+ z4 e  H, E2 {" W6 j# ]* m9 r
      mov    dword ptr GDT_Addr.Base, eax
5 @  c1 Y# Z" C, _( \      lgdt   fword ptr GDT_Addr; |1 s$ x% O5 W  G  V
      mov    bx, 8
- l: F* C1 F! j6 S) c3 |" E      mov    eax, cr0
! X0 n+ ?" c8 {' O: J1 K" R      or     al, 1
2 D2 o& R4 }0 X. j8 U      mov    cr0, eax
  f0 ]* o3 G: [# A. W      jmp    PMod+ G  U1 a+ O' @9 Z  B. A) d' |
PMod:
- k7 r$ p( N1 W! @) |3 g      mov    fs, bx- b; F& f' e6 i8 a
      mov    gs, bx
) r0 }3 c3 \6 e5 H0 i, `      mov    eax,cr05 ^- A3 U3 j4 i7 }
      and    al, 0FEh0 h; S2 u% b0 d  v3 Y
      mov    cr0, eax
% r1 T% @8 E5 Y* @' c1 }3 H      jmp    RMod
1 O/ _: R* |$ D' |2 d" d9 KRMod:) ]! A# ~/ y3 c' i, @3 I4 C
      xor    ax, ax4 ]: |# S# ]3 ^# u* |; b
      mov    fs, ax5 p3 o% K+ C  N2 k
      mov    gs, ax     
" {5 y/ ]  `3 m5 W      sti     $ l$ S) r* e: X) f3 b0 ^1 }
      ret% ?$ U/ S% D" j- M( Q& y) b! ]
big_real_mode ENDP( ]6 @0 k, e+ J! l: C
;------------------------------------------------------------------------------------------------
4 _) W5 L' f! K$ T6 ~  Vreal_mode proc near
; z7 U; L& c) h      in     al, 92h: Z) C* J! ]) T" A
      and    al, 02
) R0 t. j! `* g: M3 m* B      out    92h, al    9 [: U* Q0 r5 d  c  r% N
      ret7 ^+ e; K; ~1 V6 U
real_mode ENDP' b, Z5 D2 C3 c
;------------------------------------------------------------------------------------------------# E- Z% m  ]; X* |/ S3 e2 d
Get_Commandtail PROC near* U7 h% `* {5 H
      mov    ah,62h ( H0 |. F& Z5 A7 O* ]
      int    21h
6 V* |: A& y2 i# |      mov    es,bx6 z& C0 \3 W' i8 F: K, m$ x% m9 S
      ret$ A% ^! C7 L) W" D6 \
Get_Commandtail ENDP    6 s% `6 W" g- \% t5 o+ W
;------------------------------------------------------------------------------------------------
7 I* D7 x2 z, N; \& T& `, j; x( hPSP proc near
8 O, a7 }6 I" K/ F      xor    ebx,ebx5 T- m, X  }. z8 T7 {
      mov    si,89h9 G, k' [3 X3 h$ [; `
      mov    al,es:[si]3 Z" P8 o# [  @+ v! g. V9 q2 z
      call   Change
( j; k+ f) L3 O      mov    cl,4: t' t0 M$ V, O
      shl    ebx,cl5 F9 X' y/ r9 h: o; P
      add    ebx,eax
, O1 F, P5 c! {+ K* Y      mov    al,es:[si+1]
& q! d% {: a7 P6 E, |      call   Change
" j2 j  q4 e+ O/ T3 \      mov    cl,4; F' i% ^7 ?4 e2 R
      shl    ebx,cl
& n+ b* e3 _" N      add    ebx,eax
: D4 \. p% N( t4 |5 t7 a8 g      mov    al,es:[si+2]
' g" M: n8 R0 O2 {4 u$ q      call   Change
. _! T  }! ~8 v) p8 X7 Y      mov    cl,47 {/ t( H# V6 x. O2 U" \
      shl    ebx,cl8 o8 }( T) K3 W0 e& {" R/ P& |- p
      add    ebx,eax
+ o* y3 h2 N# ]4 d      mov    al,es:[si+3]
2 ]3 j( m& ^* T  ~% F1 U      call   Change' Q% w& ^$ H! |/ k6 l" m
      mov    cl,48 {! W& F. p6 \, v) a$ G0 c
      shl    ebx,cl0 X- Y* H" y) K5 u. a$ D4 t
      add    ebx,eax
5 C4 B) X; b7 g7 u% t9 F* I      mov    al,es:[si+4]4 ^: F! ^$ R- M7 M' N
      call   Change
5 T1 B" O# f: p1 N      mov    cl,43 N- [8 h; q) o* s& ]9 ~
      shl    ebx,cl
$ i3 E7 I9 d' P* h      add    ebx,eax
$ W1 W( T1 n0 |1 R% X  C: W5 t* v; `      mov    al,es:[si+5]
, |$ J, \. B, }0 A  T+ \( L3 p: z      call   Change
& m* y3 H. @( g. a/ C$ w3 f# U      mov    cl,4
7 X7 o- Z: k1 v4 U, g$ b2 r7 X      shl    ebx,cl; Q5 v; i' V" }2 T& q% I+ @
      add    ebx,eax
* y8 X" j; o( s! c8 m- K1 @      mov    al,es:[si+6]+ [' a# e+ R2 B" u" B
      call   Change
4 ]$ H) O0 X7 a      mov    cl,4% G$ K/ ^& P1 a# Z
      shl    ebx,cl* n) ]+ E# r5 P2 B+ c
      add    ebx,eax
' s& n1 z+ K' L% ?4 S5 S, c      mov    al,es:[si+7]
8 H$ E- }6 V9 x* V2 R& X% O      call   Change
7 S/ {6 F, H, T# g  ^6 o: P      mov    cl,4* x! D* A! v+ T# Y, n6 s1 c
      shl    ebx,cl
* g3 N* P2 B/ u: V: i( z      add    ebx,eax1 a3 o& \/ w, l' p! g: G3 k& g* T
      ret3 @* p3 @0 j6 j; J$ r4 }
PSP endp
: M9 m6 q. R/ k9 B! z3 f  y;================================================================================================, n2 G! r4 s: ]/ i# X8 O& X
DPSP proc near
) t' @+ j# l9 i      xor    ebx,ebx
" i( Y: p2 j3 J" w. G; h; e      mov    si,8ah  i8 v! r( ^, k' E
      mov    al,es:[si]: u0 i  ?/ _; R  {
      call   Change
) i# |8 M8 y  i! l      mov    cl,4- M/ W8 U9 G/ k9 z  c+ p7 |
      shl    ebx,cl
) ~" P( [" o4 A4 Q9 e9 t" I6 i      add    ebx,eax
: [/ c& Z, w4 A      mov    al,es:[si+1]
6 K, F: q0 E7 b& U& I. R" Q      call   Change
2 ?0 D' Q7 D: }% P1 Y& ?      mov    cl,4
$ J  ]# G' h+ s) A1 s. R4 i      shl    ebx,cl( X& R& I/ W) A) z/ D' u# m
      add    ebx,eax
1 }+ i0 A' m& r% q. {      mov    al,es:[si+2]
6 b  x5 j8 j- f- c! R      call   Change" T0 J# a* ^7 d: Z6 @# A  a
      mov    cl,4
, g4 S! W2 J" t      shl    ebx,cl+ a* `7 L4 d0 {4 J' F
      add    ebx,eax
/ k& P  @' z4 [8 F$ C      mov    al,es:[si+3]# |$ P) ]: m/ x; U& W6 a
      call   Change( D% m8 ]2 R2 O. A) a
      mov    cl,49 r* M0 K4 y. |6 v9 ?" x; Z0 L6 M
      shl    ebx,cl
$ R" `( i7 E" x0 L      add    ebx,eax
$ F& T: K) S) }% X8 F7 f6 _3 e      mov    al,es:[si+4]- f; `7 H/ Q1 W
      call   Change
- x3 W- y* P2 I- e1 y      mov    cl,49 |: M' `: Q( I8 _
      shl    ebx,cl5 _0 A/ V) M  V5 q: X0 V( W% [
      add    ebx,eax
' y- s. u) g  {" }: S5 T      mov    al,es:[si+5]
* _3 }5 E# _* T; v0 h      call   Change# D8 G) q9 ?8 x; M
      mov    cl,4
6 g' A3 k2 {# p6 p, `, r0 k, K* \0 T      shl    ebx,cl
2 t$ D8 M) Q4 W2 \& q7 }& T      add    ebx,eax( e" u7 L0 g0 L9 ?% b5 y& p
      mov    al,es:[si+6]6 q3 n) H# S( z
      call   Change
, r* i1 [1 Y5 P7 h& @$ B6 t$ ^      mov    cl,4
; X8 T, b9 H/ b; b  w. X7 O& ?/ D! m      shl    ebx,cl
9 D: q: v. F, r$ B& M      add    ebx,eax, S$ x7 o  L, O( @# f
      mov    al,es:[si+7]
9 Y2 h5 b! F4 B' w9 b+ A0 {6 C      call   Change
% \- ]! Z6 C. _& m& t- X) x      mov    cl,43 g* n5 r; b: t& T2 ?1 D/ V5 G
      shl    ebx,cl
/ O  w' u6 R4 J      add    ebx,eax$ I' {$ v1 F3 A/ r8 u4 g0 Q  P; k
      ret
5 m0 h7 b. D: x; j! ^) hDPSP endp
7 F# p2 Z+ ^( ?* E;================================================================================================9 @, n+ t: r3 k& G1 m# |+ n2 f5 c/ x
WDPSP proc near" z2 P* A% H4 O, S8 r1 j+ _7 @
      xor    eax,eax" z4 R* F" a) u+ t
      xor    ebx,ebx
/ I. o5 A5 t' }8 s% i# H      mov    si,93h
/ L' c; L, Y9 o. E0 \6 ~      mov    al,es:[si]
/ J- R  j* c& E      call   Change) y' a0 S9 u1 S3 q/ o. P
      mov    cl,4! z. m: ?; V; D4 _3 ?8 c. Y+ Y0 ?
      shl    ebx,cl, J2 O! H4 w8 v0 W. K, ]! x! c8 N6 ]
      add    ebx,eax, Z3 K2 v9 @7 x* y0 V* y
      mov    al,es:[si+1]
* A1 b. e5 k/ g      call   Change$ w% [8 z1 O) [
      mov    cl,4
& Z* h/ t5 @0 H5 q% H      shl    ebx,cl/ R  S, o# ^: ~" ^9 r6 W
      add    ebx,eax
! F) p. [5 u* p( r! K6 |" `      mov    al,es:[si+2]
/ l% Q% v+ y6 D) f; }$ Y      call   Change! x8 D% T' C& ?7 E2 z
      mov    cl,4
, ~- O2 G8 v/ G9 V2 i      shl    ebx,cl2 \: P& Z& A. Q$ J4 a3 r6 v$ a
      add    ebx,eax
6 q5 c# Y+ Y2 j4 o. P3 a( f      mov    al,es:[si+3]4 e! T9 r" B8 v/ J- P$ ]
      call   Change
7 h" N" ~& Y& v" O1 Q% {      mov    cl,4( v5 v% b# ]# F+ X, r1 @
      shl    ebx,cl# [, ?' g: J$ T& i3 z2 [1 Z6 N- q. K6 V2 C
      add    ebx,eax
6 O3 q2 M" @9 A$ q/ O% @      mov    al,es:[si+4]* Y7 ^$ P& p) u9 _2 U7 w* p9 ]; ^
      call   Change
$ X5 v/ w! k. U# J+ R3 q$ q      mov    cl,4" \# j( P3 a5 s" h* q
      shl    ebx,cl: E' `+ v! }) [' `, G6 K+ I  k" r% ]
      add    ebx,eax/ h, F8 I5 e, u2 i- O
      mov    al,es:[si+5]
0 s) z4 I" M/ ~- ^( l: S( I      call   Change! E/ h( r8 c7 B& d) v/ R! |
      mov    cl,40 x- H) e. c3 @6 a5 E$ m) u- u5 t
      shl    ebx,cl
/ R) \6 P5 ^/ \8 B      add    ebx,eax
# j  \' M+ x$ ?* u  }7 _      mov    al,es:[si+6]
1 K6 B) y! w5 u3 ^- F      call   Change
- X4 m9 ]& f* X/ z      mov    cl,4- R9 a. b! P: w. c, \. T8 x
      shl    ebx,cl
( g" Y7 g' o- }$ ]5 T: d      add    ebx,eax8 s7 S" B  o- L* j" Y
      mov    al,es:[si+7]) Q; m3 d7 L5 l  S3 I6 E
      call   Change7 `: l+ u% J+ u+ v9 W3 X+ r: \
      mov    cl,4- j! x1 n1 ^! g
      shl    ebx,cl
8 C9 J9 M) T2 \  x, j      add    ebx,eax2 O0 ]( v5 }9 b" R% c+ w" ]7 i
      ret
, l4 K( @/ j8 T& H# ^WDPSP endp
9 I* S) @+ R! c9 D" z;================================================================================================9 u* L$ W0 N$ k. R3 A" h
Change proc near( X4 e0 z/ i* p7 D' M( z; A& ^
A:    1 g6 Z1 {- l/ _* _, Q
      movzx  eax,al; \$ ~& E" z' X9 `( e
      mov    edx,eax
- H( k& _' a& I) S) O9 s1 T      cmp    eax,'0'            " c4 H: n9 i3 t) f$ ?; T3 d4 Z; r
      jb     A. ^1 A) g# O4 c& C
      cmp    eax,'9'            
( R, b. ]3 P, w& s' p8 }      ja     B0 q  n% K9 u  H$ u: p8 t
      sub    eax,'0') Q( w5 l% K$ S% y9 M3 l, T
      jmp    short E: u/ W4 a, J/ Y0 q2 I
B:4 b3 q; I/ E5 V3 @+ y
      and    eax,0dfh           
1 T) ^6 x: Y) @2 E* Q      mov    edx,eax4 o8 R! r' K3 T* e9 ]! I/ i! L7 @
      sub    eax,37h            . j2 u8 o) W: i
      cmp    eax,0ah4 J) U/ F& I  n& q5 `1 h. G
      jb     A                  & Z' K& s3 a* j* X
      cmp    eax,0fh
5 H2 b4 M3 x$ Z; [5 v      ja     A                  
! N$ a" j8 _) X8 @, E1 y' O/ ^0 eE:1 f: G% ~% R. S2 j2 v
      push   eax       : {1 d* e" H; P; H9 K) |
      call   PRT                6 q& d& U2 }7 @9 O7 E) E5 c& `
      pop    eax5 D3 ]( D/ ?, m4 h3 R. y* x- V
CExit:
( f7 O( Z- J& i/ @. W2 X5 _  Q      ret
5 u$ I0 ]0 U' f" c4 F8 w' \* fChange endp( G4 s/ q8 ?* Z3 z0 l
;------------------------------------------------------------------------------------------------7 a9 G; r' L% A* V4 f
PRT proc near
# O# z5 }( R  q7 X3 w8 E  S      mov    ah,02h; {: E1 m8 s0 I! J6 b1 I; y
      int    21h# O5 W) z& X. n7 w* h$ Q' f  }
      ret3 v9 c- y% W% o% [' i* m
PRT endp
' f4 |: u% |6 e  t( a5 |2 [% a;------------------------------------------------------------------------------------------------
) k% m' H& Y6 `" H( i, @5 Ucrlf proc near
" b' a3 N3 l/ R  i" V      mov    ah,02h) t. x9 t' Q9 k! O
      mov    dl,0dh
& Z. K6 T+ q5 P: L7 h; G      int    21h
% K$ |" T: m6 e$ }" w1 x      mov    ah,02h
' p. V7 B( N2 [  @: a; ]      mov    dl,0ah
6 `7 V4 `* E( `      int    21h
$ y: x9 a0 z' u: {% [0 ^' [      ret
# m. K. v% ~) }4 k( @, Dcrlf endp
& m7 v- |+ K6 J;------------------------------------------------------------------------------------------------
5 B' o' C2 t5 B- b_32bits proc near
5 n* M8 E6 n, S. w3 n      pushad6 E5 h0 h' E1 v6 k) }$ E
      mov    cl,4) S2 K  o. c8 Q% N6 K5 u/ p
      rol    ebx,cl
! i+ S4 J  N0 j8 I/ l! T      call   print_4_bits2 k. I( n9 M3 Z  a9 w
      rol    ebx,cl# g& J* H" k; a; |" f
      call   print_4_bits, p: i, _) F5 H
      rol    ebx,cl3 O, r! v+ f7 F9 H, R: T8 ~
      call   print_4_bits0 i: ^9 h/ O. L9 }+ H
      rol    ebx,cl
8 e" u: {" Z0 n* v& k      call   print_4_bits
( x9 n/ r+ W& K/ ]      rol    ebx,cl, s- I% r4 k4 r  I
      call   print_4_bits. @3 T& m( k: \' B
      rol    ebx,cl
& E! d( e: a6 J; ?      call   print_4_bits7 R- _) G2 I) k7 U  o" z% p# A- {' A
      rol    ebx,cl+ Z; U& w, C" F: _; ^6 f( Q, u. s+ g
      call   print_4_bits5 ~" w1 O" _# I$ K+ \
      rol    ebx,cl
; K7 }! z" t4 r* u. ~- H      call   print_4_bits
: n5 r1 o" R2 O/ U      rol    ebx,cl- _5 s: v) Q7 ?4 n0 O
      popad
4 P7 L7 n" P1 Y- \4 @  |0 }) Z- }      ret4 h: F  Z6 r- B6 b, }
_32bits endp
; F! i. Y' N  L- e;------------------------------------------------------------------------------------------------' Y. N" S, v) E1 d
_16bits proc near
% w+ Z. `& v& K( F5 o' ?      pusha        2 @# I9 e3 M% z& N% l- f
      rol    bx,cl( t3 _; E: m1 V# W. o
      call   print_4_bits: v4 \' c* ~1 r4 `8 \
      rol    bx,cl
. x5 W$ |: D" C      call   print_4_bits$ c- `; {; k* |3 P5 A1 D3 ^# |
      rol    bx,cl
& h8 w9 F+ T& K7 B, h0 j      call   print_4_bits$ K; o3 F9 G: Z' g" I
      rol    bx,cl
% C9 w6 H: f' X" o6 b' K+ O, V3 e      call   print_4_bits; w( b6 A3 _) M
      popa
# T% L8 a' D" {9 c      ret/ T; z4 F/ X- y1 U% c, c2 B+ d
_16bits endp
! C% E7 c5 N( };------------------------------------------------------------------------------------------------
0 a* q; W+ v# Z: W) B# W_8bits proc near/ h1 \8 N0 n9 E
      pusha        
3 v' E8 S5 i' r7 E      rol    bx,cl
6 |, C! w2 c* o; f6 N0 O0 w5 T      call   print_4_bits
8 o. I- ~" g, @& Z/ \( d3 W      rol    bx,cl- W, O6 K# q; m: n' [
      call   print_4_bits
% k+ z& v0 ?& H0 T5 M0 k      popa
) _' q  o- {5 _; t- \      ret( H2 z7 R3 M; u$ Z+ b: R7 \7 k
_8bits endp, b/ V; K  F( G  O2 e
print_4_bits proc near
( ?: b6 ?* z0 |, [3 h8 ^      mov    dx,bx) _3 X0 K2 S5 K
      and    dl,0fh+ l$ M& K, d. ~% \/ P$ i
      add    dl,30h
) E0 a% R5 u4 u1 `: o      cmp    dl,3ah
9 k0 q# v: l  V! g: I( A; W: Y2 M      jb     print
7 S+ R5 }7 f8 `4 O+ u/ `      add    dl,7' R$ l6 i8 ~- q
print:  ' m: @' v; _" O
      mov    ah,2
( x" T5 B. i" g1 Y3 }      int    21h
6 x! e- d3 F9 }2 n' T1 h5 @      ret; g3 s1 y3 z. W3 q$ q
print_4_bits endp   
0 Q& }% E+ K8 S3 iCSEG ends4 F6 w7 F; b2 m# R$ k
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-9-1 17:38 , Processed in 0.202687 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表