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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)
# R5 @; i3 a) Y0 }4 G) r
+ C+ }7 B  i- r& t5 M) U; \% M1 B則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data') ?8 a3 ~: q& O
* ?' ]5 x& e8 x& [  |  b* }& }- U
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  7 `! z& `/ ^: f5 P/ f, {

+ R+ N! r% Z1 M1 Z9 i.model small
! }4 t8 M* y) t* [: N$ x, B.386p! n3 w, v2 q6 ^: Q% N
DSEG SEGMENT USE16'data' 3 k* r) B4 ^2 E. e: G/ M

2 A0 s6 Q7 U! X3 |DESC STRUC
( K+ Y: \# `# B1 t% D6 @     LimitL DW 0
/ P0 |6 a9 b% D6 s$ k) _     BaseL DW 0 8 ~& Z& F) A! d9 L5 I9 J
     BaseM DB 0 & D8 H- I/ R) a* }( ]" O
     Attributes DB 0
8 ], b9 E% Q# j* d6 o4 d     LimitH DB 0
; d! t) o( ]6 W) A( V     BaseH DB 0
0 N1 h# ]4 a* @! O+ r0 v$ e3 pDESC ENDS
; X) |1 X: @# H7 W% ^. x$ J  S- d! ^" e( a" L) e
PDesc STRUC
5 c* g' T' M3 c( m6 q% v( a     Limit DW 0 / r4 `6 D: E' N# l6 F
     Base DD 0 8 M# h$ ]: k' a& E/ F
PDesc ENDS
: t4 S, j  V( ~2 e6 A! @9 f) _: C4 I" M- u5 F
GDT_def Label Fword+ d; t) g* p% y
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>2 [& E; t  a3 G$ B. ^7 C7 {& A
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0># g( ]! M5 D: w- F* q0 O& E: @
GDT_Addr PDesc <$-GDT_def-1, >
6 K$ Y- ^/ y2 Q4 B3 d+ v/ S9 e
; N6 Q- z1 h% I2 }* ~# PMaddress Dword 0
4 g3 d/ ^+ F0 h8 V
& ]! S& l; y# O* n0 J5 LDSEG ENDS
0 ~" y& A9 k' T5 }8 x/ bASSUME CS:CSEG,DS:DSEG
1 }# U8 h6 P. d; N9 e4 W/ V- M/ M% b" M( H) e( P0 p
CSEG SEGMENT USE16'code' % S# k1 d. _: T$ i0 a
      push   ds; o+ z5 c% i! w& o7 j
      push   es
# U# t' d; }% t6 J      push   fs
$ A- z, Q# |+ B      push   gs- |! J$ A& {7 ]( D, |; ^
      call   big_real_mode     
' D$ a! u" k) `) Z* }. q0 o$ O      call   Get_Commandtail, S) z  \. c) @/ ~* A+ {& v" ?
      xor    ebx,ebx
+ \1 k. f8 Y( I: u      mov    si,82h5 H  k! E1 H/ y
      mov    al,es:[si]( w& ~/ o( y: M& E, E5 d
      cmp    al,'r'
" V4 m* T& ^2 ]. ^      je     R
- m5 R6 |. T: Q, e      cmp    al,'R'
( g" L8 F9 H& n* Q; U6 U      je     R% G" M/ D+ [, p4 p" e. u, ~
      cmp    al,'w') G# g+ C# `& F& V! ^
      je     W
  L) w  @: a, k$ G      cmp    al,'W') P2 |- a) u5 P# p
      je     W         
& b5 A$ v' K0 p1 z# z5 zR:) b3 X% o  z. ^* @- K2 l
      mov    si,84h, l: O. g" X6 ^; T; \
      mov    al,es:[si]# t5 d2 p* G- x
      cmp    al,'b'6 ~! a& q  j: Z8 \  A7 t+ T- x
      je     RBT% g+ t- Z/ L: A( G
      cmp    al,'B'. p* s* G5 S) ~" i: I+ L6 S
      je     RBT
& C; a) ^& U! W# S7 w9 v& {      cmp    al,'w'3 |9 c' Z, m* T5 [1 O7 M7 O! U
      je     RWR
2 V( H1 H; a+ Z; p6 B  m      cmp    al,'W'
7 C; c. T4 q/ T. T  T" p  X      je     RWR1 J% E0 f0 w8 z7 Z' c% |
      cmp    al,'d'
) R" B. \6 v& P  |6 a' F      je     RDR
4 p/ p) u. u' d& H+ \      cmp    al,'D'4 t! O  p+ ]9 U3 `
      je     RDR             . ]# J& V* x) k4 a+ z
W:      
2 h" l7 c: s7 I5 a- X      mov    si,84h
; O; {& b) h! H      mov    al,es:[si]) A( x# B# C% N4 b# I3 m0 W9 Q/ D5 U
      cmp    al,'b'
7 o6 C$ r& d& J- X2 _      je     WBT" |) ^, k  Z3 K) K: n  g/ y
      cmp    al,'B'# ]9 a6 Y; ~  \+ w3 r% e: |
      je     WBT
6 K0 y" T) }7 D+ x8 K7 |2 p      cmp    al,'w'
% x1 W# Q+ \. m$ e6 B2 x      je     WWR/ Q. E, L+ D: \8 z" q( F5 A' R
      cmp    al,'W'  l6 z/ {" Y6 |2 d  K9 N0 u3 c
      je     WWR3 r4 n' l% [- M  a7 V
      cmp    al,'d'
" X* V& F5 N6 Y* |2 o      je     WDR
/ g) l$ x6 E1 A7 ~      cmp    al,'D'
0 U2 o- C( f+ b  g0 w7 D  Y/ b      je     WDR
6 r1 a8 D, _- q/ {) sRBT:1 B4 b6 s! S# r- w. B
      call   PSP        
7 a1 }3 x0 |9 `% t- m* j1 u      call   crlf           6 e1 ^5 c5 R. T5 H' n8 X$ Q
      mov    esi,ebx
9 y/ f3 Q4 s- M      mov    eax,fs:[esi]8 X9 t+ s# N! s5 X+ n" h3 l( B
      out    80h,eax
" ^! x" [6 i$ s, J      mov    ebx,eax
' b9 X) a8 w7 F      call   _8bits- s8 [' N# G1 E8 v9 f+ U
      jmp    Exit; n0 f$ j& A+ {: n7 o8 S+ w
RWR:  L: c* Y) p  H+ ^! J# t5 E/ y+ e
      call   PSP        3 i3 P; H! G0 F
      call   crlf           
% ~5 _9 V) g+ Q9 W- G7 ~      mov    esi,ebx. g  i; A. P( _0 p% V" a
      mov    eax,fs:[esi]. J+ c6 ]2 s  l) h/ o
      out    80h,eax! W6 |' y7 Z5 I, B
      mov    ebx,eax. w* }2 ^  X, i
      call   _16bits: K* {) t% p8 [5 h
      jmp    Exit
8 n0 Z4 X4 {" m4 s- rRDR:" y8 ^$ M2 h9 a  x  u- f
      call   DPSP        
( b( x) _. e% Y, U* ~; Y$ F- H6 u      call   crlf           ( G3 Z4 ~8 t5 H# U1 H! e
      mov    esi,ebx
1 O! _- R: }9 U      mov    eax,fs:[esi]2 o( `& l& ~( I
      out    80h,eax
2 p) P% [. ~5 G: p" T      mov    ebx,eax' y$ _( U+ ^8 ?& e
      call   _32bits( G, v4 J2 w* R2 o$ _, A  c  A
      jmp    Exit
5 S7 c/ J8 U6 w3 e;------------------------------------------------------------------------------------------------
: Z( B- }+ _) B2 d& XWBT:8 |6 C9 L! x/ V) B
      jmp    Exit
' g1 v1 P. i) j5 yWWR:+ T8 E& o5 P  f
      jmp    Exit" ?+ m0 W+ \( h) X) ?
WDR:
3 |) d; G( O6 ~4 d) }      call   DPSP- o0 e) t- t# B# n7 B/ Y8 h5 Q
      mov    Maddress,ebx      & l/ f+ Z* K; F+ H
      call   crlf# v, K8 G; w- b% C. t
      call   WDPSP& j+ x+ p( B. d5 @9 V$ Z
      mov    eax,ebx
3 a! [6 ?# M) Q1 [2 q) u- O      mov    esi,Maddress         
/ ]+ P, y# h9 _1 Z& ?' M      mov    fs:[esi],eax
+ `  e, B, r6 q# F' i9 S$ H      out    80h,eax
4 k) S% D- a4 @% s& t; \3 w* G- q  l      jmp    Exit
8 ?! P; H- c; N( G;------------------------------------------------------------------------------------------------      
1 j2 e5 p: D% p! F4 dExit:
3 A" H) G" W3 o: p- P0 j. {      call   real_mode     
3 ?6 d0 F2 h' E, O: o" t      pop    gs* r" H2 Q4 ?7 x+ _# f  Q
      pop    fs
$ J$ \6 s/ u! x3 H/ t      pop    es
( G5 j) ^: U6 P+ S8 x! t      pop    ds      
" \& ^' |& e8 e+ V      .exit* t9 H0 d. R" J
;------------------------------------------------------------------------------------------------8 e5 D9 H8 Y( Q  A) Q+ w/ p" M
big_real_mode proc near
  @  G5 X- x  h0 U$ ^      in     al, 92h0 `6 m5 [/ T& C0 _& X5 Z4 P5 C* Q
      or     al, 002
5 K7 B. O  k" h- Y" w  @      out    092h, al
) U' O8 h* C8 [7 W. `/ y2 Q' S7 \      out    0edh, al+ N" X# Y- [! U% m( u
      cli
4 ~4 d+ j. }9 g6 @/ d9 ]      mov    eax,DSEG3 g" T/ E, m, z. M, Z& K6 q' l
      shl    eax, 4  a6 ?; _) _/ b0 u! h8 }
      xor    ebx, ebx
3 ^4 h; m7 [8 T; y% X! _      mov    ebx, offset GDT_def( f2 t( t; J& a- D) ?
      add    eax, ebx0 Z, o1 G' v; y
      mov    dword ptr GDT_Addr.Base, eax0 v5 f. v1 C: X
      lgdt   fword ptr GDT_Addr
1 n. f; V  Q9 U9 R# Y" w, R6 D      mov    bx, 87 f8 w: o! ?. W$ ]2 J; x' c1 T
      mov    eax, cr0
+ {# |+ x0 h5 q* P2 `+ }$ x! ^      or     al, 10 V+ K5 R, s+ _" h0 E
      mov    cr0, eax
' @, v8 d9 A: N) q1 P1 y' e0 D      jmp    PMod& R% w8 G4 ?" M
PMod:2 s9 d: p! j# h% C. ~
      mov    fs, bx
6 U- X% A- O% f+ f+ m3 U      mov    gs, bx
( \, x: D- [- U% y. R; U- H) u      mov    eax,cr07 d) z. ?/ O0 T* v2 C" A. O7 R
      and    al, 0FEh
  K8 m8 w0 b4 p6 W1 R      mov    cr0, eax + I( L3 ~/ d! m/ `! P: P
      jmp    RMod3 G3 E: Z. [/ m5 h9 u4 }% P, s
RMod:
  ?  F: v1 \* @7 a2 D7 w6 t, F2 e, j      xor    ax, ax
( _/ W* d$ ?: J3 [  p6 ^% T  P8 ~      mov    fs, ax
( f1 S' R% ^+ e; P; s3 r8 |, X$ T      mov    gs, ax     . R. l" I9 y4 }
      sti     
# K1 S. V+ K3 a% t5 N" a      ret
% P$ K7 W. D1 A. z2 G# F2 @3 ^: ]big_real_mode ENDP$ L  G6 I5 D: u  t
;------------------------------------------------------------------------------------------------- W- @8 z1 A+ N, v' J
real_mode proc near
  @" Y) L) N; O7 E3 I# X4 i      in     al, 92h
# z3 V, p9 ]% Q4 Q      and    al, 02
8 b$ F6 o$ p4 Q      out    92h, al    ! [8 ]) I: a8 D* V& A
      ret
+ Q- R. D, u$ _, b# A; }( Q2 }real_mode ENDP# N- M, H' j" R7 K" P5 h' c
;------------------------------------------------------------------------------------------------6 R3 |6 {" S% j+ u
Get_Commandtail PROC near
+ `/ d$ K# |7 c! f" n& T. A  ^      mov    ah,62h
$ \' i0 t( N  @/ s      int    21h
+ e; `" o, @* G. T      mov    es,bx
" E: u8 [1 `0 N  Y  J' c/ Z% D      ret% D# m) V, m! t4 Q: I- f8 H; ~
Get_Commandtail ENDP    2 W7 X5 g& D+ F! F3 @
;------------------------------------------------------------------------------------------------% E; x1 N1 E( W; `7 F
PSP proc near2 Z* Q2 D* t) P# _! q! v
      xor    ebx,ebx
, f; s3 {; `+ O% G4 j# p      mov    si,89h  `! f: O  R, `
      mov    al,es:[si]" j+ }# x9 X) q- }- |
      call   Change. s5 K5 X+ X6 b' l8 n* F2 H$ [
      mov    cl,4& }; V2 T8 ?* j9 D( D, \8 G7 Q
      shl    ebx,cl0 {, q5 K- U4 a4 F: l/ @# H
      add    ebx,eax/ p, j' D. b' K4 I+ z/ u" d
      mov    al,es:[si+1]
' B6 ~8 n. ~$ g9 N      call   Change
, T" |1 }: D5 a* P9 s# x; R' B      mov    cl,4! T& e+ |  f5 N! e# r5 |
      shl    ebx,cl
/ z2 `$ o2 b6 w1 _* X: T      add    ebx,eax
0 J& }8 z& \. L9 F4 T$ O, p      mov    al,es:[si+2]  i) m; ]9 t) t% H5 p" g; u0 ]5 E; I
      call   Change
4 h7 A, v0 j( y4 ]1 |" r, ^" `6 m      mov    cl,40 F& F& a9 I8 }% S5 K$ J  h
      shl    ebx,cl
% s; {0 N( \3 s6 I      add    ebx,eax
; q/ G% [  P4 u/ Y! `7 ^; ?      mov    al,es:[si+3]
; i6 ~/ J0 Z1 g$ P1 [& Y$ ]# b5 e, g      call   Change9 P  o' G! E7 w+ p0 ~( g3 |' @
      mov    cl,4& I3 Z6 M0 z9 f1 E3 J2 I5 b& F
      shl    ebx,cl
) c! Z- f. P7 w: K( w1 _5 z      add    ebx,eax3 a1 X: l% Y) j( S! _
      mov    al,es:[si+4]' e) r  ^, y9 y
      call   Change" }/ }6 M+ u8 w* j4 |0 T6 H- \3 A
      mov    cl,45 p0 Q4 j% a0 W$ Q5 J: W
      shl    ebx,cl
4 f* F: p: b  u8 O      add    ebx,eax& A" ?$ h+ _& d# B/ l% h
      mov    al,es:[si+5]
" m8 L, y+ I- Q+ l      call   Change- i2 P% ?5 O9 d! k  @8 I8 d
      mov    cl,4
& Y6 {! R. c0 w& \* }      shl    ebx,cl( ^3 A6 D$ I3 S3 A
      add    ebx,eax$ R( I, U3 G6 [, V* c3 I; H" G" I
      mov    al,es:[si+6]' U% v  F6 h$ Q
      call   Change8 u6 O. i4 I4 ?3 ]  p6 K% C) T
      mov    cl,4: f" J! e" J+ [1 a' b* ?
      shl    ebx,cl
! F$ g' |; x, {" S3 M3 f  ^6 ^      add    ebx,eax- |8 Z4 a; e7 [( \1 l/ ]; ?& G4 y8 G; X0 v
      mov    al,es:[si+7]
# j. ]7 Q8 l) d* k  ?: W9 n0 B# }      call   Change! ]2 j" {$ Z* l+ g
      mov    cl,4
3 U8 K8 ^, I2 m3 p0 B      shl    ebx,cl7 c8 c; O" _3 L5 M0 f
      add    ebx,eax
# G/ Q: S) p' g0 ?) @  O      ret/ G4 a% Z/ v! [* ?2 }2 C2 D$ L
PSP endp
! j2 `# p6 ^  |/ _# F# r;================================================================================================
% \2 K3 s; x* s7 YDPSP proc near
7 Z: l- }5 Z! _- I6 n) w7 V8 V4 h( X8 H% E      xor    ebx,ebx
* m: q6 `; E5 H, d      mov    si,8ah
5 i' I, J+ W' m      mov    al,es:[si]
1 q- `4 d* ?9 B7 U  u3 V8 c  j9 r      call   Change% _6 d! ~4 {, f
      mov    cl,4
" P) M2 f& q: R9 U$ h      shl    ebx,cl
0 z4 w+ `$ x+ G1 r$ N      add    ebx,eax
$ U" k5 k5 s$ S2 I      mov    al,es:[si+1]
+ _0 x+ g! Z% o) O0 e' n      call   Change
9 O$ w, @6 L- A: r- n      mov    cl,4
7 b- ]7 @- N! M& J( F      shl    ebx,cl- W- K+ Q8 k4 [3 A* [9 O
      add    ebx,eax
1 H; V9 F3 U# P( O3 l      mov    al,es:[si+2]' D+ r9 Y6 g1 @" I3 d- c
      call   Change
1 Z0 m" \  m4 C* a0 z0 Z/ t      mov    cl,4
! U4 v2 T. x8 g" w9 o3 Z      shl    ebx,cl
: V  y& M: Y6 H( A9 }1 J      add    ebx,eax, S( j  ]+ e; a+ Q" j# I. B
      mov    al,es:[si+3]
* y2 h% g- O. E" r: n5 u% _3 b* ^      call   Change
; H" i( g$ s" o8 M      mov    cl,4
+ h0 m# ^# n6 ?2 G  x: s  q      shl    ebx,cl$ _, |. V8 R7 Q
      add    ebx,eax
7 x: r$ {" U" z. p% K) K$ _0 J      mov    al,es:[si+4]
0 d3 N+ r9 @, I: k9 Y; P# e3 }6 I      call   Change
. e4 i. i% X* g2 b$ w      mov    cl,4
7 t5 T, ]0 b% b! |1 X      shl    ebx,cl
3 f) s! Z+ ^) ?) c, n! d5 M      add    ebx,eax: Z$ A% D: F8 r# v2 x
      mov    al,es:[si+5]
3 H; k9 H; g0 R& O/ `) q, C0 s5 f      call   Change# q7 S5 i2 L5 N. g1 X' ?
      mov    cl,4
8 t, Y- p! {: j: H# d6 K      shl    ebx,cl* I3 t, N+ N8 e: E  y( E) G
      add    ebx,eax7 `  X0 T/ z) N+ v/ M
      mov    al,es:[si+6]
0 y# z7 n/ T9 @- C      call   Change
, N& ~  V5 T& \/ j; N- ~+ x      mov    cl,4& y, J* q6 M" x4 q  h1 k) w
      shl    ebx,cl: G; f1 D5 |' G0 c8 S
      add    ebx,eax+ p& ]( M* s2 i8 X: @5 {, y: V6 ^) l$ }
      mov    al,es:[si+7]6 [7 ^) @1 q. p: d) B/ @
      call   Change+ L2 e, q( n, W, b" V
      mov    cl,47 I' f& ]/ W! k
      shl    ebx,cl
; [- T7 [' n1 C6 T      add    ebx,eax) c& D! b0 z: p' I9 _$ M) ]5 z
      ret
! L* O. f* k% Y5 `5 D) t' ~DPSP endp
) E! M; O0 P! e4 b;================================================================================================7 e% Z, t# W) x: D6 t: U0 K0 c) x
WDPSP proc near
$ e3 G# I: Y3 Q6 `5 I4 b( L2 O      xor    eax,eax  D' I( r' R6 L! p! @# Z
      xor    ebx,ebx/ H, h* e2 t: \1 w& l% w' U7 ?
      mov    si,93h9 N5 g, g5 q/ u3 t+ O# o0 j: V. e% M
      mov    al,es:[si]
5 j$ V- U7 K: F( C) O2 Y      call   Change
" W& k- v. q7 E' v% M  @3 V      mov    cl,44 O  u# P4 H( F0 k2 U
      shl    ebx,cl* {( x4 g7 Q5 w! g* A: T
      add    ebx,eax
9 B) j1 u- h$ l, n8 O7 `      mov    al,es:[si+1]
9 {2 S- c  H1 ~7 f" D      call   Change9 T2 X+ W$ M& B7 A% P3 F: T
      mov    cl,4
( l0 {/ d3 a) q# y- @& s+ B8 ^) g3 z& ^      shl    ebx,cl
- P! b% ?* J" ]: _) b; }6 A( I      add    ebx,eax
, }8 W4 H! E- q- N  S      mov    al,es:[si+2], i2 E: g6 I5 ?% m; _
      call   Change2 o. p5 s7 p! i' X  m( ?
      mov    cl,4  S  e1 y- U4 w6 J5 ~
      shl    ebx,cl
6 {- d* c, O2 |      add    ebx,eax
. \( Z! W1 Q- G; B7 a* o( G      mov    al,es:[si+3], b) I" P8 X* {; n# `
      call   Change* |* V0 Y" J1 y
      mov    cl,4) O/ T3 f: I* Y
      shl    ebx,cl  R# ^1 k8 W& p8 }" X- i% O
      add    ebx,eax: K, a" _4 f8 F' K! \6 j
      mov    al,es:[si+4]% S  z0 Y, r: k! c
      call   Change
, L. A, a, f) e, {$ [8 L      mov    cl,4) \8 s& |; {' h+ s( L
      shl    ebx,cl
. r$ a6 q: U8 l2 b4 g0 Y' p9 [      add    ebx,eax& p: {& P6 W: Z/ k* c4 `) t
      mov    al,es:[si+5]
& g3 g4 h2 @* `) b      call   Change
' O8 g$ g( U* r* E      mov    cl,40 Z, s$ F) @( u5 |5 N
      shl    ebx,cl
$ `7 K2 N1 k5 @; `& B      add    ebx,eax
9 }3 z, K2 K+ G  Q      mov    al,es:[si+6]" B! K; [! l8 y. @. F3 D6 r
      call   Change% r1 b, u: J# Z! B
      mov    cl,4' @1 @: k) u) p# o! }6 q2 P
      shl    ebx,cl# H, k. @' m/ g
      add    ebx,eax
. f# G: z! [" ]- G# V      mov    al,es:[si+7], q. X! {7 F7 Q  `: \
      call   Change
' u2 p9 P; K% @4 W( J" W8 x      mov    cl,44 M( S3 e8 f# A- k0 d3 i# A" k
      shl    ebx,cl
" H# M: H7 ]* W. f: L. Z      add    ebx,eax
# F+ I" `. \+ |( P# r) j/ A4 o      ret
% u% N- q, b9 ^! b/ i% b" N6 _WDPSP endp: c  f3 z. Z% S* l$ f& z
;================================================================================================
0 j% C0 Y) p! X( B5 Y9 u  [Change proc near
  \: L$ n% Z0 tA:    ! u) R; b' M, ?7 J# \% V
      movzx  eax,al( `2 ]) }, q1 U5 v; Q* b; r$ M! w
      mov    edx,eax
6 O# x- w2 v/ [+ A( ?  O/ I      cmp    eax,'0'            
! U1 p( Q. S) {& h# l. ]  Q! u      jb     A
+ u% K1 D7 e9 I5 W4 Z      cmp    eax,'9'            
& j7 r$ ^$ [* y& Q" ]      ja     B
) @2 y1 Y: v2 c# ~5 a7 P/ P      sub    eax,'0'1 S" j- q; ~5 M
      jmp    short E. Q$ i) c4 v, M5 k
B:
. g# @/ F& ?2 a+ O" S      and    eax,0dfh           2 ~$ a( y/ f6 D0 @  S
      mov    edx,eax
5 w6 H, J/ w1 q* ]- E& L$ S0 k      sub    eax,37h            
) C% j. z2 [2 i9 J. }5 {$ o0 \      cmp    eax,0ah% W$ F: d* S2 K  {- @. M
      jb     A                  
: ^8 k, d1 W: i8 p' g, y      cmp    eax,0fh
5 R* W5 Y$ Z. N( \* ^; n; j) Y      ja     A                  * z$ }* n* H# L0 K
E:# F% J: h. Y: J1 @; T
      push   eax       ) [: l, [! ]* U0 \
      call   PRT               
! Q( l6 ~4 N( a: Q2 z4 c      pop    eax& ?4 B" z6 D5 V  c0 ]# E
CExit:
! E: d- P; E) \( _3 h2 C8 r      ret
2 j& x6 Z2 c1 F9 u% Z7 z5 M* fChange endp; i6 g4 q, m5 n. N$ N
;------------------------------------------------------------------------------------------------
% d2 J1 B: K. I- C$ ]# {" Q1 P2 RPRT proc near
0 y6 C+ p2 ?4 a' L! p% D      mov    ah,02h: p5 M+ ~; ^2 E9 W6 H- g9 Q1 F
      int    21h
: r- m, c/ {% i" W      ret
- \6 q& o% S' A6 Q+ l" a& ^PRT endp
7 A; j' \2 K2 @;------------------------------------------------------------------------------------------------5 s- \: B) R3 N! x
crlf proc near
9 V( v. }. r+ {1 U      mov    ah,02h
: Z2 e) F1 @/ @  [; k$ y% d      mov    dl,0dh/ _$ j# x& @6 F, O6 E; D  o
      int    21h
( X* f( ]- }! h& o( h( v6 v1 Y      mov    ah,02h, M! E0 `% f! e% q* G# w
      mov    dl,0ah
  e) M) U; f/ W! |      int    21h5 V, p9 E) b  y
      ret
# J  _4 V* L2 `! Q0 Z- G7 q3 Zcrlf endp3 P7 \6 f% k: \, K1 v: l
;------------------------------------------------------------------------------------------------
# D4 P7 |3 k7 A4 U_32bits proc near
1 z$ D! w% Y/ k      pushad" T9 M+ U$ f  h$ i8 ?
      mov    cl,4
* s% A  n, H- h' p      rol    ebx,cl
9 j  q9 ~* o' `  Q$ r" l# a      call   print_4_bits; n4 A* {8 z( {6 ^, z  A6 \
      rol    ebx,cl& Z- `( ~  f! |- O! f7 a$ b6 }
      call   print_4_bits% z4 J. H" D$ t2 t- Q8 Y
      rol    ebx,cl
+ Y& f' |1 ^) p+ [      call   print_4_bits% H/ g$ d# {# i! n6 `
      rol    ebx,cl
- u% m, ^6 F2 [& z' M' Q      call   print_4_bits
( F4 z* [- ]$ X8 T8 v! x      rol    ebx,cl: w% h+ L6 d/ s  p
      call   print_4_bits
7 }! Y/ n  F" _9 o: `      rol    ebx,cl0 D* b% C8 t# Y4 w2 f
      call   print_4_bits
% G* i4 X$ _7 v8 j      rol    ebx,cl
' P) n, x5 x/ H6 G9 i      call   print_4_bits1 [% a4 Z2 `) A4 H
      rol    ebx,cl# l3 F1 {" L' [$ x0 L3 C. r5 e
      call   print_4_bits
. \) [( h9 l7 F8 k' K      rol    ebx,cl& E6 N- D+ N* U9 S$ [# O
      popad  @$ q( z- R$ S7 p1 c# ]3 d7 m2 C
      ret
' U# ?' h4 E. Z. `5 e2 I_32bits endp
! Y/ O, A+ m. l) C& H8 T;------------------------------------------------------------------------------------------------
, H7 b7 g2 _4 d_16bits proc near$ y. `3 l5 O) t  ?! N1 E
      pusha        ( m* N% p8 g$ @
      rol    bx,cl
% c; I+ s$ z. V) [      call   print_4_bits% {- F6 }" c3 H5 X
      rol    bx,cl! Q  S! C; j5 f3 ~, |/ y, Y  N
      call   print_4_bits$ i9 \* l- |/ N6 Y  {
      rol    bx,cl
2 S& y1 [# t; w/ l" h  a      call   print_4_bits
0 G+ \& J4 q2 M0 I) F" x% s      rol    bx,cl
+ a  b# Z5 \6 }+ e3 O+ S      call   print_4_bits
4 l  k$ @- H2 m7 |% Y      popa/ O$ m6 @( u9 M* r
      ret
5 y0 k8 \+ ^6 Y* C1 v: V, P1 {_16bits endp# i: z5 F9 p  b, [0 O5 T, z! E
;------------------------------------------------------------------------------------------------
! l, R$ y5 i2 Y4 E3 N5 B_8bits proc near
' ~5 q# U% M% U2 W9 b7 T1 ]- n- v      pusha        & A. }( w+ N7 E
      rol    bx,cl0 l, ?6 \2 C) {8 U
      call   print_4_bits
& a) \* E& k( f" ]3 U/ V      rol    bx,cl# C+ Z7 ~/ F; k& F  n7 `
      call   print_4_bits; a' }: O! I0 m- i5 K9 z( E  F
      popa, ?: D/ X3 |5 `+ M. r1 \6 \9 V1 s
      ret2 c' u( g5 w$ L
_8bits endp
) t. E: d' c. I& o7 g3 M! Kprint_4_bits proc near
; |6 B0 A; r6 h8 \( r" M      mov    dx,bx
4 D% E4 ]+ [8 Z  L  R" a      and    dl,0fh
: l$ i- O) K" t+ e# `0 d      add    dl,30h
9 S! {. _2 ]" m6 ?9 S- x! ?      cmp    dl,3ah
! n0 T4 T) y# T" K% _/ {      jb     print
" u, A4 W3 C* }7 \5 q: o0 s# l- Y      add    dl,7- R/ E4 F# r; G! t* z3 s) \
print:  
  J/ N* p' @9 [% ]1 M      mov    ah,2/ K8 F5 ?: [- k/ s5 g
      int    21h, a7 z8 k* T& f& u/ T7 M
      ret
/ U3 L5 J8 n- d0 bprint_4_bits endp   
# c) `7 B& S3 J/ t7 vCSEG ends
/ c* j( u/ u" q8 f1 j! ?END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-10-12 08:44 , Processed in 0.081441 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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