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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)9 d5 m9 @# G4 E, j9 u
, G" P4 z' I+ ]8 h/ R
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'- P1 f. S2 l8 q2 G" u5 P
, T8 Z- o0 [* X
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  ( k2 l% V! ?0 c, C0 g5 j/ B- s
$ j4 f  o5 Z' C  D
.model small" u+ _  S3 v$ ]% W1 K8 B9 q7 C
.386p$ f* b: ~- _' F. f8 _1 @
DSEG SEGMENT USE16'data'
- ^# i( Q% ]: ~% d% h2 ~4 V. L6 ?0 Z
" w+ c7 Z2 u# FDESC STRUC9 H/ }7 l0 h" w' ]  N
     LimitL DW 0 ; l4 {" R, J# \/ b
     BaseL DW 0 / `7 o6 {+ b1 T: v
     BaseM DB 0
, E, s2 o( X" h; U, g$ h     Attributes DB 0 , K/ P" r8 n: {7 T, J6 U
     LimitH DB 0
& B' ?  ]- O  e$ P2 w0 C2 b8 F$ g     BaseH DB 0 ( I) b7 g' A6 m8 E% E
DESC ENDS
( J. C; x0 x- \7 w/ Y% w7 |( V5 n& M5 W2 L
PDesc STRUC
1 h- C( }, H% n" @/ j0 r2 j     Limit DW 0   i5 `: @6 w) s# N* y
     Base DD 0 ( E0 ^4 Z# L. x& U( D5 `6 ~' p
PDesc ENDS
$ _  C, D, n) y: ^; Q* u& W4 g
( N4 E$ X" _& D" a# TGDT_def Label Fword
7 E2 D6 \/ E4 n$ ]0 K. F3 [" V: H, JNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>0 ^/ |" Z" |/ L% P# Z
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>! P, i  i+ u# Z! B9 E
GDT_Addr PDesc <$-GDT_def-1, >
' k4 x, e" @, H' q" b- H/ P' A" n6 z5 C: Y/ A* Z
Maddress Dword 0
) D$ y2 \, r7 b5 @
) w: }2 ^3 s7 }* W2 FDSEG ENDS ( P; x, s  U7 I! Z5 }9 y0 _" l
ASSUME CS:CSEG,DS:DSEG
% V! }; f$ X% J
9 l. q5 ?5 n1 f8 OCSEG SEGMENT USE16'code' 8 ?% B; E  K8 X4 G2 A9 F8 H
      push   ds) Z6 P" `$ D! _- m: L9 q; |7 c
      push   es
  _! X$ r3 k1 L5 T0 d1 k      push   fs
9 `( x0 X' N0 L8 F6 M1 u      push   gs
5 ]6 Y$ u  R' S3 {, l1 |2 H0 w      call   big_real_mode     2 e+ l" o8 O& C" A+ I. b
      call   Get_Commandtail
3 S7 X6 q$ {+ U$ B1 z      xor    ebx,ebx
4 ~: m! p" N; {8 R, O. |% K- |      mov    si,82h) C# F0 n, W6 |
      mov    al,es:[si]
- x% A2 E. r0 L* c- Z$ w$ D% |      cmp    al,'r'
3 q! v- M; K5 z+ [1 S" K& _1 H      je     R
4 t$ y3 o6 `# z" `: C      cmp    al,'R'
. h& s! [! d0 D; M% W1 }      je     R5 H2 M* y( C8 Q+ r
      cmp    al,'w': L- _7 @: |- B! H# a4 v) k$ }1 y
      je     W$ i# Q; Y  N( u' O7 K% }" k4 A; b8 m
      cmp    al,'W'
2 V$ g! w6 r! C' G: e      je     W         
4 a. k. B! R( m9 b0 g( P' U; kR:+ Y  }* @' ^' T; h
      mov    si,84h
+ V! [' W" `: i* W( u4 h      mov    al,es:[si]
9 S" |; }9 K/ I      cmp    al,'b': }' a, Y/ k7 l: `4 V) h; O
      je     RBT( R' b. a5 `0 l9 g  r2 r
      cmp    al,'B'
; a2 x5 W: X+ `* W; t      je     RBT+ Q% h) d/ i8 Q# A2 g
      cmp    al,'w'
2 ]) F! j8 J+ h% q0 Q      je     RWR
# u5 }6 D/ R; I4 G5 a! i* F5 v      cmp    al,'W'
8 A1 L: D) H0 g: N, y      je     RWR
, h4 d% D: t# q! {      cmp    al,'d'0 n' y- Q- v1 [) M
      je     RDR' |2 Z- e1 X& T
      cmp    al,'D'
' Q& k* O" Z  q5 U: X      je     RDR             $ T! F0 d: D$ M9 d* {9 O
W:      
* N0 B; |* h- ~, L9 k# ~3 O      mov    si,84h7 E9 @3 m5 }- J& p/ g
      mov    al,es:[si]& ~& O$ U+ y" |, q5 d& p3 d
      cmp    al,'b'
) k: ]7 c0 ]7 K6 T9 [: I      je     WBT6 }2 P$ [* u" L( \2 P( F
      cmp    al,'B'
% r% a* E/ x* Y5 q      je     WBT' X3 x! G0 I( P7 j( d# P* H" L
      cmp    al,'w'
) Y9 J" h, i+ i$ @; k9 x1 U      je     WWR
" k4 Z# B' E* ^# F3 e7 v9 V, D: u      cmp    al,'W'3 w: Q. E+ M" |; [
      je     WWR
) [7 N3 K1 `1 w* H6 H/ H" b, G      cmp    al,'d'
' A/ T. _& v; A# o      je     WDR
1 d$ Y$ P' b( L. ~* @  N      cmp    al,'D'
6 ^4 C  h. D2 m6 ^      je     WDR
/ e: \3 h& |2 M, \. n# y( ?RBT:
" V1 ~  C, I" B( L" {      call   PSP        
6 l2 C. |  r/ ^6 ~# Y+ Q2 B      call   crlf           
7 V3 x+ J! \5 @: z9 c5 e* u( I( H  J      mov    esi,ebx
7 H. J/ o6 _/ {  e      mov    eax,fs:[esi]0 I' F3 S9 G# J4 y5 ?7 p" U! M
      out    80h,eax3 t; _- g7 b& Y
      mov    ebx,eax
+ E- s  A7 j3 p$ i0 A0 v( [* x      call   _8bits6 Y( d' e5 U3 d" b$ E/ w
      jmp    Exit
$ N; x# L. M, f) S% T' d1 m+ W  CRWR:
. q% R/ F/ W" M      call   PSP        
+ l( H% @9 j* F      call   crlf           & w: E8 N# f6 t& q! J# \
      mov    esi,ebx
6 d) g) P' j) F      mov    eax,fs:[esi]
9 A& y) t* F/ b1 W8 q. X      out    80h,eax
! s4 W& |. ~: ?4 i2 ^. ]9 s      mov    ebx,eax6 e" o+ ~2 i/ x" M' D  O
      call   _16bits' u1 C; `" p: h$ Q
      jmp    Exit
; E$ j3 x4 G/ wRDR:9 x8 L" z5 L. D0 V% Z+ W
      call   DPSP        # }0 J: V7 x5 |9 X
      call   crlf           6 n" e+ [2 ]5 x( Q5 ^) H
      mov    esi,ebx
7 _8 H: l' ^* F' R      mov    eax,fs:[esi]
7 x% g% a7 l) G  D) \, N' M: W      out    80h,eax- n( V) H( N' ]$ `- B/ d3 d
      mov    ebx,eax$ D) K+ `6 u% o# B% y* H
      call   _32bits
% o8 Z) [$ b. f& G& A/ U, a+ y      jmp    Exit1 s. |( J( s  [3 @% b
;------------------------------------------------------------------------------------------------7 V9 k7 t7 j8 n- c
WBT:$ [) }8 |& m, W9 u/ d- ~$ r1 M% s
      jmp    Exit3 q; Z7 |: D4 ?9 |* C% @- [9 c) W
WWR:, j; c+ q- W0 q6 m& d& f
      jmp    Exit
3 ^8 P4 ?7 I, d0 Y9 RWDR:  G6 J. E5 _6 D* b, {( c
      call   DPSP- d  c1 R$ x5 d3 {
      mov    Maddress,ebx      
& k  ?* U1 v1 a4 G& l( L* P9 x' d      call   crlf
6 |- X, Y3 X& W6 {* F. |      call   WDPSP; b6 e. T8 E) H; l$ O7 m/ B
      mov    eax,ebx
1 m. |) s. s& u) b# a0 c      mov    esi,Maddress         
/ ~! {5 B' P9 a      mov    fs:[esi],eax6 X: K. B6 H$ k% o
      out    80h,eax
) G+ j9 ^- J' F) K/ {      jmp    Exit/ ]* w4 Q( o) F, Z+ S/ i* |
;------------------------------------------------------------------------------------------------      
" Z  l; A6 |$ x& _* {: nExit:# j/ ]9 z: o. {3 W
      call   real_mode     
2 J3 H1 E4 D7 w8 M/ H: V      pop    gs8 `' J) h6 H0 j  J
      pop    fs; C$ V& j* }4 s0 B. x4 O
      pop    es7 L& I* ]% U, p! n
      pop    ds       1 y7 z0 U+ M# R  }
      .exit9 t) P  |, b* o+ m) l- N5 Q8 X
;------------------------------------------------------------------------------------------------
6 r, ?0 I+ ~% a. w1 r6 U" i' U  Z4 Xbig_real_mode proc near
1 x: K; l9 ^: W9 V( J- O* @      in     al, 92h- ], q7 {# f4 y7 X
      or     al, 002. h6 G' I. {- i* k+ a8 {" g
      out    092h, al
3 p4 Z$ o2 b6 ?6 F      out    0edh, al
. R/ {2 \% n/ X! R      cli
8 o1 U9 J  m, i) R4 ?      mov    eax,DSEG
* q$ M* H/ ~& F2 o- m      shl    eax, 4
+ l1 s5 f6 h: q: [: e      xor    ebx, ebx
* ~, q" j* g2 v+ M: Y% T5 u      mov    ebx, offset GDT_def$ J" D! y( w( G% d% C: d$ C3 ]  @# B
      add    eax, ebx6 o4 E. s6 M2 m2 @' W9 p
      mov    dword ptr GDT_Addr.Base, eax
5 v' E) `. U  {0 l: @' c2 e      lgdt   fword ptr GDT_Addr  {& t( \+ x0 p/ t6 o) d3 t/ m- ^/ |
      mov    bx, 8
" i- I/ |0 {8 t$ y' L      mov    eax, cr0
( g8 R/ [. O5 ]) N      or     al, 1% F& F/ v5 k2 A& G! c
      mov    cr0, eax7 v& s+ }) i* Q7 d# P
      jmp    PMod# D9 V, S) i9 ]: t5 e; U( i: g
PMod:
+ E0 k0 F4 ~3 h1 y      mov    fs, bx
, F' ]1 o+ W1 \8 R4 b      mov    gs, bx# E- q1 V) j# X. v
      mov    eax,cr0+ f; t% S6 k7 x2 z, S4 h
      and    al, 0FEh
, B" `- F* p6 H      mov    cr0, eax
& q9 Y, W) W, D) U% e6 s8 @# w6 d      jmp    RMod( C# d8 L! p2 o4 Q. D
RMod:
' k! {4 R2 H8 I      xor    ax, ax9 K7 ?& k& H1 m. T; n
      mov    fs, ax9 r5 e- r( y# _5 l! w/ j* l
      mov    gs, ax     
; k8 {. Y, k- j8 V, r      sti     9 b/ D: X% m+ t2 ?; w2 [2 k1 N; G
      ret: D& a' f7 ^, I0 i- i
big_real_mode ENDP5 E6 I# ?6 m( Z6 X
;------------------------------------------------------------------------------------------------
" ^1 x! p. n/ u  Q. ]/ rreal_mode proc near0 \4 Y5 \1 e5 p/ R- b; {
      in     al, 92h
$ V( @5 E# x" m5 ^' O. T- p      and    al, 02
, c5 ^( X2 P4 e; P9 b" y2 o. w3 Q2 U      out    92h, al    8 @# }* J1 @# z& c5 ~
      ret# r+ H7 c6 \. U
real_mode ENDP) l. F$ s' D9 ]0 J
;------------------------------------------------------------------------------------------------" f( L0 f- z3 U( \
Get_Commandtail PROC near
) c3 |; I) y1 _! _% ?      mov    ah,62h
' a- y6 A$ K2 N; F. c      int    21h! y4 O5 j+ \$ X4 ~6 x
      mov    es,bx, g7 C" X/ b' l4 h
      ret
/ F# z" `3 p2 X8 PGet_Commandtail ENDP    # @6 N) T, N) S0 p. _% l4 E7 J
;------------------------------------------------------------------------------------------------
  j. {& l7 d" W; x, _PSP proc near9 ~+ D1 G" C1 G" S
      xor    ebx,ebx" V* V% q! m  g8 e
      mov    si,89h
# q, E' b; I4 b: \      mov    al,es:[si]
+ D% f# _* E+ X      call   Change* {+ S/ C" n2 a5 \
      mov    cl,4
1 C" E: D0 \2 l: Y      shl    ebx,cl
( ?/ p( O* z1 ^0 C) p      add    ebx,eax" s/ |3 O# ?# _4 T! Z- Q/ {
      mov    al,es:[si+1]
& k' X5 F% s0 J( x      call   Change# u2 m, R, q& X+ z0 G* V  w
      mov    cl,49 z0 T' m& v( n4 s# _. x
      shl    ebx,cl
/ i  R" [2 X- d; n( N      add    ebx,eax: Y0 S  o& t, ?6 A% e5 ~1 ^2 a
      mov    al,es:[si+2]& F) @# e4 z/ L* q
      call   Change2 ]0 l1 j* N* F& E
      mov    cl,4
  i! q. J$ R. i2 L6 S      shl    ebx,cl
" N1 A' j" A+ g+ s2 j      add    ebx,eax
- v- A, w: t  M! r/ \9 l      mov    al,es:[si+3]
$ \7 m5 ?% e9 r# H      call   Change
9 s4 x# f5 g0 F7 x3 T  M& b      mov    cl,48 X% F- X5 J- A+ i% d# c' v) F5 e
      shl    ebx,cl
% t2 i& B' N/ |      add    ebx,eax
0 Y  G" n# K. G  Y6 c6 k      mov    al,es:[si+4]1 f( \3 E4 d$ `4 \5 Q: Y! q
      call   Change: {0 o. S* y% H' g6 [" }# J: w
      mov    cl,4, @  ^0 N/ M: z( ^+ L- E" [# |
      shl    ebx,cl
/ w5 U" ~  M$ B      add    ebx,eax0 h% `5 B; M6 T( U) S
      mov    al,es:[si+5]. I. |+ j, `+ H$ s) h( ]* t
      call   Change
$ ]% F2 N$ X0 j* I7 {. ^      mov    cl,4
3 y  B; l8 {, A) N9 Z! z1 Y      shl    ebx,cl
4 y. Z% F$ ^7 Y  y      add    ebx,eax
- g" H$ l8 T" W4 g; S4 U6 ?      mov    al,es:[si+6]; n) T- r: U) E( H
      call   Change
; @. H4 n- a6 t! _. D0 r  L. V7 ]4 z! e      mov    cl,4
# s$ f9 V" Z; Q% j      shl    ebx,cl
) o$ J  A; ~# T& S. G      add    ebx,eax
5 w& D7 R# \. N( E2 f  ?1 j1 C      mov    al,es:[si+7]1 ^/ B5 S2 U2 l( m
      call   Change" A% A$ A" w7 K
      mov    cl,4, I, W" z9 X. ]  K) _
      shl    ebx,cl# O4 }2 F$ ^' X1 Q. r
      add    ebx,eax
+ Z5 M7 a+ g% G2 V1 W      ret' Y) v& }+ O0 W5 m: s4 Y$ G
PSP endp5 D5 S4 v9 b& N$ r4 w- T
;================================================================================================" J* M# x! z3 ]" ~; p6 |- X
DPSP proc near7 [5 B' R" k  f! _$ ~
      xor    ebx,ebx" e, S: l7 ]+ Q  \
      mov    si,8ah
) @9 s% G5 u5 _6 t& O# f* z9 K) @      mov    al,es:[si]
4 c% J5 `6 ?4 z1 Q) m      call   Change
' {4 O% a1 Q5 x: d7 C2 e      mov    cl,4' V' t- e( b( a, Z( k
      shl    ebx,cl, j" Z: I8 N4 `4 S% ?3 q  N
      add    ebx,eax* P3 R; Z( q5 d; {5 I
      mov    al,es:[si+1]7 a+ I2 b0 S% d; c
      call   Change
1 C9 R7 {: y# h      mov    cl,44 \7 L8 M" `8 _# r% x5 C0 ^) k
      shl    ebx,cl: ^) F( r5 D; M5 K
      add    ebx,eax& \; t7 B* b; J
      mov    al,es:[si+2]3 Z0 }$ Z' T: b2 G/ d! r" S/ e% Y
      call   Change1 A6 B. Q$ f3 r0 B" E3 k' l, n6 X* G. `
      mov    cl,4
$ l1 n" y7 }5 F0 I      shl    ebx,cl- `* w1 i: f1 |9 C" P+ W1 \
      add    ebx,eax
7 {6 m3 L0 m9 n2 q' u9 o* w, s      mov    al,es:[si+3]$ [* }" a) b" p/ J. V* `' F
      call   Change. x2 f  x9 e: m9 A* L
      mov    cl,4
. P3 }8 b" O  J( m" P      shl    ebx,cl- m3 g/ o* U" T1 O9 ~
      add    ebx,eax" `/ }+ b  h- ~2 u9 L
      mov    al,es:[si+4]
0 s- h; J/ a8 \& H. P1 u      call   Change
6 K4 K( r! \2 y" Z  c6 K      mov    cl,4
5 M% G* O, ~: W4 \; o, A/ p* ~      shl    ebx,cl8 y, S8 j% r- X+ J& c% a
      add    ebx,eax' a* |8 P3 B2 G- j: R
      mov    al,es:[si+5]
7 D4 l. o- k) Y( s4 O      call   Change, G$ C+ g3 ]* t3 d9 E' V
      mov    cl,4& D  T0 g' X# W
      shl    ebx,cl
- W$ ?' C" S; S      add    ebx,eax/ k. q  N  h* X( M( L: [
      mov    al,es:[si+6]; i9 `, e6 g. z8 O( f4 J, {: m  Q
      call   Change' |8 A+ Z( ?( h
      mov    cl,4
( Z- H! r5 f5 J: D( k      shl    ebx,cl- {, s% M' V; ?5 M% ~
      add    ebx,eax: {! s& S  f. d- ]$ z
      mov    al,es:[si+7]
( \3 U4 }" ^3 N& o8 J      call   Change
2 Z: s- e8 \7 f* c  d" I5 a( x* \      mov    cl,4
% b: q2 C" k9 Y/ o8 p      shl    ebx,cl! G) w! H: V3 f: p
      add    ebx,eax( Q+ I/ J; ?! {0 {4 f& n' q( R* n' n
      ret3 J7 b- e" I9 ?
DPSP endp
$ n& w3 J, U$ c; N2 F8 d;================================================================================================
8 ]. ]% w" L- A- Q' jWDPSP proc near% k: B! g  ^4 r
      xor    eax,eax5 s3 c7 m" e. [9 }( c) a: m: G
      xor    ebx,ebx1 v! Z( F+ x7 d$ e
      mov    si,93h
# D/ B+ ?0 e% Q      mov    al,es:[si]
( }  f! E& i) O. s# ~. B" E      call   Change0 u1 ]+ w* u7 p& u% U
      mov    cl,4# d4 X; G7 z# O9 O1 @5 H) Y6 l
      shl    ebx,cl5 ]/ m* O! S! |" ?) i
      add    ebx,eax  {2 b; j- [: _4 m1 ~5 s# D
      mov    al,es:[si+1]
9 m) L' S$ `4 x' H1 `3 ?      call   Change6 B- D0 T: p0 M! A- g4 W1 H
      mov    cl,4
4 ^0 r; o  M3 c% W; P, O$ N      shl    ebx,cl1 i/ K" y9 w2 G, ?, L2 `
      add    ebx,eax
" J: H8 p" \: |# w' ^+ o7 V      mov    al,es:[si+2]6 I3 v8 E% j" v/ M9 v
      call   Change; a1 ]# l9 ?& p+ n0 M
      mov    cl,4
+ q, P& R, ~$ M# o: D0 J) C6 J0 @( L      shl    ebx,cl+ j0 F* k* ~& J9 X" G
      add    ebx,eax
! J8 I4 J/ M) i! o& {+ ?      mov    al,es:[si+3]
* b/ `6 O! J3 {      call   Change
7 {% Y4 `2 |# Z      mov    cl,4+ Y, @" R! h6 W0 M5 k0 p" B& D' n
      shl    ebx,cl
: w! P- [+ W8 U: G4 Z' Y! L* {      add    ebx,eax
3 u; g3 N+ X& m+ k# S      mov    al,es:[si+4]
8 F- p" s1 M1 g! @8 b0 y' [      call   Change4 Z+ b' w+ a3 C+ D1 j' g8 O
      mov    cl,4' G$ H1 m5 y) [
      shl    ebx,cl! ~; V+ p& j$ A8 N
      add    ebx,eax
4 ]! G5 A- O) M2 {9 t! w      mov    al,es:[si+5]
1 y) ]( V) i6 A5 B! x( t      call   Change0 F2 a+ Y7 ^! t4 H3 J
      mov    cl,4& [& K) _9 D7 {0 Y
      shl    ebx,cl; a8 b6 |' Q/ d" `
      add    ebx,eax3 d- D; t, Y: N3 B1 V2 O$ I
      mov    al,es:[si+6]
# T  X: S' R: J, G: W5 h" h1 M      call   Change
  H' [6 I5 j2 s8 T& {7 G      mov    cl,4- [) J" E7 S% F0 E5 U$ ]3 y! n
      shl    ebx,cl, x3 q+ X" [& o" u- M, w
      add    ebx,eax% H8 g) m  w6 k( w" ]+ \$ [
      mov    al,es:[si+7]3 Q/ A/ n3 a) J
      call   Change/ P2 O- i5 _- I- A% u' \
      mov    cl,4( T  z, i2 `. h+ G
      shl    ebx,cl
. [" }0 {7 Y9 L. F. Z      add    ebx,eax
# @" {# }6 q% r1 \      ret
# [2 V: v8 F; |. v: {& M& e3 P- XWDPSP endp& H+ Y; t' X9 Y6 W
;================================================================================================& R- d1 c) S8 N2 C" F% Y$ Y
Change proc near, q1 ?2 P9 z+ R: |/ V/ Q: ~
A:    3 w, i& w; t! u  _. W
      movzx  eax,al
) A# h" s& G0 o8 f7 d      mov    edx,eax+ G" D. }. V8 T( G
      cmp    eax,'0'            * v1 |$ f$ X0 H1 A/ s' q4 s! i
      jb     A
6 j7 {! i; b$ ?9 M' ^- H      cmp    eax,'9'            , V/ d3 D8 s$ W1 l: m: K
      ja     B9 ^1 r3 Z- z! g% m
      sub    eax,'0'
. o, P! ^2 D0 \      jmp    short E- X2 Y6 m  f& [" I
B:2 H4 p' c( \6 z+ O. Z2 [; s
      and    eax,0dfh           - p3 |! j) v' w# @* w0 Q4 L% d
      mov    edx,eax) r4 i" `  l' i7 f$ _
      sub    eax,37h            
# Y1 M, t7 p- {6 W      cmp    eax,0ah7 z) R. I3 q9 q- |0 \" Z' m
      jb     A                  ! G$ M' ^" D/ C1 n
      cmp    eax,0fh3 {: H2 X* E6 h8 y+ ]2 @* ?2 y6 T
      ja     A                  ) F% O/ w% H6 t; w7 v! }; [: J) X' b
E:
/ m9 q. J" D$ f5 D* W1 K  w( u      push   eax      
$ J. Z: R& w* H$ ]9 e3 U      call   PRT               
# B% p' ?( n7 M      pop    eax# P$ b  r6 p; l! Q
CExit:- p5 y- l# ?6 \% j
      ret
6 k5 Y* l1 _0 C" D6 k+ `, [8 S7 |2 bChange endp- l% o; \% V& n3 y% {
;------------------------------------------------------------------------------------------------
1 k9 d5 C* P5 d8 UPRT proc near
- g) v* s, \. b; g  v, N) t9 j      mov    ah,02h" [2 ^2 k1 U$ r6 [5 C
      int    21h
; r- E! i3 H. g' k      ret
% P8 X* o' X5 }- h# D5 q+ n/ JPRT endp* g% n: Z) M2 _* d9 E- F8 S
;------------------------------------------------------------------------------------------------6 A/ {0 S# A( I, r- u' H
crlf proc near9 b2 b, m3 r* H% e+ `
      mov    ah,02h2 ], L6 z1 v' Y$ B% M
      mov    dl,0dh- r+ ^: Z1 x: y+ q5 s' T. E
      int    21h
& J' f) I$ M1 m) s      mov    ah,02h/ m8 j: _9 K, s, _* q- A( T
      mov    dl,0ah
: p4 |6 B# l) j' t      int    21h  E$ J$ M4 V! B7 M0 {4 p" k5 b
      ret3 [! p+ ^0 t) S! p4 V8 g
crlf endp+ k. Q9 F8 u$ Z, T
;------------------------------------------------------------------------------------------------
1 M2 l, m  }% r( f1 P( W_32bits proc near6 G* B% z, M  G4 _8 @, x1 _- e
      pushad
: u/ D/ v6 f+ F; |/ y      mov    cl,4
2 W3 j) K. K6 E; Y. W) i9 Q+ y( S      rol    ebx,cl
) }: K( h0 @# y1 v2 [      call   print_4_bits
0 z/ r# n& L% }6 F2 K  G) N      rol    ebx,cl
* ?5 l3 g2 @6 g2 C      call   print_4_bits
% e4 g4 S* D+ o4 _3 i, w6 H; q; ^      rol    ebx,cl
+ g  F0 f+ @: I: v      call   print_4_bits( D5 T6 C. n) e+ N
      rol    ebx,cl* A. o  e; j' y
      call   print_4_bits5 O2 J4 h( H$ u# [
      rol    ebx,cl+ N" f+ q# n- ?7 a
      call   print_4_bits, e7 y4 M  _" g4 l+ C3 H6 {: Q# i. y
      rol    ebx,cl9 v' P# K( i4 U+ @, z
      call   print_4_bits# Z" l4 J# N- T
      rol    ebx,cl
* @' M1 @) U0 g6 y      call   print_4_bits
. D. Q) W" ~6 S0 l& }, ?      rol    ebx,cl% T" e( e( L* b! E
      call   print_4_bits
+ u3 O7 p+ ]# r8 h      rol    ebx,cl
  s* m2 J4 W; x7 v      popad
  r% n" h. E% L; x8 f- U- v      ret
( S, T: ^$ z$ ]5 I+ ]_32bits endp
& g9 j  q3 Z, r( m4 w;------------------------------------------------------------------------------------------------
8 U: Z1 G; \* O. h_16bits proc near, N- e* a1 f; }7 X  N
      pusha        & E1 z: h4 W% m9 n1 r" G
      rol    bx,cl
7 k% A* H5 T9 n8 o      call   print_4_bits. {3 G$ E/ p, q* E
      rol    bx,cl0 l& J+ r8 C, g2 ~: b7 l6 m
      call   print_4_bits
+ v8 r4 Z# p* L      rol    bx,cl
* }# B' N/ I) a2 {3 T2 B      call   print_4_bits
( _" q6 J. p6 N! h3 t2 w6 I" v. s      rol    bx,cl6 F% I1 m& `8 o
      call   print_4_bits# N9 [3 @$ A' b: h- y6 a/ x
      popa
. g; L' b  ~  K" K      ret
7 E9 z; J/ t: N8 T_16bits endp
2 t7 p% |4 `& N0 ~* B$ f* v;------------------------------------------------------------------------------------------------
+ C- |+ J" i" E! r: H3 }_8bits proc near9 x# r0 r$ {4 }. U8 X
      pusha        
( U# L- P6 j" R+ u0 A) w7 S      rol    bx,cl
( n. N$ S+ U1 K; r4 q3 E4 C      call   print_4_bits
6 w/ m. m5 z4 |3 o. W      rol    bx,cl  d4 ~6 y" a& E4 Y0 w& D8 e
      call   print_4_bits
3 b2 ^" K3 z. N      popa' C6 f# ]2 y" _. P/ G# O3 E" U
      ret- {3 c  g4 s3 Y) v" |! B* c
_8bits endp
" e& Q2 M& S- p0 P; Kprint_4_bits proc near
/ H  U, L0 f) F8 v/ B$ k      mov    dx,bx
& J7 s+ b6 D& R+ I      and    dl,0fh
2 A$ h2 m# H5 U      add    dl,30h
7 ?* z6 W1 C6 W1 |      cmp    dl,3ah; l  t9 @/ _/ q7 a7 C+ F
      jb     print
! `& V# {3 I& m4 J  X      add    dl,7
/ F# P& u; ^8 Q! _" b, E: i, Bprint:  " k& b& f% N" V8 ~# Q
      mov    ah,2$ Z; \" y7 K3 H) G% V; @3 C6 c) v
      int    21h8 r0 C4 M) g6 e2 V2 U; k* K
      ret
4 G; H6 u. x' ~! wprint_4_bits endp   
5 w# X1 x% U+ `3 l+ _* BCSEG ends
- P) P' b2 @7 N  K9 R1 [END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-9-21 21:56 , Processed in 0.189384 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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