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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)4 B) l! Z% ]5 R$ R* K3 r% I
) a3 K& Z5 l1 k- ~
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
7 c0 i. z2 e1 _$ K# i0 e& P  \* N
. P; G0 {. M5 y5 _+ Q宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
% ^  g% F: d/ I- R: c9 R7 \, Y( D1 C4 H
.model small
- H0 V; |4 [, P$ x/ v. M.386p8 P9 N& S: _* s& [% ^
DSEG SEGMENT USE16'data'
4 p3 U9 U' H& \* T  Z- o# `  P6 f6 W* V0 k/ e
DESC STRUC
  {0 s' B  d; W6 R     LimitL DW 0
$ c. \9 E+ ]7 E; t     BaseL DW 0
: J2 O( b- _  T( H# `     BaseM DB 0 ! g( \2 X; z% V6 u
     Attributes DB 0
$ D1 K. t( ^2 j& Y     LimitH DB 0 4 s% Y; Q* z* M* Q$ |: J; }5 L0 U
     BaseH DB 0
# }8 \  l. j- h  j) C) G( r: T1 EDESC ENDS+ A$ P! ^, o; Z# h% d

* Z( J8 L# c& q& z% H  NPDesc STRUC5 {4 _9 `9 W5 V; y6 V( W
     Limit DW 0 . T0 e* A1 w2 n2 f# B
     Base DD 0
! x* H6 E3 c% X: i* h% Y7 DPDesc ENDS2 \/ Y' j% p& H* V: `2 B9 f. p

  E) I' B1 ]- i5 Y. ?GDT_def Label Fword
* F5 n* a1 ]0 A- y+ p. J/ o) N' MNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
" n" o. y/ J; i8 T( Q  x/ RData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
% l; \3 j5 b: [GDT_Addr PDesc <$-GDT_def-1, >
8 {! v7 n. r: O- s4 e2 \; c) i# X7 x# ^! V9 e8 d8 Y
Maddress Dword 0) X  P  Z) r9 _+ C" f
* Y# N, |8 R4 S( F8 N
DSEG ENDS $ t6 |# j/ W) O. x
ASSUME CS:CSEG,DS:DSEG
' o; S+ ^1 l" \  b) v3 W5 s
3 J5 W$ A( d% x: n1 M  M" j; OCSEG SEGMENT USE16'code' 5 x, s! u; E/ m5 P0 P  V
      push   ds9 l+ \# Y% _, [) J4 ^  z$ m
      push   es
  C! O. C% C+ w      push   fs
2 e6 i& u- d8 D2 t      push   gs% ~! s  c! u1 f$ S; X; v5 g2 c0 B
      call   big_real_mode     
; F$ ~# B' n: k/ e8 v- U. C      call   Get_Commandtail* f) L  b: y5 E- Z; A* f4 p8 D  A1 z2 S
      xor    ebx,ebx
/ E9 r6 w' W- E" T4 z. O. r5 E# M( S6 H      mov    si,82h# o3 Y( q2 {! Z" t. ]
      mov    al,es:[si]
( q; e; U% Z; M) j9 U& q      cmp    al,'r'
& k. R5 {4 ~& y1 a  L7 V# U8 E      je     R
9 o8 [  _- J1 u      cmp    al,'R'' R3 v" H- w7 o
      je     R
3 \# u/ L2 a: N      cmp    al,'w'( [2 s( q' i; m. M! l) _
      je     W
% f: r2 ~- f2 ^. B! J) J      cmp    al,'W'
* W6 F' T; C& h2 ^' |* R& W4 e' c% b4 R7 Q      je     W          * k( k7 ?5 ~( |7 f! y, T% Z
R:
, k0 Y9 }% _9 @2 V      mov    si,84h* `3 e* k+ R* t9 r  D
      mov    al,es:[si]
- N0 p& S- B3 c7 l6 @      cmp    al,'b'2 D( u) }" t. n: c
      je     RBT' s: J+ c7 E9 y# p
      cmp    al,'B'
; J# [/ F7 j1 @      je     RBT% H5 S3 u8 ^8 y) O
      cmp    al,'w'
, x- \/ e7 f+ Q      je     RWR
: @4 W' @% J' I' g6 G) t, ~      cmp    al,'W'
9 s; b5 e4 X/ E4 `      je     RWR
8 J7 a6 f, c. g3 A+ S      cmp    al,'d'1 Z1 _" F, J! K4 L/ F, X
      je     RDR
  _6 p* B1 O. U      cmp    al,'D'
* z% w8 j  w2 w2 `      je     RDR            
, M! @9 d' D2 E+ IW:      # |! u* h0 X& z7 ~3 v
      mov    si,84h: p& z% k  y5 |0 z6 n9 a7 j
      mov    al,es:[si]9 ?( }2 Y8 ?$ A" A
      cmp    al,'b'
/ z/ E1 f* b' Q" X/ N, h3 g      je     WBT
2 ^" Q, B2 A  _  o- c6 i6 r      cmp    al,'B'
  \- Z+ z  s, X      je     WBT  H5 O9 l3 C& u$ ?: |
      cmp    al,'w'' x" v3 u  ?8 n* R
      je     WWR" Q0 E% n5 H2 }" N
      cmp    al,'W'6 C% v6 {3 n( l) Z" Q; v4 _
      je     WWR
! {# b- x/ w& e4 L" t      cmp    al,'d'2 D5 H: y$ Y" ~8 M4 {' v) c! Y
      je     WDR
3 Q( t( _6 d2 |$ }: v7 x, m6 k      cmp    al,'D'
- g' \2 I/ @4 Z+ S6 c      je     WDR
4 l2 L: B& `# Z; Z4 V- x( v; t  p+ nRBT:
8 e& N8 c6 @' A      call   PSP        . c% r/ S8 W6 n! O/ ]
      call   crlf           
$ Y/ H* E  c  G% {" _; a. M      mov    esi,ebx
4 F0 B+ d( a& D- `8 w% v. ^/ d      mov    eax,fs:[esi]
# L/ D! ?; v% R      out    80h,eax* ?& M; i# U8 x( Y& h2 d; L
      mov    ebx,eax9 W2 X, p. N# E6 h) ~, y% Y
      call   _8bits
4 c* F: b1 `' h# Y      jmp    Exit
# M1 e+ q: {/ U/ S' ~+ s$ Y" _RWR:2 s% w, q- i0 F2 Z5 c" q# p# y
      call   PSP        
' a- Y$ Y( Q. g! ~! W# o  @6 h      call   crlf           
6 i% J0 z. K3 ?      mov    esi,ebx  [' s* L3 ^  b/ v. \# C
      mov    eax,fs:[esi]
$ C' K" f3 P; \! i5 ~      out    80h,eax
; {6 H' E9 {( K4 D: B0 N; {9 I      mov    ebx,eax: w( y1 x# w, I1 I- u2 P, f2 ]4 u
      call   _16bits/ x5 W) C6 H6 V" @+ v/ Q3 d3 T4 {
      jmp    Exit
" e# W5 e. p4 B; A6 Y; x5 uRDR:7 H4 |& Q& \+ I1 c2 F  i5 a
      call   DPSP        
  t+ J, s: o' ^+ o      call   crlf           
4 Q9 h- H& B( C9 L$ o) n. F; Z      mov    esi,ebx! A( u6 |% z" Z$ h' F& x, u
      mov    eax,fs:[esi]8 h* n8 V' X8 B
      out    80h,eax
- A3 @' q2 o1 z! C: l$ q      mov    ebx,eax+ L. M; |" Y( r; J  O
      call   _32bits
$ y% Y6 C5 m, y  _: i; H      jmp    Exit; K8 b; o5 p9 C' s# s& n
;------------------------------------------------------------------------------------------------
3 s$ W  }/ y4 ?' ~" j& ]& KWBT:; ^- d1 U/ d+ L4 x
      jmp    Exit/ j: p! p4 s# _5 g( o
WWR:
  k, \$ i+ x, Z# s      jmp    Exit5 B- c( ~1 _" V
WDR:
( X& U; H% t' e; j9 {+ N9 J  W      call   DPSP
0 k2 `2 ^, i: D! m* w* e      mov    Maddress,ebx      
$ K7 ?6 f& c' t# ^8 O+ J6 H' A      call   crlf
% K( H+ `* y, A7 l1 i      call   WDPSP4 {2 j0 @& m7 Z# X* N: @: }& ]
      mov    eax,ebx3 y; N. t. v. C+ f
      mov    esi,Maddress          + @* }! m: S" M( v7 z7 Z+ a
      mov    fs:[esi],eax
7 ]0 x, f6 r' B/ V6 ~4 T      out    80h,eax6 E. H( z0 T0 l8 S. ^4 G1 M
      jmp    Exit7 Y+ s/ F7 B2 E- D& [- R
;------------------------------------------------------------------------------------------------      
1 t, P) w, E4 r( d5 \# j6 kExit:
0 Z) y: y4 i& e1 X      call   real_mode     5 ~" I+ S' A6 ^4 _
      pop    gs! b! x& K' f: Q6 l: T1 Z0 M8 [
      pop    fs# J2 J; L; ^6 d7 ~) M# G6 v
      pop    es1 I- I8 b6 `! h: I  o
      pop    ds       4 g- u! z7 c0 ?4 w
      .exit* K" l$ |6 ^6 j* W
;------------------------------------------------------------------------------------------------
. I0 {7 A( k* O- }3 f9 E  d. \5 ubig_real_mode proc near4 u9 H8 b  K7 ]' Q  [0 w5 R
      in     al, 92h/ z3 G8 R$ o% I: E3 y! c* M
      or     al, 002& e2 [1 q# g/ _0 M  x* r$ c
      out    092h, al* j/ h: l3 e% C7 e% G8 h/ U, y
      out    0edh, al
* W$ ~, l: q# @6 b& n9 w6 d      cli
% d6 W! E: L  I. D6 H+ `      mov    eax,DSEG! j( w* U$ v! d, d9 c9 x  q
      shl    eax, 4
2 N, y# V2 x+ H9 H4 O3 \  C8 }      xor    ebx, ebx
# T1 f, R, t  I      mov    ebx, offset GDT_def  S, ~6 v, b% J4 \
      add    eax, ebx
6 w$ g2 i) ~& w      mov    dword ptr GDT_Addr.Base, eax
& y2 @6 ?) H* [      lgdt   fword ptr GDT_Addr
- k# i2 V8 A* P+ e. W* x      mov    bx, 8
5 r% z3 m) o9 ]  Y1 d& p      mov    eax, cr0- Q* ]& f9 u8 X+ Z1 t
      or     al, 19 P8 e$ R* w- w1 x$ T
      mov    cr0, eax3 ]2 D4 u4 J; R9 j3 J$ E
      jmp    PMod
6 V6 x/ }6 ?- wPMod:! Z* S; c4 {1 i  r8 T- N7 R4 ~
      mov    fs, bx; A7 n# Q8 l9 x
      mov    gs, bx
  K/ N: t3 e1 |      mov    eax,cr07 N5 W+ o- I9 h3 \5 ?" d) G
      and    al, 0FEh" q) u5 C5 k' f& r' ]0 n0 T5 h2 `
      mov    cr0, eax . O2 R* w! H: M
      jmp    RMod
7 N0 E/ x; m0 `3 T) cRMod:. [: Q  x" x; A4 r. w! r
      xor    ax, ax
/ G- i& ?. ~7 q      mov    fs, ax8 `# T% w% n' A2 q, h3 P
      mov    gs, ax     
: Y  ]4 G4 ]6 ^7 ~& f) h      sti     
( M$ {! Q" r0 F" Y1 s      ret4 F1 {+ ]* q( B! c. T* U# S
big_real_mode ENDP9 c( ~' I! j! X% O4 [" p& Q. f$ v
;------------------------------------------------------------------------------------------------
9 Y9 N, W2 ~, x! l6 E8 E! _real_mode proc near  u  U. R  d+ d: J9 R6 V' T0 s
      in     al, 92h2 |& F; p3 F5 A
      and    al, 02
- |( x2 G0 y2 u/ F/ C: W- X      out    92h, al   
/ \8 `( x) T$ s( m      ret) W* b, n8 ?( o/ X/ ]
real_mode ENDP: s5 H- x) }% X2 H( a1 ?
;------------------------------------------------------------------------------------------------7 M5 v1 q( N: t: y# ?/ p
Get_Commandtail PROC near# n: Z: s, D% h% Q; I, z) ^
      mov    ah,62h 7 k9 E. [/ o2 n$ @
      int    21h" `* i3 n0 b4 z4 Z: t
      mov    es,bx
% P8 h- h! [) \      ret2 J( F3 H# B# ~2 M; W' j
Get_Commandtail ENDP    4 |* `$ v4 @) J. S0 `
;------------------------------------------------------------------------------------------------/ {6 V; R+ V. I
PSP proc near2 F9 u1 q9 D+ f: G3 l6 O' n
      xor    ebx,ebx( D. [9 ?4 e! a6 T+ n
      mov    si,89h
' E) O; ~9 ^6 V$ S+ P      mov    al,es:[si]
; ?1 {+ `% U' b      call   Change
% m: Z( Z3 w4 J      mov    cl,4
" X) \& e  k% p2 v! w$ H- V( D      shl    ebx,cl
( L7 f9 X% u7 I      add    ebx,eax
" _8 N8 z- Y5 ]! r( F7 l1 x+ `% r  Z" A      mov    al,es:[si+1]
. f- H/ D$ s1 [5 d* l      call   Change
1 E' f1 H' Y- y) J  E      mov    cl,4, M4 ?) o# r8 @) k( n6 ~
      shl    ebx,cl: D# O, o; `5 F' R! D
      add    ebx,eax, d& m) o1 f. g
      mov    al,es:[si+2]
% M+ p4 f4 v- I& N- |      call   Change1 h* F8 r1 [, o0 U' Z; `- E
      mov    cl,4
2 H5 B/ H& c1 B0 r      shl    ebx,cl9 c: e8 Q6 E4 [5 W
      add    ebx,eax
* v9 s% l, Q% a# {& a' q( w      mov    al,es:[si+3]
+ M9 t8 W# L+ k8 S8 B      call   Change
+ Z" t) ]8 H- O! O" r0 y3 L      mov    cl,48 j) a3 m8 i, a# |
      shl    ebx,cl
$ r+ p: J/ N3 d& _* {$ x      add    ebx,eax
5 }1 j3 M8 v4 Q9 @      mov    al,es:[si+4]# I8 @+ ~, e+ M3 [
      call   Change6 d$ I# M1 G* x$ v
      mov    cl,4' O2 I2 Y% q4 g% }( ^/ H: X
      shl    ebx,cl# b+ t# G7 @9 e# u- W! i7 L" s
      add    ebx,eax# ^% t* }$ _! \
      mov    al,es:[si+5]. ^( `' {$ }( }& L. l
      call   Change' j" \( T$ x6 T. r- g& \' i
      mov    cl,4
( U) d% Q# n. W      shl    ebx,cl7 j7 R& `! _  v
      add    ebx,eax, |* H: ], T6 M- h1 o
      mov    al,es:[si+6]: |, j- d3 d/ [/ Z
      call   Change  b5 H; q, v3 H' ]
      mov    cl,4, H1 Q; X: L: o" A  K' C7 e
      shl    ebx,cl( J* R( K! ]' Y! b
      add    ebx,eax3 x. r, r6 `/ p
      mov    al,es:[si+7]; \9 k, ~) u: f2 `9 D% K- ^# p
      call   Change
' F+ y0 A. ]" B# K7 c  ?3 `      mov    cl,4
$ X: o; c$ c$ d8 P      shl    ebx,cl
! H& M; U2 l1 R  Y. e8 n0 A      add    ebx,eax
  B* j& y3 e# m+ s! I      ret& g0 x+ f/ f$ ]+ S' C# n
PSP endp4 ]% k7 x: \7 E3 {9 ^1 f
;================================================================================================0 L% D& A; [, D+ Z1 ^  T- z2 I& D
DPSP proc near
6 n6 M. A$ I) K4 M" \. N      xor    ebx,ebx: `  Y1 |+ O' N0 u& M& \! N4 w
      mov    si,8ah
; k$ Q  k+ q4 S, W      mov    al,es:[si]
  q5 c2 t% [5 C      call   Change
* M/ X2 b3 X5 a* X9 x8 d      mov    cl,4
( F9 w$ k, U: _4 T      shl    ebx,cl
1 x2 t9 B9 j/ R7 e+ e, T7 c      add    ebx,eax% T- {. v9 l* {  [7 r  q
      mov    al,es:[si+1]* ]" ?% N' f) P' [1 k1 P: [! G
      call   Change
  R; x  ?0 c5 h+ R      mov    cl,4- k0 V4 m6 |& i$ v& h
      shl    ebx,cl
  o5 V4 @$ j( U' E      add    ebx,eax3 O) j, b  X  z2 k0 j" _3 i
      mov    al,es:[si+2]2 L3 A: j. @2 t4 X' `; q
      call   Change
$ |$ {1 a) C; D' `! k      mov    cl,4$ L7 D7 U+ i$ Z% {" C, G5 D/ [
      shl    ebx,cl
+ s, e- D) d4 \+ o8 w      add    ebx,eax9 o/ L/ n) g3 ]+ e9 \
      mov    al,es:[si+3]+ F  k& I: r0 X6 q8 F& k$ I
      call   Change' b# K6 l( E6 H* S7 ~, Y
      mov    cl,4$ d; b) F2 B- H8 l! s" w/ c0 [
      shl    ebx,cl( M* _; J( g0 q  M+ H) S
      add    ebx,eax
- F8 w; c3 @, ?. x# [      mov    al,es:[si+4]: {# P/ [' {7 m5 Z
      call   Change. j: v2 h3 B! n6 @, H9 k1 X. U: v
      mov    cl,4* y& Q6 A( n1 {: r2 r. H
      shl    ebx,cl
% v0 `& p9 l7 ~      add    ebx,eax  l- p% m2 b1 }3 R0 N9 u  c
      mov    al,es:[si+5]  g7 n/ X: [1 Q9 k6 D" |
      call   Change) `) |& g* ^% J" x; H
      mov    cl,4( d. W5 ^/ n9 o6 d- o
      shl    ebx,cl% ?4 U# I' k! ?0 n% _* K
      add    ebx,eax
/ Q- |/ m% \& o: i      mov    al,es:[si+6]
: b  u9 I. b: J! M: F) ]: \% B      call   Change7 ]' x8 Y' s8 K6 f
      mov    cl,4
5 I3 a0 {8 D0 S      shl    ebx,cl% S& X2 U0 }: u7 S- M7 y
      add    ebx,eax
2 ]- E' q" r. ~4 A: n2 u: h  M      mov    al,es:[si+7]6 @2 n- o4 y6 ?/ s8 z
      call   Change; v. q& t9 r  X  B( A- V7 i5 ?
      mov    cl,42 y0 g$ X; C4 T! C/ |7 v
      shl    ebx,cl, y' {/ h+ _; t2 G! n8 z
      add    ebx,eax7 L4 V& T  t! V' K6 X" z
      ret
- a; l7 j$ [4 [' V, g7 FDPSP endp* }$ G+ I" @! `, [6 |6 _5 }- Q& A
;================================================================================================
$ S+ R7 J/ ?  q0 j' R. `. PWDPSP proc near3 K4 C- J$ }+ l  I! O
      xor    eax,eax
$ }2 s6 n9 q& P2 [      xor    ebx,ebx
' G. l% w* {& ], ?      mov    si,93h
" x6 F4 N1 X, O3 G$ [      mov    al,es:[si]3 w' d. @! [" T0 n! j8 X9 N
      call   Change* g* i7 B+ r, j2 t* d/ z
      mov    cl,4
7 l! e) f* M& d      shl    ebx,cl; ^$ P4 _7 s! y+ ?) t
      add    ebx,eax
8 ~4 P' F" H1 x" a- o* w. }      mov    al,es:[si+1]
# M& X6 F" C( i" ]9 O6 j      call   Change
8 e" W7 w0 D+ ~% }. l5 t! ?      mov    cl,4& j: X" ]4 L3 B/ X0 p- [- u8 G
      shl    ebx,cl# a( |7 r* P9 [
      add    ebx,eax9 v6 G- W  ^2 L1 p- [3 q% }" t
      mov    al,es:[si+2]' l" A$ u1 h. R, Z
      call   Change
7 x. Y! w1 n1 t# y: J      mov    cl,4
: `# |" g- t: U7 [! E; y4 u% r' P      shl    ebx,cl; m! N( X. @3 {9 D0 M6 t( M
      add    ebx,eax
8 O. D9 n) C. ~& o( l      mov    al,es:[si+3]
5 n: V; e* f  E) a7 Q+ }6 \2 D      call   Change) J4 h) z$ d7 }. N& ~6 J. c% j
      mov    cl,4+ k2 {4 X3 C# [8 i/ K  L
      shl    ebx,cl
5 n$ G4 a9 @$ N- [& G5 K" f: t2 J4 `      add    ebx,eax
- F; u/ n4 g1 S" B" q7 s      mov    al,es:[si+4]
/ d) |3 S  t, G; q      call   Change3 i& F$ p* p/ l& D9 V
      mov    cl,45 ~$ O, T3 [! R
      shl    ebx,cl  V3 ?$ E$ [4 O& x7 a$ C+ N
      add    ebx,eax
, J# c1 [* i$ V" `5 A" W* i      mov    al,es:[si+5]  A0 y+ h$ x# A0 _0 p# Q9 Y
      call   Change' l, H. w5 p# f; U
      mov    cl,41 ^  P* X- f% s0 N+ V
      shl    ebx,cl
% A+ G, H* @* `) J% D. D      add    ebx,eax7 Y3 K% u; Y$ u& [" G. A4 b
      mov    al,es:[si+6]6 a4 L8 i& K7 T9 q
      call   Change
6 D: ?/ p% o% P5 n' W/ }      mov    cl,4
# C8 o  W, e7 h& B6 d2 w8 I      shl    ebx,cl! \' w; L. l; V9 W( a
      add    ebx,eax8 @* o- n- G# n$ H. A0 D1 |- J1 @$ f
      mov    al,es:[si+7]! }7 o: q5 G. b. _2 D- r" N
      call   Change* P* l/ _3 f  V! |
      mov    cl,4  _0 d: w9 \) t/ H/ S2 g' r5 L
      shl    ebx,cl
: Y4 a& z8 F! |  l2 q      add    ebx,eax1 Y% ~$ J7 [* X- h  {. O. v: }
      ret. c* `- X. q( g5 e; p
WDPSP endp
, J" c( Y9 p9 L7 A1 H. m/ P;================================================================================================, T" j9 F4 k4 v$ w
Change proc near
! h2 D3 H, Z! v0 g5 a2 fA:   
* F6 w, ]' ^" @2 K5 |$ I* U      movzx  eax,al, g+ ?( w8 u( Z
      mov    edx,eax8 M$ D; d# B9 x
      cmp    eax,'0'            
' @6 ?: A+ q6 I; F      jb     A
5 C' l5 f# m$ X; J      cmp    eax,'9'            % k/ j0 ?: g* t3 q. b. @2 d
      ja     B
7 V) K0 ^0 V' c0 G      sub    eax,'0'
' X+ g- U+ E  C) p: @; ^      jmp    short E) }4 Q! }' y9 m
B:
3 S' G% O7 K" x      and    eax,0dfh           8 g' l1 f- l6 X6 }, S2 L* X
      mov    edx,eax8 {, C, N# |% j5 Q* m  h2 G. p
      sub    eax,37h            
/ ]. ^) O/ R, `# F      cmp    eax,0ah7 l- G% ?% p' y1 Q" F
      jb     A                  
( g8 i. E0 H3 z1 G: w/ {( I0 d      cmp    eax,0fh
  J6 E/ n! S+ y# n1 c( Z0 `      ja     A                  
6 x3 r; \$ X9 v4 s+ x' K& ?E:
$ y2 j& g- K3 M. T      push   eax       ) J- b1 G' _! V  I0 [
      call   PRT                7 W7 k8 u0 q8 b# U
      pop    eax+ r0 k5 f2 D7 ]4 n  Z' j& P4 ~
CExit:2 `. y- ?5 w6 c# l  |) a( [# t/ h7 C
      ret
9 ~$ g, p6 d& z3 g' p" \Change endp
7 |4 r* E: n* g9 ~( Z; ^* k2 L;------------------------------------------------------------------------------------------------
9 |7 r. B$ P! C+ I6 D$ tPRT proc near
- i/ C' U  ?* ~: j      mov    ah,02h) l0 I/ `% l# e- H2 @9 W
      int    21h/ ?; c& U# ]: d) S, |0 J5 q
      ret
! s% }) ?4 l- O/ vPRT endp
2 }( p- u6 J4 F- L" y;------------------------------------------------------------------------------------------------
+ [8 j' C! n  F- R! J4 H& Icrlf proc near
$ q% \3 P' L7 |; @% u. h9 Z. Y      mov    ah,02h, o7 m4 @+ I2 Y2 v8 K7 u' m% C
      mov    dl,0dh
, u' c/ N' O) X6 o, H# l      int    21h
5 P0 D' r$ J2 t; g6 k) ?% z/ h      mov    ah,02h
* N4 |! d9 E- ~, [      mov    dl,0ah
, [4 n, ?' c/ Y. X& n9 r- X$ S0 X      int    21h2 B$ c' F4 {; i2 g& f( Z: p9 N: |( _
      ret, K6 U$ L+ I. `  d2 K* v
crlf endp" Y3 i' v6 K' m( @
;------------------------------------------------------------------------------------------------% n# p  e: l9 V0 i  p& t
_32bits proc near1 Z7 E$ K3 z5 j4 |! Y
      pushad
8 u/ {6 w' H  V7 i/ @      mov    cl,4
" t8 N2 Q4 O0 a% O0 r      rol    ebx,cl
' ?, N  u4 i1 A      call   print_4_bits; {2 g& r( h3 m2 z# I; K
      rol    ebx,cl
: w* V1 ^% c' e# F5 D* R2 r      call   print_4_bits% U5 U: `! n/ U. J# l
      rol    ebx,cl
. Q- `8 S) o* l  i  G$ V7 T      call   print_4_bits: N% G4 N/ G1 J- w- |7 X4 z/ o, u7 t
      rol    ebx,cl+ z( [, B) @; }( y
      call   print_4_bits, z) j( [* N( s& r+ P) B/ k' T
      rol    ebx,cl
# z/ R6 T8 @' }8 D; M2 M      call   print_4_bits  N5 m2 u' h- n& E
      rol    ebx,cl
1 O. f! a) L. _- Z9 L2 `      call   print_4_bits$ A% }9 l2 y" Q
      rol    ebx,cl
( `% D, l. i2 u4 U      call   print_4_bits
7 J2 J, S) k' \, T/ j! t8 F      rol    ebx,cl
7 C$ y" q5 Q: ^; ^& H% ~      call   print_4_bits/ E5 g! W3 j( I; D8 W- g
      rol    ebx,cl
2 M+ Z7 y/ F1 X) B8 q9 ~+ ]; x4 _* k      popad% z: R' r! T( w7 U- ~0 e, N
      ret1 I$ {+ a3 w# O/ ]& ~
_32bits endp
2 |* ]8 j6 i1 ^$ |) Z/ w, V;------------------------------------------------------------------------------------------------
( n8 f2 x+ i9 N% c, w_16bits proc near
) a9 o. P0 A! a+ J# o& G4 K      pusha        ) x5 P2 F7 k9 o' |; H
      rol    bx,cl
) C: |+ A3 y: f+ e1 B7 W      call   print_4_bits
& G0 l2 _2 W7 f      rol    bx,cl5 d5 K, A. F' g, F' [+ E8 F, [% S1 i
      call   print_4_bits
9 j" Y' x0 q6 }      rol    bx,cl
, d2 k$ p/ a- M' z$ u      call   print_4_bits
; K6 |8 p4 w% y+ |2 E* o      rol    bx,cl2 P! Q% E" Q$ _8 m8 J- j2 @
      call   print_4_bits8 {1 q9 o8 p7 g
      popa
% c: Z5 n8 V; Z: I# q: Q- M; d      ret
* @; X6 W' h8 x1 v_16bits endp
. Y) y9 V0 p+ r3 z) y+ e! P$ U;------------------------------------------------------------------------------------------------
4 c. ]; R8 T% {( X& c+ R_8bits proc near
6 z: X1 @7 `1 u, |      pusha        ) |. ^+ X, ?* Q& F: P3 u
      rol    bx,cl
6 h; q" T. Z& u3 i: }      call   print_4_bits2 j. K) V, t# s
      rol    bx,cl
/ V+ D0 x7 ?, T  h& M7 c      call   print_4_bits/ H# y+ `) j- Z  E8 u! q/ w2 V
      popa; f  h5 r4 O# c- w# D" }
      ret5 t& t, v$ T# v- ?/ o0 l3 s7 x+ C3 W& V
_8bits endp6 q+ B+ g5 X5 A, ^' F$ |
print_4_bits proc near/ Z% ~  B8 D- B  L
      mov    dx,bx. ?8 @/ l: |% V, c, d5 O
      and    dl,0fh
: D. O* x6 n/ V, b4 @      add    dl,30h
3 o6 I3 L9 c: y8 w7 F( \5 N      cmp    dl,3ah
6 ^: b2 W/ Y7 {1 ^* U      jb     print
9 |8 [& D! k+ |      add    dl,7+ ~* n/ H) H6 X9 \9 O0 z; _" u
print:  
3 R- F+ t% o% J' h9 a8 b, t7 H+ }      mov    ah,2
; U7 A( e9 F6 L, d' P      int    21h5 Q% Q" z9 V3 e# C
      ret
3 G5 n, c# e7 D$ y) zprint_4_bits endp    " ]. b1 C7 O; N$ `4 u2 @
CSEG ends
! {( V& [% b- q' |END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2024-5-20 16:28 , Processed in 0.049486 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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