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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)  e) T* |% \) k) J9 G4 W

+ @, J3 B' O- r5 }. l則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
/ k8 q5 G$ S9 |: B3 g" m1 i( n# A& V2 h7 o! n6 Q& n3 _/ e
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
! _: s9 E+ ^* o6 Q! O, ~! |
7 K8 X9 ]+ [% C.model small
  P# d& A) U5 W9 l" D: k* j2 x+ ~. d.386p
& o2 T. V0 x$ S+ h, U) O7 CDSEG SEGMENT USE16'data' 9 a; Y6 `% ]+ B1 a' Q; h6 z  b9 O6 u

" \1 ?  `8 p& J# vDESC STRUC
7 J/ W2 l5 }( k/ H" Q     LimitL DW 0
) i8 g  v6 Q5 M/ I& T     BaseL DW 0
; q, n9 b* \- `4 i, l- r     BaseM DB 0
# Q% ~. G. \: O* ~* X     Attributes DB 0 ' P. O, b) w; }, I
     LimitH DB 0 2 l6 i( B4 z* q1 f. p/ N+ P. [
     BaseH DB 0 : Y! M/ D1 m# u8 M" U" w) j
DESC ENDS
' w7 I2 J1 ?) o' S$ p& v8 g+ l- g2 J$ h
PDesc STRUC
) ^- T6 G3 ^  O- W- I! h     Limit DW 0
2 B5 r( |0 {5 p7 B) d' {& m     Base DD 0 4 o" \: N' x  A. {3 v; }: v
PDesc ENDS
7 z1 s4 o4 @* k# X% r  X% B$ J
* C# T$ X! y  ^! K! kGDT_def Label Fword3 u4 l# [! W& c  ]- x0 e* r. T
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>" r7 O. P4 I1 E& h1 k8 m6 k& C
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
5 k3 i9 o  U- T- x0 tGDT_Addr PDesc <$-GDT_def-1, >2 Z- v" L  ?: [9 B: ?/ [

: w0 W$ t) O4 M$ kMaddress Dword 0
: W# \+ x( c$ \6 |( [& |6 B1 w4 s. w2 U* T8 G, l' F6 I9 Z
DSEG ENDS
4 O. z+ `6 a, Z' F8 x6 L9 zASSUME CS:CSEG,DS:DSEG! K' q( [' W# W" r6 e1 [# l$ @9 g

; c6 j4 V8 `; s, o0 k  B( q+ ]CSEG SEGMENT USE16'code' ; O7 K6 M; Q+ k: M4 a7 _3 @
      push   ds
7 q! t' j+ u' h: s7 \2 R+ H0 t  T      push   es
% {" |* z6 s9 U6 K      push   fs' ~8 a3 R" i& s  D) F0 j
      push   gs
, n+ U2 ]9 o4 m      call   big_real_mode     
+ D' `* R( o5 @8 S# X& l      call   Get_Commandtail
: w" l  T! Y1 {      xor    ebx,ebx
* `. J7 Z% z3 v! ]+ o/ t      mov    si,82h
% w( ?2 `2 S' H0 n# E; c      mov    al,es:[si]
5 k9 q# c6 I6 x, l; @, V      cmp    al,'r'
. S: a3 E5 |+ d$ V1 w      je     R  k6 D4 H2 G: ^* r& E; _3 H* T
      cmp    al,'R'
+ L- ~! b: c5 I6 y; m      je     R# z) F8 I7 w9 s* L6 M( J
      cmp    al,'w'
' n' M7 L0 \5 C! \0 J+ f# F      je     W8 u; y" [- J$ D+ e, P9 s
      cmp    al,'W'0 k7 C, [5 P4 t: X3 U$ ^
      je     W          + F& `* F9 p8 d: S0 ^7 `
R:
. [( U! e0 b3 W; N) H1 {! G      mov    si,84h" {/ E, e+ P* }2 R% c9 N
      mov    al,es:[si]
0 V% b# S* h0 ]" }9 }9 E8 A      cmp    al,'b'
. ^* r. l. @' F8 }" D      je     RBT
0 T2 `4 R( z1 ?( y0 s" V      cmp    al,'B'
! n: a8 i6 e5 P" Q      je     RBT$ o9 N2 x6 C& n5 k6 A# h9 J
      cmp    al,'w'
: U0 X- ]' I7 \' m" e      je     RWR
7 g: o8 G; {( O      cmp    al,'W'& T4 ?+ L) {' A$ v2 M3 H
      je     RWR# k. H; ^. B2 @) i  q5 {
      cmp    al,'d'
) G0 d1 v; W% F* Y      je     RDR% h4 ?9 e" C9 Q2 V! w( H
      cmp    al,'D'
8 Z- M% D5 ~2 \. S3 i      je     RDR            
, }  g; S% o! N  gW:      2 h, R/ U" Y8 ]$ `
      mov    si,84h
2 |" d" T+ j: d) d8 e' O      mov    al,es:[si]
! [! l/ s' z& o  z  n4 O/ U5 Z# e      cmp    al,'b'
! `) w5 j' D7 E" @! ^- Z  ]6 W      je     WBT5 S3 {% x5 m3 ~! x% q
      cmp    al,'B'
0 A3 i6 `2 c8 Z- C& x! r      je     WBT* G, }/ M( `3 r8 J$ h; g
      cmp    al,'w'2 Q& `0 [; \: A( D" g$ l6 G
      je     WWR
. C' k' z6 o0 V      cmp    al,'W'
! I' s5 H% K9 Q+ h) y  |6 x      je     WWR
$ c' p6 f8 ^1 f7 w. i% @      cmp    al,'d'
( O" D5 H4 b8 Y/ ^3 x) ]& X      je     WDR
/ G. S) \8 A8 O* ^# @  Y; c      cmp    al,'D'
% I' E7 T' x7 B) V      je     WDR
% W# }* j/ H( a) _* `RBT:. f+ ~& M$ E! V( h
      call   PSP        
1 Y1 z& t# o- h2 n; T  D      call   crlf           
6 ~3 A0 z+ J2 O      mov    esi,ebx
4 g! ^& U2 Z- c7 Z% W6 V0 b& {      mov    eax,fs:[esi]
4 a! P$ J% l4 M0 M3 I      out    80h,eax) n0 H+ }; k& q7 d
      mov    ebx,eax
, \' R1 [$ h& K% x1 B  T      call   _8bits
. q$ J' Y( \4 p$ |- R  X3 D      jmp    Exit
$ _8 _+ B6 |$ b+ }6 k. f  R; r2 DRWR:
$ F$ `/ _4 ?. g6 a' x; p      call   PSP        " B9 |. f( I' u. q! _  o5 f* O' [
      call   crlf           
8 }6 {' Y' B7 x( G" ?' {      mov    esi,ebx) o2 Y, Y7 B8 s4 J
      mov    eax,fs:[esi]! j( V  \& D$ C; o8 R  [
      out    80h,eax
7 {( [2 E9 q! L( z      mov    ebx,eax, B7 e3 |& i7 l2 y% G, `' Y
      call   _16bits
- @* c# x/ H) R      jmp    Exit
; T# `4 _/ p4 WRDR:
" {) d( J2 D9 I& B1 @% B      call   DPSP        
: {9 l* r1 i# P0 F6 b      call   crlf           
2 `) J# e" O2 l7 a8 ]) A: [, ^      mov    esi,ebx$ R1 \! X1 b5 f: j
      mov    eax,fs:[esi]5 v8 t- Y$ S' A' u6 f( Y
      out    80h,eax" z! U1 r9 M# a, T: I/ i
      mov    ebx,eax7 |) N* c5 N# z5 j: s
      call   _32bits+ Y9 _- p8 k$ c" F
      jmp    Exit
% Y. m/ f$ m, N6 T;------------------------------------------------------------------------------------------------
6 A; l: ^8 ]8 u. bWBT:; K6 h) Z5 Y8 c5 ?1 X
      jmp    Exit% z- e1 B" L- k) Y, Q
WWR:
  ?1 V; H& H) W/ X. A4 q      jmp    Exit
2 V  q9 w) Z6 i4 }1 n5 K5 BWDR:) g4 G6 u3 t8 k
      call   DPSP7 m) M- l$ {- S7 D& s. m
      mov    Maddress,ebx      2 e- k5 N. T+ N) [. X, m" B
      call   crlf; F* K5 W6 j7 N# v: a. e0 H
      call   WDPSP
+ K1 {2 m0 @( g  ]* ]      mov    eax,ebx  e6 O  U: M( k/ i- w7 R
      mov    esi,Maddress          ( F( S) [, S% C; N2 N
      mov    fs:[esi],eax
( d3 w! z% K/ w1 i, {; o/ d      out    80h,eax
0 m- C6 t  a: C6 w: `1 _% d      jmp    Exit) k2 d4 B! D* |; o1 i9 ~/ J
;------------------------------------------------------------------------------------------------       ( H8 j2 N3 S. d: A
Exit:
- w6 V) N, U) Q7 r      call   real_mode     : R! a' D6 x4 F9 m% d+ H. C! [
      pop    gs
& c# H3 m' J6 J! q, P. a      pop    fs
, Z+ I6 a5 f2 U  w. N- C/ f1 e4 D      pop    es
0 {1 F& l5 Y6 e$ u8 P) N      pop    ds       ) t( z; {) s- E8 s
      .exit
6 _5 ^% O; @' w: E- Z;------------------------------------------------------------------------------------------------
$ o1 x2 x2 d7 ^# x. H1 J& hbig_real_mode proc near
5 D3 F( L, ]  o( H: t- M      in     al, 92h# S2 Q$ X7 X, n
      or     al, 0023 e3 O7 S7 V; n; B+ x3 H* Q7 V
      out    092h, al2 v( ~1 S- q5 Z# e
      out    0edh, al
5 y' i7 {4 K3 l+ D* T      cli: r/ z; z% k( e- {7 _) C
      mov    eax,DSEG; |3 d9 F+ O- f. |! ?9 n
      shl    eax, 4$ I, \" D6 v; X; R5 o1 x/ \
      xor    ebx, ebx
& j; M1 q/ r+ f+ t2 Y  H      mov    ebx, offset GDT_def
" E2 k& t  J) n/ O4 K" r      add    eax, ebx
: e, v% D- }1 E' Y! ]8 n      mov    dword ptr GDT_Addr.Base, eax9 ]  }- |4 Y2 _" E
      lgdt   fword ptr GDT_Addr" Q* t$ Y, R: T, P) d- Z: F
      mov    bx, 8
. D8 f/ h& }0 g0 e' @+ N2 y) i      mov    eax, cr0( K: H% j4 T/ q
      or     al, 19 T# I; ?3 K4 g" T
      mov    cr0, eax
2 i$ L1 I5 U7 d4 p& X2 x% I2 |6 k" w      jmp    PMod
( x) \6 e+ U- h* v8 U  mPMod:- H$ C! W6 P6 r6 m3 c: e2 d1 S
      mov    fs, bx. k9 Q; @+ _* L6 Y, ^& C3 r% _
      mov    gs, bx
: |( h4 z: W: D, J3 l, K      mov    eax,cr0( Y3 B! w3 K) Y" j7 g# J" i: M
      and    al, 0FEh
# _6 b- q  h  p7 y9 U0 R      mov    cr0, eax
1 C7 X5 t0 J2 n      jmp    RMod3 U* ?4 e) K- _6 z& D+ g
RMod:
# R( p8 I5 o# ?/ J      xor    ax, ax# l' X8 c- a$ u" {1 Q5 }+ x" }
      mov    fs, ax. e  b1 j* X! W& d
      mov    gs, ax     
9 o. G1 s6 j) R! y' k      sti     ) h8 R7 r. ^- S1 P7 f% ~
      ret7 K  _2 t6 \6 B- p+ }) E* l
big_real_mode ENDP( i9 w8 H1 R2 b5 Y4 c& }
;------------------------------------------------------------------------------------------------
9 z0 J/ V. W1 _( F$ w$ Xreal_mode proc near
: c& v! B# i- E& Z9 o      in     al, 92h
/ Z8 @2 F3 W8 i% }' t      and    al, 02
' {: p- h* m* L4 z, H. l! Z      out    92h, al    4 X$ g! D: j1 I; {# A
      ret, M- v" _4 X  C1 v2 F1 N  T4 J
real_mode ENDP) c8 s1 g3 y& {
;------------------------------------------------------------------------------------------------) a- T7 Y1 V. I6 x0 n. A6 c: e
Get_Commandtail PROC near* W- }% w+ I2 k: Z: m) G0 f
      mov    ah,62h # ?* I" a# a. g# M2 Y' r
      int    21h" N; X' y6 Q- a$ x, z. G3 r* D2 \4 `
      mov    es,bx' o) G" y5 v5 h
      ret
- d, g, I: i& q" hGet_Commandtail ENDP    : j* _0 L0 n: k# A( D
;------------------------------------------------------------------------------------------------
" ?  Z/ I; i' W7 J4 kPSP proc near
0 c# h! |' M  a      xor    ebx,ebx
: ?# ~5 I/ J7 X; Q0 }& h* D, g% ]; k      mov    si,89h( X2 ^5 [: d$ l" h
      mov    al,es:[si]3 h4 h; R1 {2 A( b+ \! a4 N$ U
      call   Change) u7 Q* G# |. ?7 R. A2 {0 W
      mov    cl,4
! ~0 @3 }- h/ u) V. [      shl    ebx,cl
  h/ ^- u6 v' i5 w      add    ebx,eax
, J, c) ?7 z0 v  `0 f7 j. }" e      mov    al,es:[si+1]; K% V& M. h: e" u1 p  [% h9 K
      call   Change# n* S# x+ Y9 p, U  B
      mov    cl,49 D0 g6 V! M- N  _0 Q( T. p; R
      shl    ebx,cl/ {0 o+ v5 X6 f7 b) `$ F
      add    ebx,eax- S4 p6 L$ L& r
      mov    al,es:[si+2]
. d( Z0 k) j- H9 [; i      call   Change2 j4 k1 ~' w" J5 u2 j* R& `
      mov    cl,40 C. j( v% [+ z' y# J6 e
      shl    ebx,cl
/ R. }* ~5 R* x      add    ebx,eax
8 `% Y  U# @: G! e      mov    al,es:[si+3]' R) Q& J2 l1 S( z, y
      call   Change
& I9 i; ^& \. }; B  Q8 C' M% X; J      mov    cl,4
3 l' @8 u. h9 O/ S  N' y1 |      shl    ebx,cl1 f& H/ O- ~( t. }4 o, w# V
      add    ebx,eax
* Q8 Q. J5 Z1 d  [      mov    al,es:[si+4]
" u1 e: ?2 O  }/ u! |3 I; r      call   Change" w1 _+ D) y, u
      mov    cl,4
  W2 q; O4 q: y1 ^$ o4 i      shl    ebx,cl3 g0 O. e: J( y0 d  [- N
      add    ebx,eax8 {$ K! S! ^% @  n+ I
      mov    al,es:[si+5]) j  }. C% P. M' N) z( |5 [9 R8 n
      call   Change( q3 c9 i& ]8 r7 q, S. s4 C
      mov    cl,48 w5 E7 {1 V4 L! V* j4 f1 z
      shl    ebx,cl) q0 n$ m5 E, h8 p7 U
      add    ebx,eax
  Z; k7 t* D5 D! M: s  V: u3 A      mov    al,es:[si+6]
4 k, a0 L2 ?1 X      call   Change3 R+ K; n9 a& V- [' N# H' G
      mov    cl,4
+ m+ L$ z, v6 l0 T; [      shl    ebx,cl
: z+ C' H  g: O  v      add    ebx,eax) n) M; W$ @9 I0 j1 v3 {
      mov    al,es:[si+7]
' K8 A9 U# M8 d' f! K6 m      call   Change
/ T5 W% Y/ D8 G0 J1 O      mov    cl,4
: T1 v2 ]3 O) s9 U      shl    ebx,cl  C, J- _0 g* z
      add    ebx,eax
6 e0 e) H  B( j8 O, n( W8 o9 }) z      ret1 N1 {( u( ^: E+ U/ N
PSP endp
0 C+ ?2 k2 s! p! r0 K  F( Y;================================================================================================
% C& W9 P& F% x* N8 e8 a' aDPSP proc near
: w( @& y4 Q) c4 f      xor    ebx,ebx
$ K5 J2 }' E( v$ t) j: Z1 |      mov    si,8ah$ `9 g# F0 F! U- `3 F1 d% M
      mov    al,es:[si]
0 @+ @+ o$ e/ K& `# i$ X* s& x      call   Change
% E  z1 @/ W' A5 T  ^6 Y+ E) |      mov    cl,41 P- s6 G9 O+ x, a; v; ]# A
      shl    ebx,cl- h3 u$ M1 P) C, G6 g3 F
      add    ebx,eax
8 O; f' z! G& r( f# x2 i; T      mov    al,es:[si+1]
, |' o; ]3 X2 }- y3 {" p      call   Change3 q- ~' l+ J9 z& v- z6 \
      mov    cl,4
" `- m" Y+ ?5 z! M9 e8 q# u' Y      shl    ebx,cl! S; K9 G; s7 v& Q: ~7 B% W
      add    ebx,eax# c% M1 Q) J+ Y9 V' g$ Q
      mov    al,es:[si+2]
' t' A3 S& j" L& {' `) i# a      call   Change
6 R3 ^, |0 ?7 C( f9 x4 h7 J. C      mov    cl,4
5 e( y0 G6 m- `% N0 h; s1 U8 G      shl    ebx,cl
% N. v6 k8 }3 z      add    ebx,eax2 T& R% _% S9 h2 X& e7 W% z; o
      mov    al,es:[si+3]
1 k$ H5 s5 t$ N9 o1 j, g      call   Change
: C7 s4 Q/ A+ V$ ]      mov    cl,4/ A% M9 V0 l1 ~# F- V* {" E9 p
      shl    ebx,cl1 ?$ S+ [/ O3 |0 K8 T" L% i7 d
      add    ebx,eax3 Z9 ^/ b8 p3 o( `$ c1 R: G  F
      mov    al,es:[si+4]. {4 T# E) S3 @' T1 G0 G
      call   Change* l# f& |  j3 [- f# b& e7 j" a
      mov    cl,40 h) @0 G* z5 g0 m  }# y4 W5 K5 u
      shl    ebx,cl+ w: R" b5 k" m1 e# h. N
      add    ebx,eax
* W" q0 F# J; b- p      mov    al,es:[si+5]& L2 _% b* c( t* C' r, M$ n
      call   Change
7 v$ L  R3 h, X# E      mov    cl,4) k3 t8 y9 k5 J( Z. G+ W, N
      shl    ebx,cl4 c3 ?& M0 i: p  W. l
      add    ebx,eax
% ^0 }" a: F) \' A      mov    al,es:[si+6]$ P+ Q) T" X7 f5 X9 c$ z0 i3 \0 D1 f" N
      call   Change3 U( R2 \- x- y% [
      mov    cl,4  ~/ f7 h" B! x- C
      shl    ebx,cl
4 o" X) [4 ^, w& y7 p$ L0 S+ F      add    ebx,eax4 [1 o  s& o- h+ V6 [& {4 {
      mov    al,es:[si+7]! n8 {' B1 f) C. g
      call   Change* ]7 P' X+ A! U0 D5 \* s$ u* J
      mov    cl,4% w# g: L* L, X
      shl    ebx,cl
/ C& A) e/ f* v. @/ O& X      add    ebx,eax
# A$ Z" i/ e+ q      ret7 b3 p9 a, ?7 c- E3 Y# d5 l/ u7 ~
DPSP endp# }$ J' @* t/ B' g1 w. q
;================================================================================================- ~0 {% {) |2 y2 {7 P
WDPSP proc near
1 Y+ x! _) p3 _  Z4 {+ n) c3 g      xor    eax,eax
. h4 P2 D  M( F) Z- k7 ]      xor    ebx,ebx
- B* b! P: W# e      mov    si,93h
1 k1 E+ _3 F, T+ Q7 H      mov    al,es:[si]/ h( ^2 t: K! V9 y0 S  r
      call   Change
  V" x# |0 v; r1 x5 k1 l      mov    cl,4( V1 Z% y4 @  L# b* d/ K
      shl    ebx,cl
8 Z* P: H- u& o: b3 n5 H      add    ebx,eax
8 _6 X: u! V* O! Q      mov    al,es:[si+1]% n+ O! r1 N- Q, J7 v
      call   Change( f  w" W3 u, i/ ]( t8 }8 {5 D0 a
      mov    cl,4, z+ P) R. t( f# f9 q
      shl    ebx,cl
2 h" P. C. i5 Q% {9 i- j# E. I      add    ebx,eax
/ H! o' x5 Z2 y9 O4 A5 E# }      mov    al,es:[si+2]
6 H0 f* P5 T) I3 Y2 q5 U+ q8 g      call   Change6 O, u- P- Y+ f0 O3 o1 \
      mov    cl,4$ M" ^  y+ L8 v/ p8 n) \
      shl    ebx,cl
! K; X7 B# H- {' S2 `! {( ^/ u" q      add    ebx,eax
8 \, c9 X% e- U9 r# U      mov    al,es:[si+3]
( S) N$ B/ E0 e1 k7 o/ _+ J, H      call   Change
# S3 c" g" n4 `3 U0 F      mov    cl,4
: ^. B% m3 J6 x! H, I+ ~4 o      shl    ebx,cl+ p- r! a. f+ s, X' d
      add    ebx,eax; {- S# ?. |& K) A( z$ ~1 a
      mov    al,es:[si+4]/ w( \% B- R& E* D9 v( G. j
      call   Change( J$ c! f& I1 F
      mov    cl,4, g' _% {2 [2 i# S
      shl    ebx,cl% y2 `+ c. q% l  V6 v) R
      add    ebx,eax- T: w3 q# D- R% j  w
      mov    al,es:[si+5]
, \/ J* i* W, e' j# V      call   Change8 E, u9 M6 E( I3 t; t
      mov    cl,4
7 s3 G6 q7 h. S7 l2 j* K      shl    ebx,cl) I& V- E' Z' z" P5 M% |
      add    ebx,eax
) J% ~7 u! |$ j+ A  J" J. F      mov    al,es:[si+6]
1 `5 \$ D0 W7 i' J4 G4 @* G      call   Change
6 L* _" t4 w( b* x      mov    cl,48 s' C6 q2 V& c
      shl    ebx,cl+ A. y9 e1 n! R+ V
      add    ebx,eax& p- L6 n9 x& v2 k- I% N* Q
      mov    al,es:[si+7]1 ?/ q  u8 P; f+ e0 p; }
      call   Change
9 x5 O! X0 s" v+ S! E$ E      mov    cl,4) N9 M% I9 [# u4 V% T
      shl    ebx,cl6 w1 m5 k3 o1 z6 Z
      add    ebx,eax
- o/ T% l1 j3 I3 w  F      ret
: f' f/ K1 r6 l% T- [WDPSP endp
: g9 P# Y# \# @6 M;================================================================================================) C* g! s9 ]) r+ V% [$ c  f
Change proc near7 O6 y+ y& X/ L, H9 ?
A:    + x6 B4 n1 K* x3 f# L; n
      movzx  eax,al
# I4 ]& o1 @  C7 @7 a0 h* T      mov    edx,eax
) Z" d# j% z& L' g. c      cmp    eax,'0'            % L, A0 x2 y% I. ^/ P& i
      jb     A# n, P" O# ]$ s, I
      cmp    eax,'9'            3 A  `' x% {, H& I7 N+ H, r& H) o
      ja     B
6 w. m" V0 y+ Q7 A' \0 y      sub    eax,'0'
8 \3 \; }+ U. i      jmp    short E
9 |. c+ f1 Y+ o' W6 jB:' v$ `: P$ x! W; Q
      and    eax,0dfh           / X" N5 B& d9 r/ B
      mov    edx,eax
4 k. s; H" p9 S* |. R, q, i      sub    eax,37h            & ~, P3 d1 ^0 Y3 L/ J5 `& m( c
      cmp    eax,0ah
: w; O  J) v. u1 Z1 k2 P7 p; i      jb     A                  3 u! b! |5 c# m0 @5 c8 N8 t
      cmp    eax,0fh
9 n5 B" D9 Z" ]& W9 z7 F      ja     A                  2 x9 i, `3 ]$ A2 P* P
E:
# Y: X9 i& y4 o* P' g* Z      push   eax       / n. h2 l4 K# a
      call   PRT               
1 y1 _+ a6 r8 N- M      pop    eax
3 S0 o' X: Y) B) N+ ?0 \CExit:7 v6 u$ ]" _" `8 t1 n
      ret
) ^/ P. G8 v6 _( M0 H& o4 ?6 c- qChange endp9 c9 m% ?+ `* b) d4 O
;------------------------------------------------------------------------------------------------! ]! e3 Q) r6 w/ c& N$ @6 ~
PRT proc near
8 t& f' V1 |! E- u9 }8 s9 }# T) Y0 D      mov    ah,02h
% [) n4 z; q$ i5 e. A3 n8 ]      int    21h
2 i( Q) y  ~* Z9 S: {1 }& W      ret
, K, |& s& e& Q, ?PRT endp
# s0 c( E, T$ C9 y$ j" `7 ^! t;------------------------------------------------------------------------------------------------2 f. ~- l4 t. k2 W* x0 Z% [
crlf proc near* {& f5 R6 L" J0 z. C
      mov    ah,02h! o3 ?3 N: N0 r: _, G
      mov    dl,0dh4 ?5 U0 j# `2 e8 S) T
      int    21h, J: `+ z4 y1 l
      mov    ah,02h- D- y5 h3 c8 D* o
      mov    dl,0ah
4 }% g& g9 r1 Y* O  h+ G) S) N& N      int    21h! {1 O) D& U3 F" O- Y6 I
      ret5 }8 K) _0 Z0 f2 h+ Y* ^3 [$ r
crlf endp
! Y* \1 j$ d4 X/ C3 H8 t;------------------------------------------------------------------------------------------------/ O7 e! j  ]# k2 [0 R9 \' y
_32bits proc near
4 g+ W! H( T! i6 r2 m      pushad
* z" x  j# L- X/ w  R- ]      mov    cl,4! [. a9 y( X9 ?2 N- x7 \9 m
      rol    ebx,cl
5 t- F  o" t( ?$ |, o' a      call   print_4_bits' h, @5 M: ^3 [& p
      rol    ebx,cl! L; u( r  t; [5 w" A+ C7 X
      call   print_4_bits
9 S2 j5 t( X6 @& X      rol    ebx,cl
; \! Q. L0 c8 p! T. V      call   print_4_bits
" \5 o/ k: t0 u7 S      rol    ebx,cl4 Z( q& Q& X  Z
      call   print_4_bits2 L  Y7 g' n; \
      rol    ebx,cl
+ o/ \2 E  o' T, u0 E      call   print_4_bits( R0 b2 W, N! b4 ]
      rol    ebx,cl
) C& e7 H" l' P      call   print_4_bits
) V! D$ A# P+ y1 I# W) J( }      rol    ebx,cl
) o/ g0 H/ R; ~$ w) ^8 J      call   print_4_bits
; u  s; o8 s( c      rol    ebx,cl
7 e, V- a9 q7 H      call   print_4_bits
4 X5 [+ P3 s5 B1 Z( y+ ]7 m+ c      rol    ebx,cl, x% y( s5 u0 B2 q7 @; j6 F' Q
      popad
0 j, ]# i, j2 f% y      ret
" x. z$ e6 v% D/ f_32bits endp/ @( S# `- {2 u- x% g
;------------------------------------------------------------------------------------------------
# H" R7 Q* o5 Z_16bits proc near
5 [  Z  E1 b6 b/ q( w+ i5 S; x7 H& k      pusha        ; Q) _4 @9 K8 X- `, F: y: E
      rol    bx,cl0 _/ M, c, g! q
      call   print_4_bits# U+ |" E+ t  P5 g
      rol    bx,cl  m  F% R3 |9 {# [2 e) A, Y6 O
      call   print_4_bits
& b! o& R! k1 u* D8 }* b      rol    bx,cl
( H0 b9 z6 w: L6 x: j9 q      call   print_4_bits0 x) V' Q& g$ F  L$ `
      rol    bx,cl
1 V' C6 ]# h- O0 J      call   print_4_bits
3 _9 U/ S' T$ n; q5 z6 A      popa
7 z6 }* C  F8 L; D      ret, K( |& R7 P1 `2 Y
_16bits endp
2 I3 n9 ?! ~  h, ]/ L3 K- W;------------------------------------------------------------------------------------------------
  u9 S4 ^9 ~4 y3 F5 w& C- u+ g_8bits proc near
9 H: m) Q' v! x% [      pusha        
  X4 }/ q3 Y) L" b" h      rol    bx,cl
9 i8 r& w* C4 o) Y* p# L      call   print_4_bits
* @9 \/ m2 P: L1 {! P5 B; c- x4 |      rol    bx,cl$ N0 Q0 q7 c! M" h% y
      call   print_4_bits
$ L& W' {# |* X      popa
1 X& s. p% ?# i* m# u! x$ @8 E5 ?, C      ret* g, N) ^1 ~- |6 c* Y2 Y& u
_8bits endp
# f/ D; P# w' z" |1 W8 kprint_4_bits proc near
- K2 O1 U+ ^7 Y0 c      mov    dx,bx) e3 Y; ]& r/ ^
      and    dl,0fh
6 p* ?8 E- C1 R% Z( l      add    dl,30h/ a4 D; g4 s, ~6 G
      cmp    dl,3ah
* U3 g+ c3 M1 V7 X      jb     print. L9 H: b' M/ S9 X) x
      add    dl,78 F2 {$ `# X% x- y
print:  7 B! t8 e# k0 m* ]  A# [
      mov    ah,2& j  G% ?! O6 O9 n$ r
      int    21h
$ y: H( w/ `+ k) O( q      ret
7 l. C3 Y2 @! k# xprint_4_bits endp    8 m3 ]% Q5 y# @1 N
CSEG ends
1 @, ^  e0 _5 e! VEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-6-29 04:14 , Processed in 1.611515 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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