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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)
7 J3 w5 m( K* v3 J9 K+ h
- d5 i, W) D5 H/ ~1 u則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'2 Y' q. Y" o0 ?, W1 V& _
& n# s4 n( y% l/ V+ [
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
' u7 ?2 r2 d# e! \2 O/ E0 Z% ]3 t- \& E+ J0 f0 Q( K* @& ^, O+ G! ?
.model small% y  N% c/ k. N; j  B
.386p
1 t3 U# g& _4 t7 C2 lDSEG SEGMENT USE16'data'
* p$ `7 o% |0 }* Y. I8 N
6 T( g/ r1 I  p; V/ V4 z$ ]! SDESC STRUC% T; V6 `" E( d( o$ K7 z
     LimitL DW 0
0 y# c+ L  D: E     BaseL DW 0
0 ^+ \/ o3 J/ {) k9 I     BaseM DB 0
6 o' N& q+ u  x/ P     Attributes DB 0 , s/ K$ ~; O2 x& E2 S6 N8 k1 b, n
     LimitH DB 0 8 F7 r: y8 B! T; b2 N
     BaseH DB 0
* q0 K$ t# x; @8 T6 p" aDESC ENDS. ]& z. {  h* ?. b$ R
3 R1 N& ^8 c  q, F; N
PDesc STRUC
! }3 ^% r4 x: M9 q8 t     Limit DW 0
; z1 [9 y7 o6 A: V; K2 d/ l- x     Base DD 0
4 O/ n" X  q; Z1 x! K1 WPDesc ENDS0 K! N. Q, \/ f# i3 w  _: u2 h

6 U3 y$ l. X3 ]+ B5 o+ Q, P" ?GDT_def Label Fword
7 z. R' _7 o* @Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>. Y. ]2 i. [2 J! _6 A: O
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
9 I" H; x0 s3 P* GGDT_Addr PDesc <$-GDT_def-1, >  R$ |0 P/ P8 i* E- N
9 N, f" g0 O7 O. q$ B4 S5 R+ p1 x
Maddress Dword 00 w6 |0 g" z8 z

, Y( c( R$ T! _/ n! W, Z, ?DSEG ENDS
. c( Q- g9 r* ]4 |8 e: k  f' x( rASSUME CS:CSEG,DS:DSEG
( S) }1 d( w8 W! h5 G" W$ P: O# {+ @& W: ^) m- W# Y) c
CSEG SEGMENT USE16'code'
, ~0 H% m. M5 G4 {" p! n% k6 b      push   ds9 h' L; f" u( V' S+ l+ V" j
      push   es9 \% w3 x! L7 }$ P, [, t3 j
      push   fs
: W6 I. v9 _5 ], @" L) W      push   gs
5 N7 x" r1 P2 I0 S+ {      call   big_real_mode     
; G' q' z5 w9 a# {2 x3 s      call   Get_Commandtail
( Q2 V# h: c! R8 E      xor    ebx,ebx9 ^% r4 ^9 ]! A: `
      mov    si,82h
8 Q4 t' _5 A$ \      mov    al,es:[si]- s% a' ]2 g9 l5 |/ w% L. K5 R" f
      cmp    al,'r'7 _0 ~4 U+ s1 T; H+ ]
      je     R
! a* V1 y  R8 T! g8 [3 p* i      cmp    al,'R'( U9 P! @( m9 d$ E) T5 ]( A
      je     R& [) l2 I4 P0 x+ c+ b
      cmp    al,'w'& J  M% R, o7 |
      je     W
* D+ \; p$ x5 }# W0 o# d7 u      cmp    al,'W'
, U4 _/ l: Y. \  v0 Y# J' Z      je     W         
1 ~3 b  a& q8 I' {$ n) hR:6 q; Y6 M: d6 S2 a7 _  Q7 }
      mov    si,84h
5 M) [4 Y, ~% x8 L      mov    al,es:[si]4 S: k8 V( [% y0 H2 ]/ Z( q, i" Q
      cmp    al,'b'
) u( W- Q" D3 i4 `: z. q) R0 T      je     RBT
# S7 y' b! q9 @# H      cmp    al,'B'( D4 U  }( `* E' D- \. T8 L: f; R
      je     RBT
* c% [7 B: o4 `8 X4 H( `      cmp    al,'w'
" u1 |- D0 y7 K- `( B  \- ]      je     RWR7 ~7 K0 I; S/ Q- h% Z2 r0 Y" l3 A+ `9 Q
      cmp    al,'W'" u4 e9 L7 F5 j# O% o
      je     RWR( |" w. y, P' U4 B) k5 z  V
      cmp    al,'d'
; P. q7 z# Z. D) V' b      je     RDR
, h0 g) P! n/ Y5 M9 u% l. P1 X      cmp    al,'D'* o" c+ ?. F  ^; _; h9 U
      je     RDR            
: j8 A4 ?; X6 U1 O  T. x& g5 Q3 PW:      
* z9 Y$ Q: h+ \5 V      mov    si,84h0 N& f6 }, z( a' S+ |
      mov    al,es:[si]
* K+ k6 e5 K8 e$ B( o& X% ^      cmp    al,'b'* @6 b! c- B' O8 b1 O+ ~$ u" q( a9 C
      je     WBT
3 w! i  s' q/ G      cmp    al,'B'
6 H9 a5 z7 W5 N: G; ~9 _      je     WBT* A2 g/ D5 f0 K, `9 p4 H
      cmp    al,'w'
, l" `" m9 l7 |3 y6 M      je     WWR
: |/ y* p0 F( X      cmp    al,'W'
, i- g$ e% _2 }# u      je     WWR; J6 l6 X1 }, h- A/ Q" E6 |, P
      cmp    al,'d'
9 W$ z* ^2 Z. C9 V      je     WDR* A% Z: M7 k- v$ E5 j( @- c
      cmp    al,'D'  [4 a; _$ m2 W  v, z/ C5 E
      je     WDR1 ?; J9 ^9 Q( s
RBT:1 I# [% u6 D" _
      call   PSP        
& M5 E0 K, f+ p6 X/ s1 j6 x      call   crlf           . H- V* _0 W& p
      mov    esi,ebx* m/ }. R! _5 ^
      mov    eax,fs:[esi]% }0 k4 D* U, p) \7 C0 M6 a, W/ s
      out    80h,eax' M) m$ p0 m4 J: R! ~2 @) Z8 ?
      mov    ebx,eax
# W  y5 B- z0 F' n      call   _8bits
- T7 W7 j/ n8 ]      jmp    Exit( V+ U+ Y7 ]* K4 S" T+ ~- ~7 h
RWR:* P# z2 v  y. I" r& b
      call   PSP        / y! Q' m+ h% }* Q4 w. @- x
      call   crlf           2 J( ?9 x; J; X4 O  q! U8 v3 g
      mov    esi,ebx
) X+ L) b, m2 f: o$ t5 a      mov    eax,fs:[esi]
* K4 U. q, U7 O# q2 [$ u& L      out    80h,eax
& e1 n9 h. w/ H) m2 }      mov    ebx,eax, U" D6 u' }# p1 u
      call   _16bits- [3 t# i% _& m& K/ C# r& n  g
      jmp    Exit0 @9 _1 r. R  q, z
RDR:1 o, ^& ^! T3 S- q1 b7 ?8 U6 s
      call   DPSP        
  W* c9 E% i# H# t% q      call   crlf           6 z' H$ r$ y( T% }4 W6 a
      mov    esi,ebx
& N, V: |& N$ P  K  Z      mov    eax,fs:[esi]
. \6 l0 j( c  c! z/ G! G3 u7 F      out    80h,eax
4 h3 O6 z8 ~8 e9 b      mov    ebx,eax" S* D/ g4 @% a. _; @
      call   _32bits
5 W) f9 b: Q' B* y$ C      jmp    Exit8 q! h- ~  F, {% u3 T
;------------------------------------------------------------------------------------------------
: k- e' \1 v( x9 PWBT:
9 c' ^. t+ X1 N5 ^3 m; `      jmp    Exit  I3 }% l2 c  V6 d4 E  r" V$ M
WWR:
8 Q9 w- P2 V# w4 f* f      jmp    Exit
% i2 h/ N( ~# F+ M- G9 A; ZWDR:
6 i" J1 C: Q) w      call   DPSP0 W) G+ Z6 P+ K# `
      mov    Maddress,ebx      . _9 C! S% D3 I+ Z4 z
      call   crlf
. z- Y0 v- [; r      call   WDPSP$ _" W7 \' r. i* h* ?
      mov    eax,ebx. I+ q3 Q; v* L* M' Z
      mov    esi,Maddress          2 F2 W. G7 t' |3 d1 q" m8 g
      mov    fs:[esi],eax- g- b6 A% e" R! J
      out    80h,eax( O+ K& Y. O1 U) T/ B
      jmp    Exit
. W& J" h# D5 _: m' j9 |;------------------------------------------------------------------------------------------------       ! y/ b" p! u1 x' R! h6 q
Exit:
3 g5 K/ l( g5 g( A- R      call   real_mode     
4 z' P: f* w1 y; E# \4 W; w/ k$ h      pop    gs/ {5 [; j9 G% |3 H# v
      pop    fs
6 B+ E' |2 P7 A$ m      pop    es
( Z; v! I+ O; T; C! W6 g      pop    ds       7 s) H! }# d9 |8 B1 ^, z8 ?$ ~& q
      .exit
( s: Y, U( m' _/ g;------------------------------------------------------------------------------------------------1 x2 n% Z$ S$ L5 Y/ Z
big_real_mode proc near
+ t. E1 y/ r1 q9 W9 Y      in     al, 92h* t0 S" J0 n0 }5 X9 L9 k( \: n
      or     al, 002* T4 P( c  K; m6 C, A( L
      out    092h, al$ M: s1 G* A9 ^, f% b
      out    0edh, al
. B. N4 u3 f4 n* N8 t0 N0 I) W      cli; C/ X. P% d/ C: n: z; U
      mov    eax,DSEG4 a" j: G: X1 e* ~& l! b% N
      shl    eax, 4
  R+ y9 w" T2 q4 F5 u7 M$ M      xor    ebx, ebx5 f( {* ~9 ^- Q: @1 M' U
      mov    ebx, offset GDT_def
- \9 x% z: |( B8 H5 T% O9 ~8 M      add    eax, ebx
  q2 P3 Y! ^+ o' n  {      mov    dword ptr GDT_Addr.Base, eax4 d- Z. S9 H. F9 q5 h6 E# V
      lgdt   fword ptr GDT_Addr
, ?& ?3 V; X1 [! A! p8 Y" k      mov    bx, 8- a, |( b9 v0 O$ O2 x
      mov    eax, cr07 n# Q$ j1 Y9 ^% u# _& v7 s
      or     al, 1( y( E/ W$ y7 L6 P' G
      mov    cr0, eax
4 j8 a! ?8 D' z4 J' H8 w# k5 \, g      jmp    PMod
+ Z7 L5 ~$ }: N/ f* cPMod:
3 {! |1 @) Q' ^9 l      mov    fs, bx
# g7 H& ]# S6 g7 T      mov    gs, bx
; }( s) S; ~# v$ D      mov    eax,cr0
, j1 r, g  I+ M4 c4 x4 U      and    al, 0FEh
5 v; f5 T4 M3 u  X" |      mov    cr0, eax . C8 C7 f7 d4 D0 X1 o
      jmp    RMod
, @: j0 X  p( V0 a! G0 YRMod:
2 W4 j/ V& R7 ^* `# p5 }  C      xor    ax, ax
7 x( e+ U' B5 m      mov    fs, ax: H8 v0 p% ]+ n* G3 }
      mov    gs, ax     
3 [# V9 w! T  [  c3 |2 r      sti     
7 E6 i$ s- g/ p0 N6 S; n      ret
0 q9 I- t" W5 }- L$ j. Abig_real_mode ENDP) e* \7 `2 B9 c3 _0 Q! M4 F4 v
;------------------------------------------------------------------------------------------------
9 t" Y( M& w  f, X; mreal_mode proc near; d( ?3 F$ ^6 Q9 C0 j
      in     al, 92h5 A  y$ d5 N2 |* Q: b
      and    al, 02
( c+ T; `: @* j3 T3 s% [      out    92h, al    6 `& L0 {1 l( a2 w0 x
      ret
( ~% D, C% [  l, oreal_mode ENDP5 D+ g3 i3 i$ m3 d# q" H
;------------------------------------------------------------------------------------------------
9 o+ z( t4 L3 ~/ PGet_Commandtail PROC near
( `2 i/ G4 c: i) L  Y' i  @      mov    ah,62h
, s5 t" y' ]0 j7 J6 R( j9 _      int    21h
: N! `2 Y. k1 M      mov    es,bx
8 h' h) [* j  x. e7 f      ret
7 _4 Z& L* P+ w  W3 E# U1 V4 EGet_Commandtail ENDP    8 |( I$ M( X0 w2 T! ^) h8 O0 t
;------------------------------------------------------------------------------------------------
' P5 b$ H* i0 Z1 U0 y( ^PSP proc near
* J' q2 _7 O7 B. i4 m: p      xor    ebx,ebx0 W/ e3 l: k# }) \0 E# P  C
      mov    si,89h" [- B! E' @1 O* z
      mov    al,es:[si]
/ z1 X& M3 H6 v5 ]+ m# A      call   Change
% F8 u/ [. D' g% J* d4 b/ H2 d/ a      mov    cl,4
5 W! U9 n: i+ F      shl    ebx,cl
* O: w: b; ]+ A* u      add    ebx,eax
. h; M) O4 M) U( m      mov    al,es:[si+1]
( p0 }. `0 t: B9 z% Z: N      call   Change  X, d- @- y1 w# y1 N, ^
      mov    cl,48 s, v# E  v. [/ Z  \
      shl    ebx,cl
  n" X/ A# `- M1 B& F" ]. U" [      add    ebx,eax9 t2 A; c) w$ O+ b3 v% i( _
      mov    al,es:[si+2]
2 o- C2 z3 c" D      call   Change
: q" R# C$ ?7 ?& `2 P      mov    cl,4" q2 k, a' L% d1 a
      shl    ebx,cl
! l  O2 @8 r4 L: o7 u' b2 M: f      add    ebx,eax
' p- \+ z' h  v" b  O% W" P      mov    al,es:[si+3]
- O& J# U; F# j3 k8 P  C      call   Change% Y$ n; B" i! [/ A8 D! D1 m
      mov    cl,4. E2 H2 m/ g# H+ X$ J% t
      shl    ebx,cl: J. d- p! [  f( T7 m
      add    ebx,eax% o. N1 f3 @: C6 z  y( H
      mov    al,es:[si+4]; k! H  z$ k+ j7 w
      call   Change' g* y- x6 @0 j; A8 ]/ j
      mov    cl,4
" Z$ `% ?* ?6 I4 l      shl    ebx,cl
# U8 M9 I1 B9 U; R      add    ebx,eax
# V; O- `. Q& r1 U$ A      mov    al,es:[si+5]
+ q+ m5 \0 [4 t1 E( A! k2 ~/ i      call   Change
+ G( H" O* C) s      mov    cl,4
! h) a' u% D8 _% r! j" {; B. ~      shl    ebx,cl8 n4 |6 Y( I- S
      add    ebx,eax- o& L3 R8 w( u  K4 K- K+ v
      mov    al,es:[si+6]+ ]; g% u4 A' }: P; ~0 `
      call   Change
( x* l8 S2 ]5 D8 B      mov    cl,4/ v8 h, h/ U3 p' J- v9 R1 C0 R
      shl    ebx,cl
( j+ k0 Z9 `) y& G      add    ebx,eax
6 H2 c( \- b" K, q9 h3 u% _4 i8 i      mov    al,es:[si+7]
8 c3 d1 F  J. O+ I. A! }- Y      call   Change2 O' {) y! [6 \, u% A
      mov    cl,47 y$ O8 D2 C: s. Q/ B5 L+ o+ h/ F
      shl    ebx,cl
) u, V4 A' S$ y3 [. a: x$ i3 J9 O      add    ebx,eax8 |' Q5 B3 t5 ^- {: N4 R
      ret8 B. Q% Z. n# o% W7 m. ^. v
PSP endp5 h0 }- j$ C& }& w
;================================================================================================
. Y/ s% ]- n! @/ TDPSP proc near8 t- M  X( O/ A/ a, }+ m
      xor    ebx,ebx
% o4 f7 w* o/ v/ X, C      mov    si,8ah
8 y& W  Z/ Q# O5 x  c      mov    al,es:[si]5 v' C. p/ l1 q; m4 I6 P, @% m
      call   Change5 L0 x! A7 e$ l. Z
      mov    cl,46 E4 C/ J' b" x& g9 M/ K% x
      shl    ebx,cl4 u/ W" j: A, [( ~# `, [' g" ?9 i
      add    ebx,eax  I3 t: s% a( j* A6 Z  Z' {) O- g
      mov    al,es:[si+1]: F0 I) Q+ k+ W* f( i1 S
      call   Change
% D3 Q. r6 \3 j: w      mov    cl,4- \5 V; K& q9 y
      shl    ebx,cl, G. f! Q/ x3 z3 U8 Z
      add    ebx,eax
. w6 u3 Z/ W9 G/ g6 G9 C9 Q      mov    al,es:[si+2]9 V* A) D8 S. U* {& H
      call   Change% F" `9 @4 ~, w1 f+ U1 T- M- p- S
      mov    cl,4* m; R; h$ B2 ^2 v* S
      shl    ebx,cl
# s* C& N: W9 G      add    ebx,eax
: [, j' p1 o& O      mov    al,es:[si+3]
! {5 C1 y, U$ U      call   Change7 ]6 w4 D8 S5 ?
      mov    cl,4+ w: J/ W7 }3 o, u, ~0 N
      shl    ebx,cl
4 f4 p4 Y' F/ V( p' q3 i      add    ebx,eax
4 m7 M7 ~: Q$ a# K$ a) _      mov    al,es:[si+4]& V) V! P1 z6 j1 }
      call   Change4 B8 ?# u/ J5 u; a  ]' P
      mov    cl,4
! K" K3 C" \# f1 g& b6 i( V      shl    ebx,cl
" w% A% p8 C2 T# q! @/ c      add    ebx,eax
5 P, M8 m) K  }0 v2 Y      mov    al,es:[si+5]
! e  n/ j- _7 w5 Y4 k* ~      call   Change
0 U$ O" N+ Q" t" G: F( Q4 Q% I      mov    cl,4: E6 A: Q: d) D. G3 F" [
      shl    ebx,cl! ?% O% t7 m# ^" E: K& ^, Z
      add    ebx,eax
% w  v9 Z: T1 x* e9 t4 G- [      mov    al,es:[si+6]+ E5 D8 l9 ^5 K
      call   Change* x5 M9 u0 \& ~/ m- j; |
      mov    cl,4% ]" W0 t1 }1 O* a: z
      shl    ebx,cl
5 J( x! {# u# z/ A      add    ebx,eax
4 O% ~, W$ m* V  ^      mov    al,es:[si+7]
. j/ T- \* T7 G; L      call   Change. P/ r' C+ u( K, F8 D0 x
      mov    cl,4! W5 u5 b0 S$ p% l' R
      shl    ebx,cl: a6 c: A+ v! I$ m, a& i
      add    ebx,eax
: m, [- h, z$ N/ @8 c      ret7 n/ `) _% ]" D" g( A6 ?, G8 i8 Y
DPSP endp. @( H/ b8 s5 x5 P
;================================================================================================* b( b) e' e( q4 g8 F2 k* r- ^
WDPSP proc near2 p/ J  t/ r# P& {3 R
      xor    eax,eax
0 E0 ]% r4 Y" C  L* F      xor    ebx,ebx# c5 s4 u6 L# m5 y% v) g* P
      mov    si,93h9 O4 i" n# Q5 n3 L) ]1 @/ k
      mov    al,es:[si]7 e/ G" {0 ?, M$ m# ?
      call   Change' R- J5 p% ]- W! T1 ^8 H
      mov    cl,4
' Q1 P5 R! `1 D  Q0 I0 b      shl    ebx,cl
( u# B4 I& n, k& F: L2 ?      add    ebx,eax
% N# g. h; a! u  N) P, [* V! C, n      mov    al,es:[si+1]0 J+ E9 f+ Y4 l5 Z! N+ \
      call   Change
/ m9 K7 e/ L: R7 v5 s      mov    cl,42 t! P9 I; V+ ]5 I% A. {+ Z1 r  C
      shl    ebx,cl
+ r( F. r+ v  Z. N. `! m      add    ebx,eax6 `; Z( `( x' b9 K+ @; t* }1 t
      mov    al,es:[si+2]
$ Z" A( T* Z2 W" g2 b      call   Change8 f# z3 `& S3 a8 j7 ~6 A' e
      mov    cl,40 _; W2 T! X/ j: g9 L% L* U2 R" a
      shl    ebx,cl
1 i3 Q7 m0 C1 g      add    ebx,eax1 ]% R  d) B- k; k' G
      mov    al,es:[si+3]
+ {/ a2 b. G8 |8 |" k      call   Change* j, }) I8 d& {9 f4 J
      mov    cl,4
5 W0 u1 s; {& [1 F  G$ u      shl    ebx,cl
+ [5 W0 g. |( N, E; D9 x4 ]7 P0 \      add    ebx,eax
  z+ H: K8 y" t" A9 Z- C1 @      mov    al,es:[si+4]4 S2 e( a3 e! ?3 }0 f. r
      call   Change2 w5 a, ]/ s: l$ v
      mov    cl,41 y8 T4 x! z3 a; x3 }
      shl    ebx,cl9 k/ \) B1 a. H
      add    ebx,eax7 o5 W8 J% p; }7 \' M' J+ P- i
      mov    al,es:[si+5]8 E# y! t$ A. C/ X
      call   Change
) ]1 c; r6 O0 Y      mov    cl,4+ X; Z% S+ Y( E
      shl    ebx,cl
* o( l  X( e" t; m+ N! r" ?7 J6 T      add    ebx,eax
3 P, Y$ j9 K4 r      mov    al,es:[si+6]
. d, m2 C+ c& r      call   Change, O2 ]7 S0 f% F- |$ s$ k
      mov    cl,4% G# I' ~9 S$ I
      shl    ebx,cl' \1 s3 d: h$ e5 \0 o3 O9 \8 @
      add    ebx,eax! w, \3 N, Z: W' c6 ^) a( N
      mov    al,es:[si+7]7 G$ U) n6 z1 S# |$ k+ h# G4 L
      call   Change7 D: K' X/ l! V$ W: n& h
      mov    cl,4
& p& n  G- f0 _- z4 P" u      shl    ebx,cl
: x( v0 U% H: ?7 h1 h, x4 Q# I      add    ebx,eax
: Y& R8 m7 f, I3 h7 m0 w! D$ A      ret
* l& h& E9 n  ~: |/ D- CWDPSP endp
) r. g0 u. G, V. d- S' z' q# H- D;================================================================================================$ \- y. j$ B$ {4 E
Change proc near) w& Y9 P5 [4 T6 t+ m  J* E* x
A:   
5 M" A. t8 R! n0 P0 P6 B# h      movzx  eax,al2 Y5 E6 ]0 `- S0 ]1 H% H, }+ a
      mov    edx,eax- c4 J2 b! c6 x$ n
      cmp    eax,'0'            
5 \, H. ^* E- N& `      jb     A
3 c4 S9 @5 i+ f. c( x      cmp    eax,'9'            " J- W/ N$ ~) s/ o  a
      ja     B' n* b5 }% W$ \5 ~* _
      sub    eax,'0'
5 q% p+ A3 J3 b, c3 W4 _# v: U3 n- Y      jmp    short E4 I5 p& Q) y8 ^/ C
B:
6 N3 \' ~; i, O) f& Z      and    eax,0dfh           6 S$ K1 ~2 u: n
      mov    edx,eax9 m! a4 ?$ g' S: n; B6 u! O3 R5 W- \
      sub    eax,37h            * h+ e8 N" j5 n" G* O7 Y
      cmp    eax,0ah
& M0 z0 G8 }0 u- r9 }2 z      jb     A                  
! s( j9 x3 R1 r* I7 t      cmp    eax,0fh
, V1 M; c; R+ }3 q      ja     A                  % x3 M" e! O" R
E:" }/ ]6 D# `/ }8 M  D7 c) @
      push   eax      
; o4 v' j# I+ Q) P9 D      call   PRT                # ^; z; e7 K0 G1 e- E% O0 ?
      pop    eax& O, s. W4 w) K
CExit:
& h/ @% g5 C6 |      ret
  y' }$ v2 ?) jChange endp
" A+ l: c2 J( l;------------------------------------------------------------------------------------------------, }8 O+ z9 X4 v. p
PRT proc near
4 \+ q3 m* b, w* n0 O      mov    ah,02h
) J# e6 o/ _  {. q* P; [      int    21h7 V4 v$ m0 ]9 V& r) ~' B
      ret
  Y( g2 g3 j4 K( t" @3 F# t- C5 ^% BPRT endp
# Q( R# K# W$ l: w: `$ |+ p;------------------------------------------------------------------------------------------------, C/ }6 \% d) y3 T( f: q
crlf proc near
7 R9 R. a, I- {" v      mov    ah,02h
" u+ E& X% [3 p6 N' w, T4 J      mov    dl,0dh3 p* x5 Y) o+ t
      int    21h. J1 R" U) B5 D/ m
      mov    ah,02h3 L: o8 Q, p3 V1 T+ c+ u
      mov    dl,0ah  ^! I. o7 d  t
      int    21h; d. n0 B2 ]! x3 t
      ret
7 {, I& i0 `6 t3 l+ o) p: [crlf endp
0 t( m! S: H& X, A" p0 s' F;------------------------------------------------------------------------------------------------
2 c3 z  X/ Y6 i  }$ |$ P2 Q- D4 Q( ?_32bits proc near
% K% J( y/ o  K6 a7 g# N      pushad
$ ^" J9 d$ g* X; X      mov    cl,4
7 R. l" M+ p) K      rol    ebx,cl
* Y# j9 M* d$ J+ e7 R      call   print_4_bits: ^. V- e/ ]& X
      rol    ebx,cl' k2 n( C# j. b2 G3 t
      call   print_4_bits
  ?: ]2 U4 ~! D  U4 I' ^      rol    ebx,cl
9 F' y! H0 g8 N$ x9 w2 w      call   print_4_bits
/ n7 B' p- Z1 @, R  j      rol    ebx,cl
- |* w  F; x9 [, N0 p2 ^      call   print_4_bits
% j  \2 t( ?8 C      rol    ebx,cl, n; f& |: N, c; N) j+ ^
      call   print_4_bits& ?+ y) `% I) T' T
      rol    ebx,cl
+ @+ H- T4 ~+ ?( }      call   print_4_bits* R$ K  }) F+ |. N1 u/ Y
      rol    ebx,cl
$ J3 y( i: a' m& a, m+ V      call   print_4_bits* ~- _  N6 }2 j
      rol    ebx,cl
* l! b! a; k. B3 N2 h0 }9 p      call   print_4_bits1 T% H% D/ i  c7 P+ z+ C# {
      rol    ebx,cl, W+ u2 X; r" ~2 I$ G& l
      popad
! W2 v! h4 H# `. |      ret% j0 B! O  M. N9 A! z3 \" ?' P
_32bits endp) Q. }6 B7 k) n' k( i
;------------------------------------------------------------------------------------------------
0 a2 |- l1 Z$ @_16bits proc near
0 C8 b! r+ N) l      pusha        - U) j% h% {" Y; ?& \& z
      rol    bx,cl
8 s0 a3 H9 L! w( ~      call   print_4_bits, N7 t0 L- f0 J  r& n3 p' R  d
      rol    bx,cl
+ X6 ~$ I( o5 k. O  l      call   print_4_bits. ^( t. z$ B; X# K
      rol    bx,cl9 \! t4 l+ E; x  ^
      call   print_4_bits" g8 _+ n' D+ V+ a( |5 Y& ~" o
      rol    bx,cl6 m9 t0 ?3 h9 H- Q4 U
      call   print_4_bits# S2 u% {3 _( d5 A
      popa
7 K. p+ o$ W0 `      ret
' P0 s' F3 t8 z+ e_16bits endp
8 J) [# z; u1 w# j. [;------------------------------------------------------------------------------------------------  B# q- c3 O" I& L$ T# P  R7 ^' s
_8bits proc near
2 L1 n( k0 {4 |% m      pusha        ; x# H9 g( o" Q
      rol    bx,cl
' e* `+ w, y* x/ `0 {& N! u2 F8 v# f      call   print_4_bits
; X8 a' \! B) x9 |$ @& M$ J& |% b      rol    bx,cl
4 m9 X0 D/ o6 f- h      call   print_4_bits' F  y6 n' x: S% K( g8 j
      popa! t7 L3 f+ k/ i, V' ?$ `
      ret" L4 e# n" B  c8 E; y+ {4 x
_8bits endp
$ f- b6 k: o* j) |2 o2 Z+ N2 oprint_4_bits proc near. p$ ?- ]5 n$ V" V8 ^0 X
      mov    dx,bx! ]6 z2 J  X# [+ M8 t7 a
      and    dl,0fh6 f: f' F/ N1 ?) a; J8 {
      add    dl,30h
6 k# a4 j0 v2 T$ H- ~      cmp    dl,3ah( d( q; v3 y3 k  J# u' ~6 \
      jb     print3 t/ @& o! b5 ]' R- T( {
      add    dl,7
# U! V1 }# _) F4 X* y3 [/ a! D+ Y9 @print:  
. O+ f4 S4 F0 h- `9 f4 h      mov    ah,2
  B" t2 q+ ]: D) L5 A' }9 ]      int    21h- E. M+ Q( Y& n. a5 v9 R+ }' s
      ret, x" E7 f# f* ~. T. s
print_4_bits endp   
& Y2 C6 D  c9 M- C; K" m4 yCSEG ends
% I5 U" }. h" _" F4 P2 O5 a" D; KEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-3-5 17:39 , Processed in 0.150811 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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