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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)+ o! E7 q. ~1 m* _: b

* U, U# ?$ D: l則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'% s% u7 i, D! ^

' ^& ~8 t7 Q0 c  W宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
( M$ ?( K" N. R# y) p) `7 ^% |: J6 L4 V! H
.model small; G2 ^) {3 l9 E7 o# j3 B
.386p. k2 g; b: D! \- z' o/ \& @, N) A
DSEG SEGMENT USE16'data'
3 k, g& J) _! e! h) G, L" E; I) A6 T6 z* L3 w+ U6 L, G- p0 m
DESC STRUC/ C8 i; m3 C6 X! p6 S
     LimitL DW 0
$ G6 \3 D/ F  b, l     BaseL DW 0
9 a- o4 [! `# k. |& O     BaseM DB 0
: s, Q; X4 R" w* }     Attributes DB 0
' ]* n0 A  p. i0 {: Z! ?     LimitH DB 0 2 y) s! L6 ~0 |
     BaseH DB 0 + x; N3 E( L$ s6 Y* [
DESC ENDS$ q& }! W6 ~9 o$ x; H3 ~
: ]  H2 U, k1 [/ k
PDesc STRUC
  c( @5 N! }  w& b. X. ?6 v4 w) _     Limit DW 0 " O4 E2 i1 b; t8 }" a; |
     Base DD 0
# x3 {+ M/ ?  S0 q- w# L8 WPDesc ENDS9 G" B# n: X) z# y! i9 p/ _

8 R' P1 }+ {7 i# c) C/ bGDT_def Label Fword
. q0 i: Y0 X2 G* JNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>* @9 X* G  i! Y3 [8 n7 A; K! b
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>* G( q* l1 [! x! F
GDT_Addr PDesc <$-GDT_def-1, >8 C6 I  B) h) K' x, X9 {

+ X! _$ c4 x& V4 ^9 L  f8 g' WMaddress Dword 0
4 I0 H/ F: O/ \) g$ I/ Q3 f3 C( P. O- O
DSEG ENDS
+ [" M4 P8 U0 M) Q; WASSUME CS:CSEG,DS:DSEG4 G+ l) r6 @' {' M  U9 c! A6 r

' _9 N- j/ @1 A: X) jCSEG SEGMENT USE16'code' 4 D# N# e8 z1 [9 V
      push   ds
+ ]$ i9 X# `6 ]6 O+ K' _3 V% O      push   es
1 ]2 P1 A( G: q  A5 k7 z5 z( X      push   fs- \" O6 z3 T+ U9 H$ I
      push   gs
& V+ p# u# Z& i, e2 j0 g( ^      call   big_real_mode     
8 A0 [7 {+ d, ^: O# ?4 d& T      call   Get_Commandtail
, {/ F, E, b# W$ e' s0 o5 {+ p- U      xor    ebx,ebx
5 P( L  J. e" W( m1 f& h/ ~      mov    si,82h
. q) [1 f+ r1 q. c( Z6 S; o      mov    al,es:[si]
/ y6 d; c0 v  w& ]      cmp    al,'r'
! I6 \+ K8 V3 H; k7 F) W      je     R& I* Y* W& g$ b& h# H
      cmp    al,'R') S; N6 R9 N! l
      je     R
+ ~$ u! B) _" v2 l* g- W      cmp    al,'w'
& n1 `4 g1 q3 A: `5 u2 j, U      je     W/ r5 s5 `3 N8 Z; C$ {& R+ E$ [  @
      cmp    al,'W'
, ]- n1 W  P& O7 ?      je     W          5 A3 ~4 P( ?0 P0 {2 {, _
R:# g" a* G: t( x4 ]6 B) V; m
      mov    si,84h
5 P6 O4 Z& R6 T3 j      mov    al,es:[si]/ g2 l3 G4 m, @5 t
      cmp    al,'b'* y, u% b) V/ b( }; O) c3 ]
      je     RBT
+ u, b' S6 U) Y' Z& Q      cmp    al,'B': q* O, |/ C  K$ z8 p; g
      je     RBT
, A# j: Y; t; S- l1 ?+ S      cmp    al,'w'$ J0 b; H" T2 L& M! p9 F1 H5 m# m& d
      je     RWR
: q6 i9 G: J* J$ T) ~      cmp    al,'W'
) }5 U* f0 M% }+ c0 f2 i8 I1 t' m      je     RWR
9 x1 I# H- z! j' N! Y0 R- m      cmp    al,'d') a  `6 a8 x# n  ^! d* o- K
      je     RDR
* k! \. i+ `) x4 x9 @  y4 L& ~: i8 P      cmp    al,'D'
: o' K3 M% S( T      je     RDR            
% k% a5 K! Q' u9 [5 B( gW:      
( z- z3 a/ U8 ~* X7 @. ?6 ~      mov    si,84h
! R' ]  t3 Y" ?* d      mov    al,es:[si]5 E/ |0 o8 w  B
      cmp    al,'b'
# j6 A$ |' E- z, ~& h6 ]! b, Z      je     WBT' g9 o  B$ H$ E% }
      cmp    al,'B'
3 \6 `& E6 \' p      je     WBT/ S, i5 \% k! r) y
      cmp    al,'w'
, b6 t6 k9 |7 Q3 A% {      je     WWR
& \( w1 i( J0 o6 I  k, }! W. ^' ~2 S$ a      cmp    al,'W'
; r; N% ^: p3 v, j1 @      je     WWR
1 Y8 c6 H- C2 D" r9 X9 i: `      cmp    al,'d'1 y$ y6 P6 @- A3 `( s
      je     WDR; j1 p( S7 W$ X9 W8 Y6 i
      cmp    al,'D'! S9 @( U' S; A6 ~$ \5 \$ H2 K
      je     WDR' t. d2 l2 l7 X8 g" m8 T+ Z3 w9 z
RBT:  C: A- I4 m! l
      call   PSP        
7 X' e  r, M6 g) L      call   crlf           . J" A* G. K/ S$ c% K
      mov    esi,ebx
" b! ]1 O* S% I9 K8 W      mov    eax,fs:[esi]
+ N  Y, s' q! W      out    80h,eax- M5 K! p# f7 O+ f' G
      mov    ebx,eax
% V* E: ?) D3 J5 \7 G+ a' k+ `      call   _8bits* [0 T; A$ J8 `2 T3 N6 V' R
      jmp    Exit
" N' p. {. u" Z  rRWR:
+ f3 i5 J% `8 B5 s4 T      call   PSP        
7 N" C6 x8 d) H5 Q* s5 A4 G      call   crlf           - j) L& [! j# i- u# O" D% K+ E
      mov    esi,ebx
' f8 ~# b; C& x6 R. C$ r9 ?      mov    eax,fs:[esi]5 \# T2 N( ^, i. M9 P1 f
      out    80h,eax
1 S7 s- j, V* Q! ?: Y6 a$ x: d) `      mov    ebx,eax
, Y' _+ B+ f5 g' g7 s1 \      call   _16bits! F# ]8 n" }& o" P
      jmp    Exit
! n5 F" k( x0 E  Z9 LRDR:
5 t. C6 [  L$ U8 F/ k      call   DPSP        & y7 O9 M3 X8 E3 J- K9 o  g! ?$ \
      call   crlf           0 S4 U) }  H1 O2 b1 V
      mov    esi,ebx  F5 E$ v; d# P5 t+ B5 q1 Y
      mov    eax,fs:[esi]* x8 g" m8 O* ]% u% z7 `' p
      out    80h,eax7 I9 u& `! Y: l0 |4 y& v
      mov    ebx,eax: {0 l* ~+ T, e4 d) V( B- i* Z% Y0 q
      call   _32bits
& K" {4 S- E6 @" f1 h      jmp    Exit' x; O3 h6 Q$ f
;------------------------------------------------------------------------------------------------
, U& W6 x; ]. W+ i8 i" \1 AWBT:# o0 d: y& M5 i2 N6 O* ^, C
      jmp    Exit
' O0 G, h6 t5 i3 f. bWWR:
) a  `4 F; m  C9 ?  J      jmp    Exit
6 a) z" z9 _4 s* AWDR:
. a! f% ~9 y# r- r5 ~+ ?      call   DPSP
0 ~2 a) d; ~/ g% _7 m% T      mov    Maddress,ebx      
/ Y1 L; x& B8 f3 F      call   crlf
  J2 Z" W2 o: O4 x" r' X) G3 m) ^      call   WDPSP
1 v# e$ e# O: Y9 Y# E  h: L      mov    eax,ebx
7 B; _: T& y4 ?4 B' c- h2 h0 A4 d      mov    esi,Maddress            q8 M" Y) E5 u9 }' M
      mov    fs:[esi],eax
) o4 V; D/ M9 {  [( u      out    80h,eax
# N: \4 ?7 q- e7 j0 L( c      jmp    Exit
" W( z" d  l7 h: _4 G: N  ?9 y0 K;------------------------------------------------------------------------------------------------      
8 R$ y* U+ v7 q9 ZExit:
# t7 W" d* `' U* x- |3 v      call   real_mode     # s. c- O) j% f' c, z4 ?# J2 y
      pop    gs
, s4 {  Z  M1 M# T3 ~( N& Q- `. [      pop    fs
) e* {7 K2 }! h6 t9 N$ g5 J: T      pop    es" j& T& |9 L+ k& e
      pop    ds      
  x/ Z4 n6 K2 X  F& E/ L- U. a' ?+ M      .exit
  g, y2 |6 y( t  f;------------------------------------------------------------------------------------------------- r2 E( g& x8 F
big_real_mode proc near. I3 @% Q$ u6 T$ n
      in     al, 92h% e6 F# c% d/ L6 w+ M8 A9 j
      or     al, 002
/ O  N9 B# n  B) m# M      out    092h, al
9 O5 f/ m- E1 v' A* V/ Q# T8 @1 y      out    0edh, al, q8 i) V' m! T! ?! m0 ?# J
      cli
/ h2 L( {" P+ e' {5 B' `      mov    eax,DSEG: m) e  Y. u8 t* L! K) |
      shl    eax, 4( O, ?! H0 y$ |" Q+ j& j
      xor    ebx, ebx
- X7 L9 n1 w5 ]6 m; j      mov    ebx, offset GDT_def4 m: l7 a% L. j" [( l& J3 C
      add    eax, ebx4 O- I+ V  s- }' ]# |( g
      mov    dword ptr GDT_Addr.Base, eax
- M: z7 N9 z' E* K$ V( y$ Z      lgdt   fword ptr GDT_Addr
% H9 D. s$ e: }+ }      mov    bx, 83 C; J* t5 d, g3 V' V+ H; Y0 [/ q
      mov    eax, cr06 d- ^% E6 J- d' u1 ~( M" v
      or     al, 1
4 C. ~6 G6 n: h) k8 y      mov    cr0, eax
! `. B$ ^8 Y( ^- h6 I      jmp    PMod' |9 r2 N+ I7 [* Q9 L
PMod:, G' P: ~- s* L" k! _
      mov    fs, bx  O  l9 |' a1 X% Q: `. ~% h# X
      mov    gs, bx
1 T/ w( L- `3 T      mov    eax,cr03 o& c! S, D- g/ _0 K
      and    al, 0FEh) }" P2 g  F$ _" l& p8 N
      mov    cr0, eax
$ M+ \( V& n& @( T$ U. `      jmp    RMod, ?$ Y' i; m3 }  r. J+ c8 \3 y
RMod:4 a- p2 X: w! @" d$ r9 E
      xor    ax, ax2 ~+ v; L1 h1 I8 r% x5 R  ?
      mov    fs, ax+ c" C1 g' U- `% w" M
      mov    gs, ax     
5 Y& l2 V: }; d6 @# D9 h      sti     * C: U8 u- n; A4 v3 A& m
      ret
! Z. z2 ~6 d; r4 G) qbig_real_mode ENDP
# B" c( l7 W; Y;------------------------------------------------------------------------------------------------
( u' o+ D/ T$ K. f3 |real_mode proc near% m1 ]+ Y( d/ a/ M' j- S9 }
      in     al, 92h; r: \5 P5 _6 M& R# K; q" ?, P5 y
      and    al, 02
, }, }( Z) l5 v6 F9 j' A" ?" g      out    92h, al   
6 R9 @' R) ~$ j( w5 @% C& N" d9 `4 w      ret8 J+ S' c7 u0 a6 J
real_mode ENDP
& @  f0 M3 ]  E0 X' D8 `% W;------------------------------------------------------------------------------------------------
. @) G6 A3 B4 k2 M( f3 u9 gGet_Commandtail PROC near
$ t0 N  o$ i: B% _/ x1 q      mov    ah,62h
9 j. C5 s: T2 H( i; S* ?      int    21h
* N! A9 |* ^' d$ g4 W6 T/ _. c) P      mov    es,bx: o0 B, J# W/ K4 I; ^
      ret
8 F. g* ]$ j, E: D& yGet_Commandtail ENDP   
7 l" N9 `" V6 n8 o/ \6 x, T;------------------------------------------------------------------------------------------------
! \( P7 p6 n* z# N3 H, g9 aPSP proc near) q; U* u: C% L0 h% {
      xor    ebx,ebx0 d4 m6 [% i6 D/ ~3 t: c
      mov    si,89h
$ g2 b4 O8 I- h0 a/ e      mov    al,es:[si]
) Q" `6 o: Z4 }! J5 ]      call   Change
- h* E  L6 G3 d      mov    cl,41 [. v0 U3 A* [1 W. o/ \4 M
      shl    ebx,cl
- \* n9 ~0 J, Q7 ]2 a      add    ebx,eax
5 ^2 \2 ]) D: V7 U1 K, D      mov    al,es:[si+1]
) W. N" }7 @; F/ d) I: V      call   Change
/ E) _: u/ T5 B      mov    cl,4
. A7 v6 o' B( Z- P: _      shl    ebx,cl' a" Y# s+ R0 `
      add    ebx,eax
  q* J# p( U/ f* z5 t! d4 o      mov    al,es:[si+2]
& Q- l7 y) p; Y+ t4 r' R0 Z4 B2 L      call   Change
, }  F; H, p  J4 s5 ^$ `      mov    cl,4
' Q+ `# n5 B! W, O* D      shl    ebx,cl
) b% B# ]& Q6 \5 {* Y2 X2 S      add    ebx,eax/ ^; c& m; k5 V0 Z
      mov    al,es:[si+3]
9 A) G0 Y. x: _3 i% L9 S      call   Change. D2 j5 Q4 k& M: O6 D, k
      mov    cl,4
) {2 Q( @' L- v/ r( C( u  q) {      shl    ebx,cl
. ?% M: d, D9 h3 a3 ?      add    ebx,eax
1 J/ B7 v6 J4 ^+ T2 T0 q      mov    al,es:[si+4]9 o; X$ x( X0 H" h) {, ^# D6 d
      call   Change
4 M8 r5 f( ~3 n! a. s' H      mov    cl,4  X  \: V) \8 C2 c0 p7 \7 C+ y3 n
      shl    ebx,cl% T& p9 g& O' {5 `$ R& o, d2 D
      add    ebx,eax
+ N: b: P) _* _" Q      mov    al,es:[si+5]
* @0 l. F: W3 I" q      call   Change
1 l6 Q5 d. p$ r, O- c5 Y! K& a      mov    cl,4( G# \( I& o  v; |2 e  K; ]$ B, H
      shl    ebx,cl: Y; x" y* G/ s0 P4 X
      add    ebx,eax4 k' r7 e# V0 F: [3 l) G& J
      mov    al,es:[si+6]
. g  ?- f9 }5 X" n& G      call   Change
5 `$ s+ R; y7 [( E9 T      mov    cl,4
* l6 a* g3 q/ h9 j; S; R/ [3 @      shl    ebx,cl
. L+ S. q9 ]. c0 @      add    ebx,eax/ ~" P* Z9 ]& _8 g: V; V
      mov    al,es:[si+7]
; `# G) B1 L; ?/ b9 W8 ?3 F      call   Change/ k0 p. Z; c, V' g' z6 X  b$ g3 Z( u
      mov    cl,4
/ |2 t8 `/ |4 A! M3 k: L      shl    ebx,cl
1 G* T1 V/ G8 `. F      add    ebx,eax" h" X- F+ ]# [+ d8 g
      ret
( I; E2 ]2 a. |* E2 OPSP endp( n' b3 W6 ]  P% ?: @
;================================================================================================
% D. f" ^* `& O, O) E9 U: }  }! EDPSP proc near
, l; Y: z+ V7 X# B, v; ?0 k      xor    ebx,ebx
1 G4 @5 s/ ]' h- O      mov    si,8ah# N2 N/ G- d- }7 ^* ^% y
      mov    al,es:[si]
6 ^2 A$ m! u9 E/ c- T      call   Change
) |9 g9 }  ]! t8 C' }$ M( A      mov    cl,44 R9 s# p- U/ C# X$ l& Q1 ^! R) B
      shl    ebx,cl
- ?7 f: @6 n& p0 L      add    ebx,eax
% B3 G" U7 V: H, N/ N! n, k( E6 K4 c3 T      mov    al,es:[si+1]
+ ~; n( q% F! o4 m1 O3 b      call   Change
# c; a) T) @0 I; l( q+ _5 `      mov    cl,4
& o7 B/ r3 I! u9 V* E  [      shl    ebx,cl
( m( ^, U8 @) H      add    ebx,eax! M9 J" |- w8 ~& c
      mov    al,es:[si+2]
- v9 J8 E& Q8 H2 d) C7 a      call   Change
5 e& {. p, l8 |% ]/ i: M' ]; q      mov    cl,46 v4 z, a- A7 d) A' [' L
      shl    ebx,cl
6 y7 ]5 j( ]+ ~% p      add    ebx,eax
" ]. K$ E8 x; k/ Q% R      mov    al,es:[si+3]
( k7 q! b, V  Y9 i) Y' ]0 F      call   Change
, H. m8 c7 Y( A3 H1 @) r2 ?. J: a      mov    cl,4
+ L$ e3 \; G# D) b$ v7 K$ L      shl    ebx,cl( T. ~/ Y& g+ K  W; u
      add    ebx,eax. c4 L) b# _% U" \$ j2 r  }0 e% C
      mov    al,es:[si+4]
: i5 B; M* E7 y" C5 e( s      call   Change1 Q' I3 U/ M; m5 e  r& [) d
      mov    cl,4$ I. {, D" g3 q  ], K
      shl    ebx,cl
8 s1 C0 h9 M3 d' i: F      add    ebx,eax
, y. A7 N/ A2 j6 F      mov    al,es:[si+5]
, B2 C& o+ o( l8 @3 e8 B0 r$ W* E0 ]      call   Change" t, A. w+ c4 w4 d/ L
      mov    cl,4$ v( }6 t3 ^, C, D  E! K
      shl    ebx,cl. C8 d4 Z* W3 H8 O, T7 K: e
      add    ebx,eax
2 }! R: F& ~9 D, q      mov    al,es:[si+6]( @& a- e* @  r" r3 t! E
      call   Change9 X& f6 d5 N: d: q
      mov    cl,49 K. V3 }7 \6 W3 `
      shl    ebx,cl
' T2 Y' v* [! K5 @8 u& P      add    ebx,eax
: d! x* \7 H$ q% p& e+ l      mov    al,es:[si+7]
3 C1 \* h: z0 ?  j& m( K      call   Change3 I' ~; }1 c" y3 [) H
      mov    cl,4  q2 f7 t( ?+ N5 `. z5 H
      shl    ebx,cl
# u* N1 Q( B$ o  T* y7 \8 V      add    ebx,eax
3 o6 b  B) w* K! {) r      ret$ h1 S7 l4 K, N2 j
DPSP endp# P8 ?  {* B& m0 V7 [
;================================================================================================
" o4 R: P+ n! _' K0 q3 MWDPSP proc near
3 ?% C5 K3 f8 r7 h9 e      xor    eax,eax
1 e9 s' G& X" R. @      xor    ebx,ebx
9 f3 Y/ i* s/ a( \- {0 T      mov    si,93h! Z  u9 H* G/ x- Z& u
      mov    al,es:[si]
1 ^* w8 X- O. W' u      call   Change' D" o; H' e8 n
      mov    cl,4
9 @* L" {$ P0 e% U      shl    ebx,cl+ b) S( R+ u* u
      add    ebx,eax
* C  f; v$ G9 h! U      mov    al,es:[si+1]* c; z8 n# G8 M
      call   Change
* y# J1 r, W! R8 X7 Y% c      mov    cl,45 y' f! _! ]4 |+ {# C
      shl    ebx,cl4 G1 \. H) O1 O- e% _9 _* f
      add    ebx,eax
7 ~3 X4 b7 D9 K  ^( W% @6 _7 y. J4 h      mov    al,es:[si+2]# y! l& Y3 e1 z8 P
      call   Change
' ?! c; d) f" y7 V5 h' c1 z      mov    cl,4& A7 R9 U/ t! o& I6 r. B+ J- k
      shl    ebx,cl
! ^) P* F1 K  E( G8 |0 b  p      add    ebx,eax4 \3 m/ N. C" z5 B" w4 S
      mov    al,es:[si+3]
  L* G0 y; s2 C+ o9 a. Q      call   Change
+ ?* B4 T5 b% @/ |9 F3 ]9 {* P      mov    cl,4$ H  {. f0 e( r! Q0 n
      shl    ebx,cl6 q& R4 Q8 }8 W% |% k* A  O
      add    ebx,eax
0 U1 C" j. d8 U3 O' y3 ^! F+ d      mov    al,es:[si+4]; v" t3 q5 q+ g! W" E
      call   Change1 U% {/ _9 \" H/ p+ \6 Z
      mov    cl,47 I9 w" {: t" R7 B
      shl    ebx,cl
/ u  V/ y6 G" a7 Y      add    ebx,eax
+ R  Y3 ^, Y+ [8 L- x! Y" P      mov    al,es:[si+5]& P. n% Y5 n/ F+ |: m( K/ u
      call   Change
9 X* x  L' F$ @* \! W      mov    cl,4! |8 y& ]/ W9 D- |: N; c5 H( S
      shl    ebx,cl
, N& Q7 p* S( ~# `& A! V      add    ebx,eax- {2 Z# i& N4 A& K6 x0 A
      mov    al,es:[si+6]6 }8 [( |6 ]; C3 M% X" Q
      call   Change
3 Y5 ^: z% K, S  M0 v6 W+ |. C      mov    cl,4
0 g  F" w! K4 M+ o! r& ~2 n      shl    ebx,cl6 l9 \! m$ t# {
      add    ebx,eax# S- U7 h( p* I0 P5 \4 q+ c  N; {, n3 K
      mov    al,es:[si+7]/ `' u1 k" v! j( n3 k, _1 N8 G- l
      call   Change
' x% l% F) ^& c0 W/ w! ~      mov    cl,4' V- P! g2 A7 z4 G% M
      shl    ebx,cl* \4 H& `5 T9 w+ N0 v! N2 o
      add    ebx,eax
7 `$ a- m0 L; M3 F      ret
' i7 W3 A  e3 Y- T4 @' w% wWDPSP endp
! t9 j# E& w4 U: a) b8 `;================================================================================================
2 O( `, @/ q& k) {. L; C7 PChange proc near
# P  `/ T. M8 R8 ?3 KA:    3 d$ g9 ?1 \0 y: P
      movzx  eax,al2 J. q+ q7 t- R  Z. B$ [, G8 R9 `- l7 ]
      mov    edx,eax
  k  O- M/ @; T8 g      cmp    eax,'0'            
6 w4 j& r+ N# f3 i; S9 v      jb     A
+ \1 H7 ?$ x. K7 i9 R      cmp    eax,'9'            $ `- @9 L2 _; W! \" E
      ja     B
( A$ g0 s; A; v' V8 k+ I5 j! \: A      sub    eax,'0'
- W2 F$ U! n7 t: C' K8 p7 a! x$ m      jmp    short E
- m% G9 E+ b) j7 s" L+ oB:
& j0 d( B0 [! d, \      and    eax,0dfh           " U9 |0 s1 Z5 m+ ^" ~2 x+ _
      mov    edx,eax
  v# ], x6 `" ?5 d3 x' S& v' L% M      sub    eax,37h            
; k- J* k& Y- T! _1 f3 `      cmp    eax,0ah
( i' F, k  ^6 B/ p      jb     A                  
. O& F5 g7 }4 G$ {% G: _% _. u0 Y      cmp    eax,0fh
) N$ d+ q9 I1 u/ P      ja     A                  
5 x- R) y3 K! p) o8 `E:6 m$ u# C: f& d. N* x0 z( W& l
      push   eax       , [9 i* x  K+ T, E0 c5 ^8 @
      call   PRT                0 Q. X: ]7 e) T& u. a% Q  V$ X! K
      pop    eax
' K: S4 U. \. x- Q% h( T/ TCExit:' ]* M" p* d7 @9 r
      ret* y9 A! g2 u, @3 e
Change endp
, k& Z( b$ O4 m3 H! E& [( {. ~;------------------------------------------------------------------------------------------------% I- c7 Q" L* l! D
PRT proc near' j2 T2 a8 w3 N
      mov    ah,02h
) b: K2 s) ]! H# l3 E      int    21h8 H6 h. X; @# u$ p
      ret
8 @0 W$ a) D: }7 _" o7 RPRT endp
5 n0 Z0 A! [8 J9 S% c/ u$ ?;------------------------------------------------------------------------------------------------
2 C+ a& N+ J, gcrlf proc near
! b* m4 ^8 D# D4 h1 C. t      mov    ah,02h3 \# u4 A% Y/ }' c; y3 I
      mov    dl,0dh- m, w# P; O  }- d8 k/ `; I
      int    21h  ~! x8 ?  M0 K& |/ B/ ^6 v
      mov    ah,02h) R: ^) R5 C+ z/ w
      mov    dl,0ah
2 }8 N% r! Q7 n  B; z1 ^: q" F      int    21h
+ R# M! I: U8 I. }4 P! H      ret
/ w4 W' y1 A; A/ v- rcrlf endp, ?1 I( C9 m: s* U
;------------------------------------------------------------------------------------------------. g0 N/ @/ x- W1 x& e( s) Z
_32bits proc near9 U: M4 x! t  ]$ A0 C
      pushad. r2 P# V, f$ t: M6 z' d
      mov    cl,40 v7 U$ H1 l/ z+ V- G7 A
      rol    ebx,cl, E2 ]  q: T7 l2 U& W5 W) {' [
      call   print_4_bits
" Y1 _2 _5 I; ~# J7 \, f! p      rol    ebx,cl( ^7 u5 x9 @4 f. \
      call   print_4_bits2 u, t6 n; w- f! n, V  _
      rol    ebx,cl3 a! N$ J: l/ i+ O9 O4 k5 l
      call   print_4_bits
8 T  {1 _, [( Q3 G8 w, z      rol    ebx,cl# b3 W+ y: V1 E9 J7 n
      call   print_4_bits
' m; S$ B3 ~2 m: ]- U      rol    ebx,cl
" W, H. B9 o! n      call   print_4_bits
# X; m1 S" Z1 S      rol    ebx,cl0 F) Q/ \4 e! l: C0 A5 Y$ e
      call   print_4_bits# y/ n8 i$ ~, w5 M# K/ N
      rol    ebx,cl
7 M6 Y: z' F6 ?; d      call   print_4_bits
: ]; X/ e! @( O" D      rol    ebx,cl
1 ?8 H/ u, |) p" b      call   print_4_bits
" n( F7 _7 s$ \" Q, i      rol    ebx,cl
" F( q, a3 M2 ~# I% W      popad. z+ L) P; ?: v. W+ w1 F- g: W
      ret
  x  x/ o5 t  p3 r( S8 [( [_32bits endp% ^0 ^( T& C/ w( n% ?6 h( `# f9 O
;------------------------------------------------------------------------------------------------
& p) Z/ ^- F4 L8 p% B0 c+ n_16bits proc near
& t- w. X) G. D) D+ c9 n7 |      pusha        
: v$ W; A! k6 ]: q- Q2 k      rol    bx,cl
" ^! r" N% W- j0 h      call   print_4_bits( Y7 N( y( i! G/ E9 q, y
      rol    bx,cl
4 f9 d3 V$ m: D* t( z) C      call   print_4_bits
# J0 c* k6 T" S9 p! l) t  ]      rol    bx,cl
" H# x% C2 Q9 ?6 `" k      call   print_4_bits6 d5 K6 x4 w' u" k- j  ]
      rol    bx,cl$ C/ l/ j4 @5 x# Q! x
      call   print_4_bits
2 R- c) x; F* o- o      popa: l8 |4 S/ D* O0 J  X7 o$ t
      ret' T. `3 K" L) V. G& ^
_16bits endp
3 P4 M5 `0 h! v3 w;------------------------------------------------------------------------------------------------
/ K* V) |* Y2 J3 q2 ?) @+ G_8bits proc near
$ ]6 Y7 [# H+ {- g' B, C& E) p5 M  }      pusha        
# [1 i# t7 z7 c1 _8 H      rol    bx,cl
9 t: D" s- X3 f7 M3 X5 _5 W5 m6 @6 ]      call   print_4_bits
. {* l7 D1 o- A  y+ e( [      rol    bx,cl: B. ^  }& |. z$ V3 j  H- j9 C/ L
      call   print_4_bits' E4 Z2 j' ]3 \$ y
      popa
: W/ w! y0 q, s. V( e      ret* D+ J4 f! J- h$ }: {) s. ?
_8bits endp3 }* a9 r" F  Y1 j1 t3 R
print_4_bits proc near$ f; J, L  y( n( j3 a6 c/ Z/ \
      mov    dx,bx8 O$ L" s" y/ v* H( a  R) g8 a
      and    dl,0fh
1 J: W" E2 w( u      add    dl,30h8 f4 e- j$ S& U4 q
      cmp    dl,3ah% @+ N& D! d+ {& J# h8 V
      jb     print
$ s% t% D3 |! M1 {# {* t8 h9 k) `      add    dl,7! p0 g5 [" [6 y/ F" M
print:  ; |: }+ U+ Y  Q! q! c. X
      mov    ah,2
0 e6 e0 X  B& A$ l, n" R9 C* E- D      int    21h
# c0 x& k/ V  l& G3 E1 j3 {      ret
5 x6 [! ]3 @9 T7 q6 F: T4 J3 Q% Dprint_4_bits endp   
9 s! U/ d9 p9 _CSEG ends
7 E* |% B) n; x0 cEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-11-1 21:33 , Processed in 0.115368 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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