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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)( w& p. |8 p4 X- M5 I' r9 ~
! w: l  \% C) @9 a' v# v7 b. R3 g0 ?
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
2 o2 r' U7 ]4 i7 d9 T9 @- k* X* J3 t4 W* s0 D! @3 L4 S) r, Q
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
4 f- s) I1 j& |4 a8 ~* E" E* B# R( J3 u
.model small! {% {6 |; S% A, B# x) q& ?
.386p
  L# V: D! x" v* D: x7 pDSEG SEGMENT USE16'data' 5 O2 X3 f$ k4 ?$ _6 y9 R

9 O6 r; i) }% Z, BDESC STRUC
; A$ U+ ~  p7 H" R" ?5 g     LimitL DW 0
8 j1 ^+ \) v8 m     BaseL DW 0
3 ~1 y  Y" B) r' K6 \! W     BaseM DB 0 9 L/ ~8 c! k9 A2 {
     Attributes DB 0 + K/ a. A6 h8 N2 u; t( d
     LimitH DB 0 / Y+ i0 j" h" t3 |, q( W
     BaseH DB 0
( Q5 q: Z- B7 U5 P! SDESC ENDS- W  s5 c2 K% @: J) m) A: ~4 Z5 r

1 m! u* J% {6 \0 @4 V" fPDesc STRUC
) t, U2 ~  V; m  y     Limit DW 0 8 J/ y' }% S7 V4 Q0 `# D. [
     Base DD 0 1 S( x0 J( {9 g: h) h
PDesc ENDS
7 N' B% |7 l9 b. }2 B: W; E# c0 G' Z4 E9 `- `
GDT_def Label Fword
* d9 Q  ^* C8 ^  n0 h8 [( ?Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
# F' j0 }6 B5 K5 x' TData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>7 G0 h+ i- F+ ~
GDT_Addr PDesc <$-GDT_def-1, >
& b9 S$ V$ F# m. M3 I% ]
% Y8 X, T/ l  E6 D" }Maddress Dword 0
# B( G9 h, y7 O2 X# S# \) I: ~
% a/ Z* p9 A1 W0 J! b6 N  u9 \DSEG ENDS
8 _9 Q: o( R! M" ?' A5 Q3 tASSUME CS:CSEG,DS:DSEG0 C5 M* g$ H5 y( |# s# t
1 C! {" ~8 ?6 ^4 M+ j
CSEG SEGMENT USE16'code'
9 G$ Q$ \: L) E: t# o" ^      push   ds3 H( @* Y# n+ i2 D
      push   es
: ?7 ]0 V% S4 N+ G, ^$ H+ E      push   fs5 V# f: @( g2 ~/ `+ S5 G
      push   gs5 d& d" ?# w$ \: J  Z  h
      call   big_real_mode     * V0 F& ~/ z& T; o0 D- B3 h+ H: V) A! p
      call   Get_Commandtail9 h  z/ N9 q( M  a2 H: i
      xor    ebx,ebx
% P& Q* i/ ?7 G6 G) b7 O9 _6 p      mov    si,82h
. ?, V( o3 n/ }) T* c8 y, @      mov    al,es:[si]
$ b, M5 P8 e4 a7 u# ], G+ h, L: \      cmp    al,'r'
! ]) \0 W$ \9 p2 z+ N- n' _" R- r      je     R
# I. g4 M4 u: ?& x) g      cmp    al,'R'+ v: t6 Z8 \7 ]
      je     R
! ^1 i7 {0 v; a5 `7 s      cmp    al,'w'
) V% K# ]& x9 Z. A      je     W) W1 U' _; g; @. M# Q
      cmp    al,'W'
& h5 T" b" E+ U      je     W          ' n6 s8 n7 C2 t" M$ \
R:* c% L3 v' p; V4 J- ^) M
      mov    si,84h
9 p- ?0 `4 y$ C' f! q      mov    al,es:[si]
. l0 F" s* X' T: t) W      cmp    al,'b'
" W# ^: S5 g9 C  b; S# D9 |( D( X      je     RBT) J9 l$ u4 W  T! e0 l! R# Q
      cmp    al,'B'
; g  H% D+ e: Q" ^      je     RBT$ O9 L0 E1 a# T/ H
      cmp    al,'w'
( \* v- ^7 i8 O- C      je     RWR
% i& V& `+ |( i      cmp    al,'W'1 g8 c, g8 j3 b: o; @
      je     RWR
. I5 L5 r4 S  \7 T      cmp    al,'d'1 B* Y7 Z: ?1 @  `3 f# V- w9 J
      je     RDR( G$ D. u2 E# ^
      cmp    al,'D'
8 n# x  ]( q5 D2 x3 t% n6 W4 F- Y      je     RDR             , F6 C' h6 r# ^$ U
W:      ) s# A5 {' Z* e/ H" l( z# E
      mov    si,84h+ _4 \6 u; J1 V
      mov    al,es:[si]
- b1 d$ `% f8 ^( J      cmp    al,'b'
' _3 A% W5 B, a/ a1 F  l* ]( K      je     WBT
2 h5 V1 Z* V+ S6 [2 c1 s4 O! I      cmp    al,'B'
7 m4 T7 |% {$ O. V1 z      je     WBT( I$ Z  K8 r7 h) `& V
      cmp    al,'w'
7 k# U# c5 W1 Y      je     WWR
  x" J* L: D0 F5 V; Q0 K" H      cmp    al,'W'
1 y5 {, O, V; N: R# b6 H4 v' m      je     WWR
) D4 e6 ]: a# }      cmp    al,'d'3 O6 L% l% a) u% |' Z, k
      je     WDR( r6 `1 L+ o* {; G& B" ]* J1 ]
      cmp    al,'D'
+ m* U/ R2 C* y( v' r: E9 i      je     WDR
& s" _; X  C: ~0 g  p* T1 xRBT:
, i+ n. o5 V, [2 ~9 o% D      call   PSP        
3 ~, H1 k, o! Z+ ]      call   crlf           " C- F' W' r5 A4 x! r4 ?1 w% \
      mov    esi,ebx; v( T/ _& ^' I3 a1 q+ }# X
      mov    eax,fs:[esi]3 D6 s. @9 t9 I1 B! a
      out    80h,eax
/ d, k# v! S- Q! d8 t; ]& \      mov    ebx,eax
, I: z* A5 S7 d      call   _8bits
9 C% G4 C# m' ~5 Y4 d) s. {3 ?      jmp    Exit, E) ]* n& G0 b5 U; i' o" G5 w' R
RWR:) n& u6 G& _5 c
      call   PSP        0 P' _6 G0 U; r$ e8 u
      call   crlf           
5 v+ A8 t3 |! [; D1 {- k9 m      mov    esi,ebx
4 x5 v2 N7 Q  g  H8 v1 u      mov    eax,fs:[esi]
3 E' R# V' v. f0 v      out    80h,eax
% X" m" p& g( Z& a8 i! e. O      mov    ebx,eax
, R9 Q# f, ?) M. l      call   _16bits5 c: Y5 L3 v! @  f4 Z2 D
      jmp    Exit2 b& @5 K% i4 b" Y- h
RDR:
1 ]# F3 H' [# ?      call   DPSP        
! e( z, W- N8 l7 ]6 r8 q      call   crlf           ! Q* y. P) t& b# O
      mov    esi,ebx7 U- M0 @+ e6 x; Q. F  L4 ?5 M
      mov    eax,fs:[esi]9 o" H8 i4 O( T3 u
      out    80h,eax7 u6 ^  @: C' S+ `: U
      mov    ebx,eax
! S$ x- B, h9 r      call   _32bits5 T1 m6 h5 K/ s0 b
      jmp    Exit
0 O& N* z5 Y, g;------------------------------------------------------------------------------------------------$ w) k. |7 q8 G) F7 e- O) _! h
WBT:; a) `; W7 i% A* X% g) l
      jmp    Exit
; G' _7 g& A8 r* G- [( |7 wWWR:
3 i* @: X8 u( h+ Q      jmp    Exit4 N+ O' b& Y+ [3 x9 m( m
WDR:
0 J. I8 D% @( p. j4 A      call   DPSP- S5 x% [9 m; j3 P1 _
      mov    Maddress,ebx      $ a  g$ T) Z' e
      call   crlf
: p  Z( Z" Y" g! W      call   WDPSP9 _8 `, r* s, S5 c
      mov    eax,ebx
# M+ V5 c3 k( ~0 _/ k      mov    esi,Maddress         
3 T5 ]/ n& b& c" c$ h. D      mov    fs:[esi],eax
- Q! e/ ~9 @3 I: g$ l      out    80h,eax9 H* @+ @* o& s% C. B
      jmp    Exit: `: P; W5 R/ [; n+ q( U/ U9 s
;------------------------------------------------------------------------------------------------      
/ f  \; G7 z" b* \9 a4 G. u1 J9 \Exit:
6 ~3 j3 h  G, m4 A; B      call   real_mode     ' V( \+ f* {: i2 v* e7 z# V  M
      pop    gs% C7 K3 \( ?% l! m# W1 |9 T! p
      pop    fs; Z# U2 v  O- a* {$ w
      pop    es
' r4 c7 J* @* p2 |% r      pop    ds      
( e  @- ~0 h5 C4 {2 D      .exit1 B( n, Y1 ^0 A2 ~. U
;------------------------------------------------------------------------------------------------! j$ y" h1 i4 t9 ?2 b
big_real_mode proc near5 j6 D# X8 }! w. O
      in     al, 92h9 y3 F, B9 G0 d! a1 z* @
      or     al, 002
% G2 T6 e$ I! l6 [0 Z6 ~      out    092h, al% w: c4 g- f" v: |! S- ]& X
      out    0edh, al
' D8 L# ^4 q2 V3 l# ?/ p! `7 t- z      cli! e7 `, E% n. X2 H; p
      mov    eax,DSEG" V5 D$ H2 b7 {$ `5 d2 E
      shl    eax, 4
/ j+ v% c5 y1 H. F, Z      xor    ebx, ebx9 D( ^; B- H$ S$ M9 T
      mov    ebx, offset GDT_def$ w5 H& z% o4 z% \0 P2 a
      add    eax, ebx
0 l: h, o- e, f( U3 J4 q      mov    dword ptr GDT_Addr.Base, eax
4 F; ~3 B1 E- {' K+ V: o! ]      lgdt   fword ptr GDT_Addr
; Z) O% s1 y/ L$ w2 ]: ^, F      mov    bx, 8
# r2 q1 q3 W& F3 y: b. k. K      mov    eax, cr03 D- h3 o" y2 Y0 {5 }
      or     al, 1( |( G7 C" b( f1 Q  v+ `
      mov    cr0, eax! ~5 Y$ m; O. Z- q; q( z
      jmp    PMod
3 t) j5 x& C6 Y- x* f( O" TPMod:, b$ P0 L' [+ S
      mov    fs, bx: F' k. ?* s* R4 t) Z- d
      mov    gs, bx
( ~% C0 A- x; K9 P& E7 n1 P: y      mov    eax,cr0) P; Z0 V( F; y( ]( J& S* V. ^5 J' e& G
      and    al, 0FEh
. \7 ?1 d1 N+ e; T      mov    cr0, eax
2 O- h% e4 O' d# \0 z3 ?      jmp    RMod
) |; u, L( ]' T3 _; I! U* T( ~1 kRMod:
8 z( T$ X8 Z3 x/ O      xor    ax, ax2 x2 ~) j4 X! k
      mov    fs, ax
" n7 a+ v9 u$ @      mov    gs, ax     ( Q: Z: ~3 L0 [/ `  C$ N9 k2 o
      sti     9 U! |, m" y/ ~  H, y: N
      ret
) J) c. S/ T3 }: o9 x- }. Dbig_real_mode ENDP
4 j$ r* l# a& s% E) v, C;------------------------------------------------------------------------------------------------7 E0 T, g6 X- d; }! v+ h
real_mode proc near% l) I6 y+ F  t' t. F. ?
      in     al, 92h1 n" b9 r( N  J( L, ?
      and    al, 02
& k3 l* {: y8 p; _9 s      out    92h, al   
9 @! c5 v2 B# ]! @. S% x      ret
$ R' h* y. g% x7 u/ S2 o5 p% i- W2 Wreal_mode ENDP# d5 h, \5 r' o& i* O
;------------------------------------------------------------------------------------------------) K( F5 T- P2 d. K
Get_Commandtail PROC near
/ b7 y, C- l+ j. N4 w( O      mov    ah,62h 7 u. l6 f( H- p9 M7 i$ ]
      int    21h6 H' R6 K  a" ?2 p/ H  M/ {+ w0 I
      mov    es,bx
% i/ F( B- F: a2 j% t2 L. r      ret
, ?9 H) \5 N4 c9 z2 ^Get_Commandtail ENDP   
3 N$ u& a# k! R. [" h, Q. d;------------------------------------------------------------------------------------------------
7 q0 O, J7 ]1 V9 Z& DPSP proc near4 U: b2 a8 F& c+ G7 t) i9 v5 {
      xor    ebx,ebx
: ^7 G* b' D& Z! @      mov    si,89h' y- i6 q" {% f0 w- j, }6 q; T
      mov    al,es:[si]& V1 u& F  M/ W% [, b. |- f
      call   Change2 u# g1 z) h8 h! K
      mov    cl,48 B5 w/ X4 f3 N! z( N$ l! c. r
      shl    ebx,cl
' E& k, {) }9 X% Q3 W      add    ebx,eax: C; ]$ d4 u) L; ?0 O
      mov    al,es:[si+1]$ l3 [: Y% r% g1 ^) u7 f% `3 F
      call   Change1 O; N% M0 l  J) P8 ?3 ^# O
      mov    cl,47 w3 P1 O- p; w! s3 x
      shl    ebx,cl( C3 _# o. W/ u
      add    ebx,eax
' w# K# E9 ?7 U" l0 O* r. Q! m( @      mov    al,es:[si+2]$ W7 Y/ ?3 d& N2 R% S
      call   Change
' @2 M( z0 N; R$ A- \% u# X      mov    cl,46 v9 x( v6 o" @- m& ]
      shl    ebx,cl
0 y4 y- e5 `! [# @, U: Q  w      add    ebx,eax
$ G4 T& P( @2 O) E/ o, I      mov    al,es:[si+3]
2 o: G3 m1 r5 l" v      call   Change
9 q" D( K+ F, }7 ?4 `      mov    cl,4+ m% N3 \+ i7 o, o- s1 J* E" Z
      shl    ebx,cl6 B! M+ U) I8 {+ y3 K& u
      add    ebx,eax& b6 u( _) w, p$ ~' n
      mov    al,es:[si+4]' H, {" `: S" k+ i. ~
      call   Change# H3 f0 U4 m& C. `' S8 A( Y
      mov    cl,4" ~. T& U) A: n' w% G" i  G
      shl    ebx,cl! l: [8 x0 H) s* P
      add    ebx,eax
. F/ L" S8 H1 r& x# e      mov    al,es:[si+5]6 t" @7 ]/ m1 v8 X& |- C* O
      call   Change
& m& x8 B! Q- o: \$ U) C9 T3 |      mov    cl,4% V. f% V, E: a3 l' d" ]
      shl    ebx,cl
2 i  H* L) D6 P, O1 @' [4 _" h% t0 ?      add    ebx,eax
& r$ J; S/ x/ [& Y& g      mov    al,es:[si+6]
- g4 F" N& Z3 H; D1 G7 P+ Q      call   Change
2 f, d* S2 E2 G- H      mov    cl,4: Q$ ?4 z0 ~+ \0 |2 A# n
      shl    ebx,cl
& W: f6 D+ [+ a      add    ebx,eax1 _- e5 E/ e. z/ v% t+ r
      mov    al,es:[si+7]
4 Y) f( g" G6 r0 q      call   Change" a  I7 A5 J. W
      mov    cl,4' `  o0 p+ L! @6 M/ C( X
      shl    ebx,cl
$ R# L' y& Y" H! L; O      add    ebx,eax
' J; Y$ E& ]5 [6 }8 u# `5 n, t      ret
2 R  J- o0 m# n* U0 c0 dPSP endp' v4 s# T4 ^  H1 e- `
;================================================================================================/ Z+ h; s1 l( ~2 Z+ ?, P
DPSP proc near
( c: b3 Z6 G  }+ l( {! N7 k! a" e      xor    ebx,ebx3 U2 ?6 b9 K7 y  |3 y/ v  B1 `
      mov    si,8ah
' m( u  ?0 p' m7 b5 M: n      mov    al,es:[si]
9 Z6 X) N, t! Y& O* J6 A      call   Change
. s6 u4 L* o6 I# X$ z      mov    cl,4! v% I% Y  J1 X) j; Z
      shl    ebx,cl- D! Q  t! S' }. g  B3 ]- v( ~
      add    ebx,eax; c2 x1 P6 {0 i" Y
      mov    al,es:[si+1]
- |0 F4 d* m2 r. H$ @  Q+ }5 Q4 w+ F      call   Change
; c+ o! c1 F6 A1 Q4 C* h0 T, S1 W: N      mov    cl,4
% M4 t0 ^1 ^, p7 ^  L7 f      shl    ebx,cl5 C" ^2 s* {$ ]3 R
      add    ebx,eax7 z( a' L! m* O6 ^7 T  U' p
      mov    al,es:[si+2]* G* P7 m% a7 ^! M" P5 n* T% T6 l9 ?& K+ {) j
      call   Change
3 {% q0 ]0 u9 ^  @* V      mov    cl,4# Q8 R0 \$ n" ^* ], N
      shl    ebx,cl
4 }) T% }" G/ N% B* \      add    ebx,eax: ^/ s  C8 F" g  ~
      mov    al,es:[si+3]( |8 r5 u( {7 b2 i4 R3 a  F
      call   Change1 p2 g& y' d# i
      mov    cl,4
" E; e# C, @1 t      shl    ebx,cl! L; F5 Q$ z( h; _4 G
      add    ebx,eax8 x; F" H6 p: T
      mov    al,es:[si+4]
0 u+ v8 a: V" n      call   Change( b9 v4 ?' _& ]8 J$ N
      mov    cl,4
( a+ ?  P: ^/ ~% J      shl    ebx,cl. }1 T5 J1 w/ Q  R$ i5 }! B* l
      add    ebx,eax
1 l1 u2 S8 B# a  e. [) m) `) D+ z      mov    al,es:[si+5]- g+ C+ @) }0 A
      call   Change2 K# d- h. l* p" T. C* d
      mov    cl,4- p" u6 ]: {( [4 V: m2 K6 y
      shl    ebx,cl
- @% u& Y( E2 {" n4 C' C      add    ebx,eax# ?  z+ N- S2 G
      mov    al,es:[si+6]
$ v9 S3 [0 E* _# P" ~/ {$ o, W: m      call   Change
* E) B1 y8 H+ c. L      mov    cl,41 [' ]8 N. l7 M
      shl    ebx,cl
2 F7 N4 v( T: O' k8 a6 M      add    ebx,eax; k* W2 `, e/ A+ j8 W) T/ @
      mov    al,es:[si+7]" ^4 v* W! n9 h4 S9 E+ T. I) S
      call   Change! |( N8 P. F% X( p: H  U
      mov    cl,4
' m: B7 f- p& @/ T& \7 }- |* Y& f      shl    ebx,cl
9 X9 y- G8 k! x! k3 X      add    ebx,eax: e1 q! R2 B1 d0 @
      ret
4 m% {+ d0 |8 |* SDPSP endp
& l- s3 z+ u. v6 A! ?, V" ^;================================================================================================4 R) e2 U0 ?; {7 v- R. s
WDPSP proc near5 W5 R  g. T/ N
      xor    eax,eax2 I2 l% z: A% E* N
      xor    ebx,ebx
9 j/ G# g4 T/ Y0 Y      mov    si,93h+ R+ m; E( x! r5 T6 w+ W0 f
      mov    al,es:[si]  E6 T; ?; X7 ~. A& r
      call   Change
; u+ R- W- ^* v/ }/ ]      mov    cl,40 k: J4 n# _- D6 n( e: q$ g4 T- O6 x# |
      shl    ebx,cl
7 y% N& M" j! ?" `8 n2 a+ U      add    ebx,eax5 I  o: x6 t0 {& [% Y1 ~  z- J
      mov    al,es:[si+1]
: A3 P3 `0 Q) C2 `1 m3 }; N; ]      call   Change/ h- G+ E5 x$ h$ s" X
      mov    cl,4
. `  y4 P; z& O* B( ]) w( s      shl    ebx,cl
$ |' Z9 x! p  n& ~9 q" g/ m      add    ebx,eax
& s3 ?" q) W% P) |$ T$ Z      mov    al,es:[si+2]
- O  b- v4 `1 }      call   Change
( g0 V4 b, W' C# G" {      mov    cl,4& v( o  Z4 O% v  b9 l
      shl    ebx,cl3 H7 ]. X- N5 H: |( V4 R
      add    ebx,eax
6 P9 e! |; t# P- m- ^2 O      mov    al,es:[si+3]
& E! n. o" c/ G( V2 z7 e      call   Change
0 [, _* b1 n5 k      mov    cl,4/ X* \* @4 t" n$ [- Z
      shl    ebx,cl  M4 z. N: ~& v4 z6 A
      add    ebx,eax2 d' y+ q; H" N4 _+ U2 b. A
      mov    al,es:[si+4]- C8 _; v! C( _; n( S
      call   Change: O7 {; A# _( |# e- n  ]0 N
      mov    cl,4& W) y6 b  z' G3 Y
      shl    ebx,cl
: L) I( k% f% r/ h* V      add    ebx,eax
* u$ o/ \3 ^. |' i' S      mov    al,es:[si+5]  e) }4 v  u0 t) ~  {) U
      call   Change  k- Y$ ?* O( Y9 Q) C9 P$ \
      mov    cl,40 m: R4 V/ s6 ?0 h* V& Z$ d
      shl    ebx,cl+ ?4 y" ]( L8 h
      add    ebx,eax& q% J* j  K% Z/ ^" @. V8 f- k
      mov    al,es:[si+6]9 D4 }9 H% T0 c
      call   Change
1 f  _0 O2 f7 L4 @' N/ c. J8 J      mov    cl,4' _( o& e2 ~4 i# _' l3 o! K/ Z
      shl    ebx,cl1 M- W- E0 u( s) I/ h/ X* `* s
      add    ebx,eax
. C) e$ f5 I: \, E" E$ ]  L% V. V/ m      mov    al,es:[si+7]7 Z. R$ b8 i* b# C6 `
      call   Change' s& e9 [  r# R& ^. f
      mov    cl,4
3 d+ t& C. S6 g7 k2 s; j% W3 U4 {      shl    ebx,cl
% m( y8 q5 h  P* i      add    ebx,eax
6 k! d, f# I/ B- q* c0 }      ret
: l7 b6 ^0 X! q. q" `  _  xWDPSP endp
  Y% C) @, p3 P8 d" k) e;================================================================================================6 e  F/ e- X# a9 P0 G9 [: ^# z
Change proc near
) R3 a. Y) Z2 b* M: {A:   
/ _/ h( ]9 @# V1 s  l, ^6 C0 m* N      movzx  eax,al! d/ v- d2 w- ^- [
      mov    edx,eax
7 ^8 W( g' ^: E1 ~0 {4 u1 s6 H1 q      cmp    eax,'0'            
4 t" P7 p3 O4 n: s9 a% _      jb     A
1 @% J0 P( W2 k/ A7 `      cmp    eax,'9'            
( a' t9 q* ~: h      ja     B
" B1 k4 P! h6 w. }+ ^8 O* U      sub    eax,'0'
) K9 s6 ?. Z( Z; G      jmp    short E7 a! @3 V% b, A' p
B:
& r; Z4 A( t( t, C: J7 R. F5 D4 S      and    eax,0dfh           
# ?! K: ^3 |) y# W; |      mov    edx,eax
2 Z3 ], e3 w" y9 r' t5 f; G2 Y      sub    eax,37h            
4 p/ m9 H2 w: U! o1 _: ~5 f      cmp    eax,0ah" x$ a( f3 j1 S% ^: t! Z8 D- \
      jb     A                  ; g. V, R3 p0 B" H& P% q( X# {5 \
      cmp    eax,0fh0 K- e0 G1 J: L6 H
      ja     A                  
* m3 r) k# t7 f) I+ `/ o  HE:: c! l5 R% x' Z3 @# p
      push   eax       4 y; F2 y4 [0 T8 z: \( r
      call   PRT               
- D) ?' V5 n+ y. c      pop    eax" P8 Z( ~' v; S" ~) `
CExit:1 V; s( u- ^& g, K& k" c0 O: x2 C
      ret
( ?! s% K) x2 n" y4 E5 lChange endp
/ l: \2 t; ]! T0 y; I* g$ |$ R( s0 _;------------------------------------------------------------------------------------------------
7 B6 T% J. ^( I2 A7 S( gPRT proc near3 y; p$ X- L: V
      mov    ah,02h
) h; }5 s) e" G( e  ]: |  C9 i: ^      int    21h# u+ u& G& K# y- z
      ret
5 M  F) A  }; `( W" ~0 l+ uPRT endp& K. \2 [) m7 y% o' B3 s  q
;------------------------------------------------------------------------------------------------2 [5 C8 p0 J4 X8 R( K
crlf proc near. {8 j" z$ L) e0 X4 `1 N' }+ e
      mov    ah,02h* M/ Z8 R8 N7 t, `: y! ?
      mov    dl,0dh
2 ?5 ]0 c* c2 _7 n! C5 D      int    21h3 i0 u, e) e/ A$ G- M) x
      mov    ah,02h
( ?1 {) A  }! f( z      mov    dl,0ah( ~! X, o; l% G/ \  a8 t
      int    21h' F8 a" ~$ G) G! ?9 [1 K
      ret5 e. m+ j; m, x# A+ }
crlf endp" G- K/ @9 e* i% f" I- R0 Y1 t- ~
;------------------------------------------------------------------------------------------------
! ^1 D% P5 y. t" Q4 {( j$ _- D' k_32bits proc near
* e; s$ w$ ^& F- Y; Y      pushad
/ {9 H2 X9 l$ m  C      mov    cl,4- t1 n' I9 ^6 d, Q% b
      rol    ebx,cl7 m; i5 B) A2 Q
      call   print_4_bits0 ^/ {7 R* V8 J( |3 `6 s
      rol    ebx,cl
" `6 c- q$ N  `; O      call   print_4_bits
# |# `+ `' Y; l      rol    ebx,cl
; u6 @1 x2 \" j7 a; u$ X- l+ l      call   print_4_bits) j8 j0 C6 }( R6 K
      rol    ebx,cl
3 r0 B* u' c9 Z      call   print_4_bits4 K3 Y; X- X1 I4 W9 f9 T7 c& s
      rol    ebx,cl
4 W5 q5 ^, j# D      call   print_4_bits7 {- J9 H( h: T% T
      rol    ebx,cl; u1 J$ c- W3 c( F: o3 R- U4 |5 ]8 S
      call   print_4_bits
# [! G4 H- G% N. `" e      rol    ebx,cl" r+ f  V+ h" ^
      call   print_4_bits
! |( F" T# S0 @      rol    ebx,cl
5 I& s% ]4 `9 }( a( ~; P3 ^      call   print_4_bits: R, F; ~) i7 L9 }
      rol    ebx,cl9 S- x0 C( f4 @* P
      popad/ x8 X, u  y& h2 d& J
      ret
6 D! N( u; c! _5 Z' U, D_32bits endp7 _' e. N! I5 c8 Z9 C
;------------------------------------------------------------------------------------------------
5 N6 c" N# g& }. J  j+ f_16bits proc near0 a  E/ }  {. c$ K
      pusha        1 O/ v: w; z, \
      rol    bx,cl
( i. ?$ V  L4 p* o      call   print_4_bits+ P2 {3 B( r) v0 V- L8 C7 S! Y
      rol    bx,cl8 D/ B9 e. Z- y* {1 y2 T, I8 U0 ?- F
      call   print_4_bits' m  {, ^% N. L' }
      rol    bx,cl/ n' e' ~- P) \+ _
      call   print_4_bits3 a6 H& E/ g* ]4 A
      rol    bx,cl$ p) y! i5 z8 N) [4 ~- r  y; C9 u
      call   print_4_bits
) y7 o6 b1 P* r/ S5 U5 x      popa; x; a; O7 B( Y' }7 A/ @$ D
      ret$ e+ j& G6 z) [2 m# O# {
_16bits endp
5 o. e& r4 f- P- f9 s% b- ^;------------------------------------------------------------------------------------------------
* E0 n" v9 M7 v4 d- g_8bits proc near
) i7 j3 R" o6 Z, r      pusha        
) d  }8 Y- R+ q; `      rol    bx,cl
, `6 x* Q8 H3 A/ |2 w; m! l+ k8 K      call   print_4_bits" M# f8 N/ M* w, Z) h
      rol    bx,cl
8 ^: J! \6 u5 E# l! ~      call   print_4_bits
; z; W* R8 b' U      popa
1 R  Z" m/ o- ]. D% n      ret
9 u  q1 U4 U& ?7 U+ K) b; [_8bits endp
& Q: f8 w' V$ Y0 ], v) qprint_4_bits proc near
7 K- W6 n2 {$ i# r      mov    dx,bx* Y  m5 g7 p2 K4 T- m
      and    dl,0fh
$ ?1 U2 w' `, |7 _2 K- ^      add    dl,30h
& }7 _1 d) p2 U! B- O( O% y; \7 v( a      cmp    dl,3ah4 y4 `# W' V; @! h/ ^( j
      jb     print
, B) {& M! H! N( W* R      add    dl,7  o& i1 P5 \* d- R
print:  ) f4 X6 q2 D+ g) `
      mov    ah,2, D) V" {- Q4 k3 i; \
      int    21h" k- E4 c& y% d/ I6 R
      ret0 g7 H  n/ p/ }* [
print_4_bits endp    ! l: w- b; H  @) {: W) z
CSEG ends
; [$ a; p; i( }( eEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-8-11 17:01 , Processed in 0.048247 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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