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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)
7 J7 l, E6 C. S7 L* D2 z8 ]: y* G9 L: U  a5 T: e. V% j7 A
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'# E- }  h6 v9 @
  G' R) b9 e0 r4 }0 @# G) G
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
( D2 t: @/ x6 [7 a5 Y" p$ G
; V3 l& ]5 ?1 n6 i* _3 Y.model small
5 _. |$ v4 ]1 s9 R4 W; l. p0 T.386p
; d+ u6 g3 S* cDSEG SEGMENT USE16'data'   ~" b0 Y' v/ q% e
) h0 n$ \! e' G- V) j3 @0 F+ g. t  H
DESC STRUC( Q: t9 b2 c; l4 m8 Q
     LimitL DW 0
+ G! X' s+ G% V7 t/ }6 b     BaseL DW 0
: D3 \: P  O) i  A7 W# V- [+ {; v     BaseM DB 0
( C. q7 u5 S% [0 n) O, U     Attributes DB 0 . y6 S6 J5 f7 q, [; D
     LimitH DB 0 1 @8 ?* s- w* l0 n
     BaseH DB 0
* P7 h' I" ], W* R2 p# Z+ SDESC ENDS
3 F  W7 t: r3 q8 ?4 i4 |" T! k/ f
PDesc STRUC+ b, V: S) X5 C
     Limit DW 0 - h/ f) |4 t1 }5 f# k  w/ w; x
     Base DD 0 ! g) S& O8 q- |9 J; ~. {2 M
PDesc ENDS5 n3 m; v' x/ @: t' n4 W( A
7 s% i7 B  v. t7 u! L
GDT_def Label Fword
6 k9 Z0 x. g# \: n" xNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>; K) `3 T) y  [/ ?; x* ^* {
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
2 z  J8 h, E& T6 P  E7 c" bGDT_Addr PDesc <$-GDT_def-1, ># h% \' m$ w  C# [9 ?+ ^9 g$ U

! {* G8 A: S" r& F& ?! P7 s$ dMaddress Dword 0
' c4 R/ {5 ]2 J' |4 a) p6 L7 i5 \) l' t0 I- P( y% e8 C8 X
DSEG ENDS 5 ]3 x( w2 d0 f6 X4 e7 i6 j0 a
ASSUME CS:CSEG,DS:DSEG
+ @2 L5 o& \: I, c  B8 |3 L, F- c! T
CSEG SEGMENT USE16'code'
1 n  D+ k$ t: f: J0 k      push   ds
! x) h4 E& X: k: }5 ]+ o      push   es
  P/ p6 p- C/ R$ w: N' x; o. c- f      push   fs2 B9 {9 ~# o; |$ N: a
      push   gs
2 I5 b+ _" y- {      call   big_real_mode     
" u% N) v3 n# h$ }      call   Get_Commandtail0 H  y! }$ u4 \8 C# h" x' f
      xor    ebx,ebx
+ \* E& P; {. L0 W/ K/ s" e      mov    si,82h4 j2 M- c, Z+ Q# g) g
      mov    al,es:[si]: C1 S7 v7 @' D
      cmp    al,'r'
+ n+ v+ {4 G  G; T5 m      je     R6 t. R9 y& w/ {" a# y+ T- A
      cmp    al,'R'7 w6 t2 o& c: x& }6 }$ q
      je     R
$ N+ k$ H" k, O! u. d      cmp    al,'w'( {* `  K, S% Q' A5 n
      je     W6 P# U, M1 s5 M& X; `
      cmp    al,'W'. i+ D: `& F7 g9 V# m% M
      je     W         
: @4 G' d, L- t7 R5 `; UR:
$ _) g1 `+ a) ^! Z      mov    si,84h8 \3 Q- `$ Z7 z1 a
      mov    al,es:[si]
3 O+ O3 R' E7 z* N      cmp    al,'b'
0 Z5 u) P" p9 c9 f: u& H      je     RBT- V- N1 ^: Q7 n3 Y5 J9 |2 B) o
      cmp    al,'B'7 x8 u  C" r% V7 @1 d
      je     RBT
5 d. E- P' b' y+ U; }- }3 Q3 G      cmp    al,'w'
& q% l" T: o8 N. {0 R) D4 K      je     RWR
9 J2 o9 h& O0 v      cmp    al,'W'' X" o# v7 d4 O4 G* D" ]
      je     RWR
/ {4 t, L& k+ o4 e      cmp    al,'d'( [: n! ^5 m" z$ T$ A/ f
      je     RDR6 [$ e- n. y% G* f- \
      cmp    al,'D'
1 S9 Q0 m. a2 o4 d7 o9 q      je     RDR             3 K( O+ o1 X9 J
W:      
' B0 _2 H& x% c* A; o      mov    si,84h0 n8 \2 u9 P. a6 z% j
      mov    al,es:[si]
6 \( g6 X5 e' {6 k      cmp    al,'b'
8 g/ z* s2 ?: v6 R' n      je     WBT
4 X4 g/ v6 K! g, e+ [. d3 s      cmp    al,'B'2 Z' e9 N; {/ ^6 `% b
      je     WBT
9 w( ]& ?( m7 O6 Y; U      cmp    al,'w'
' e+ C  e; `- z      je     WWR
: z3 h" K; ?5 z, a      cmp    al,'W'
% v' |$ h5 a2 e% |( q) [5 D      je     WWR
8 d5 h) f. ]9 w1 B! H% g% N6 Q      cmp    al,'d'$ x9 ~2 i, R$ R. D7 x" P4 e7 Z
      je     WDR
" R# v: K  w7 J1 A; X      cmp    al,'D'
* T$ L2 H/ I& W! B+ |      je     WDR' F( {# U9 b' y" a
RBT:9 h& i7 j& O$ }
      call   PSP        
: m' D+ A( G" ~. A( |, c      call   crlf           
4 b% N8 _, P; h+ [& ]      mov    esi,ebx
4 B1 a6 c& h+ F( i% J0 M      mov    eax,fs:[esi]& L2 D, m. R6 W. S
      out    80h,eax" Q& Y5 s( S8 d/ E3 I
      mov    ebx,eax
/ p! B% b0 ^8 r  U      call   _8bits
! G  ]+ {8 B3 ]2 M9 a# \1 Q2 d      jmp    Exit0 x3 {: U$ n3 \3 z
RWR:
$ H* C7 g+ t& F# P! j9 D( F      call   PSP        
- P" y4 I  N9 D      call   crlf           
! ?+ b" K; K) D      mov    esi,ebx
4 U) u/ E4 B5 D1 l      mov    eax,fs:[esi]
; h+ ]5 Z9 b( t5 I      out    80h,eax/ j) [% ^7 i& c; |
      mov    ebx,eax
/ X2 Q5 A' x7 N  l  k* C+ }7 H      call   _16bits( z, c% @+ n7 T( S9 d; w$ n5 Q
      jmp    Exit- R% Z1 Q, Y% K+ ^
RDR:2 ~9 N, C0 p7 @
      call   DPSP        
( V9 I# a5 |1 c" g      call   crlf           
: E5 ~/ U* v9 T4 _. T+ `9 `/ e      mov    esi,ebx
5 l! Q- f" R1 f% A      mov    eax,fs:[esi]
% B) ^. A+ r3 q" ~4 b- C2 K      out    80h,eax  J# e( Y* S) l+ R! T
      mov    ebx,eax( I0 \  D( ?+ {/ W( V$ l3 F
      call   _32bits, f( n/ {4 L& ?
      jmp    Exit
& Q5 [5 f: q& a7 i- }2 R3 B;------------------------------------------------------------------------------------------------6 R" Z6 `4 H. _4 d) _8 ]' O- B
WBT:( H2 x; d, ~, F0 R: U. k  R" \  G) V
      jmp    Exit; ~: ^# W1 b4 z; v" E9 Z
WWR:
) z& m$ J5 y( ~  g3 }/ }/ e      jmp    Exit7 F( ?! O- @% @9 }' j
WDR:
) u  x- M- X1 N1 g- w      call   DPSP
$ K- Q% o+ A! K' n9 M! U$ Y      mov    Maddress,ebx      
5 K+ _  T+ Z. D" a8 D      call   crlf3 ?2 @& x3 i. m2 f; V) k+ z1 S  h# a
      call   WDPSP
' q. z4 z8 e( J' a  I$ S/ ^6 u# V      mov    eax,ebx5 x5 F) E. C: f$ a8 T$ X% y
      mov    esi,Maddress          ; r/ `4 m+ g5 z
      mov    fs:[esi],eax. i2 X5 o7 Y7 h+ }* B
      out    80h,eax; h( D1 d( O1 m/ O* Z* J' B4 J
      jmp    Exit) w" ^9 G  y( w0 R
;------------------------------------------------------------------------------------------------       $ m6 |8 ]$ N$ b- x. s
Exit:
; }3 a+ E; `# F6 l      call   real_mode     , i( U2 s0 S4 t: n6 x3 l: C. u
      pop    gs
* c$ ?4 N/ \0 y& H      pop    fs
: ^% P4 x( r1 ^1 d( I7 t1 I- h      pop    es7 b4 s0 F$ M% Q
      pop    ds       2 o% j! d- F0 G
      .exit
8 d0 C/ l! I9 j5 [;------------------------------------------------------------------------------------------------
+ e/ N* u- K5 {4 |  v& mbig_real_mode proc near
. P) K' f. G1 B$ ?9 n+ V      in     al, 92h* o1 I1 u3 Q! q8 n' M
      or     al, 002
( z  U* d6 _3 s# I) J& l5 T      out    092h, al
0 A! J! ]" Q& i; S- {      out    0edh, al- P8 O: Q8 H  G! ]4 y
      cli+ o: G! Q/ f  n& g- ?8 w' Y
      mov    eax,DSEG
3 N- b( {& g$ j( S5 M      shl    eax, 4
- x, v8 ], J! w- d# l# U3 n      xor    ebx, ebx4 C4 X  g) E7 m. [
      mov    ebx, offset GDT_def- H  P' o1 t- c  I& @+ y
      add    eax, ebx  {& v  M# m9 E* N- ^6 B  N' m6 g
      mov    dword ptr GDT_Addr.Base, eax
: `8 R" |; o. X1 W6 E      lgdt   fword ptr GDT_Addr3 g# [/ |. y: D) j" Z
      mov    bx, 8+ S7 q2 F+ P3 t6 e
      mov    eax, cr0
2 q  O' Z8 B' O, f      or     al, 1
- {% c( @" Z; J; ]% U: Z      mov    cr0, eax& n# G  m7 V* E! c/ a
      jmp    PMod
7 w0 O% @4 [9 @0 zPMod:/ C( k, R$ t( S) ^& Z& \
      mov    fs, bx
0 r$ W/ O' ^1 o6 @" x      mov    gs, bx
9 c& B, w) W! ~1 x2 Z$ B      mov    eax,cr0
/ a6 R" c& m" n      and    al, 0FEh
/ u/ ?; ~9 v% r  g1 x& I$ c      mov    cr0, eax ' y4 E# H0 Q# y5 C- K5 A/ z0 j4 M& H& w
      jmp    RMod
8 h! x# t% F8 S" U% c% I) z' ?! c7 mRMod:
. y# W: v* t; l      xor    ax, ax
6 v: ]. v. h7 T. ~& G      mov    fs, ax
$ U" a2 S" s( T2 Q7 d3 m' |+ q      mov    gs, ax       E. N/ u. T, v3 ]; {& Y
      sti     / A7 d: S) _' }9 y) P) E1 c& y! s
      ret5 v, Z/ ]7 o) u1 z6 Q
big_real_mode ENDP; r- l, n$ _% Y# X7 x
;------------------------------------------------------------------------------------------------0 ~/ R/ o* X  f1 h# x: T# ], n4 U" v
real_mode proc near: d4 W- ?: i/ r
      in     al, 92h6 z4 b* G' y  b' \
      and    al, 024 y3 \; `6 H! a& ?$ R" @4 i2 Q" i3 G
      out    92h, al   
, m  X# a/ u. z3 f4 v! o8 h, B      ret
8 H+ t. h' v7 K# K1 E7 F' ?& c+ Creal_mode ENDP
1 \! U+ k7 v( ^( j;------------------------------------------------------------------------------------------------8 l7 o, V: q0 F+ a# B5 b9 ^: q
Get_Commandtail PROC near/ |4 I( F0 D3 ^1 H7 `8 t
      mov    ah,62h + W. ]7 W/ g2 t; v& y
      int    21h7 V0 H5 m8 ^0 J; F; }4 C3 Q
      mov    es,bx% K4 F2 k/ X' S7 x- z
      ret) f: F/ p9 F& {" c+ w9 E- Q
Get_Commandtail ENDP   
, @3 w7 U  e/ s* a0 e$ U+ b8 ]3 w;------------------------------------------------------------------------------------------------+ R7 t( @. m% J' H; H0 [( a
PSP proc near- R2 F' g* r7 A& T7 V
      xor    ebx,ebx; q$ b0 G: [! a) ~3 `
      mov    si,89h
5 T' p( {! }- h  t6 B      mov    al,es:[si]
& D+ U1 }. l$ l      call   Change0 e) e3 \/ m8 |
      mov    cl,4
/ V9 j: e* s; E/ E  c# t5 g- {      shl    ebx,cl2 v! D1 S1 ]/ K  \& p& L
      add    ebx,eax
: B: W, w; R4 F2 d8 S$ z2 G      mov    al,es:[si+1]
( D+ u2 \" D: N% i: [      call   Change- r: p: |/ G# x, }
      mov    cl,4
, @% Q' D$ r. R$ [      shl    ebx,cl
, P5 S% P6 n/ v/ g7 l: m2 U2 t      add    ebx,eax" q' K4 i- }& [0 n" O# l, J; E
      mov    al,es:[si+2]
1 V+ Z# T5 ~* F, s      call   Change
1 b2 v% L" `- b7 R) ^7 {      mov    cl,4
& k6 T7 V0 s0 c& S% K5 k. n      shl    ebx,cl
  i" b, f, f6 k) d( B+ N7 t      add    ebx,eax
6 Z0 K- W' ?8 K      mov    al,es:[si+3]( D' _( {$ l9 V+ Z! x
      call   Change( m/ u9 q& |  j& j- W' [) f' n
      mov    cl,4" {' p  j1 e# A
      shl    ebx,cl* [1 g$ D5 B9 h) Z7 H
      add    ebx,eax! N# I9 Z/ X& l
      mov    al,es:[si+4]
3 r* x; s, l. H& [- e$ y% I  w3 E      call   Change: `" ~9 v% J8 L# c! H$ Y, o0 n( x  b
      mov    cl,4' a( v, s, e2 }$ m" Z9 f
      shl    ebx,cl7 N, H! X! ~$ i; N* w1 f
      add    ebx,eax
* l+ P' F7 n% f3 B, t8 i      mov    al,es:[si+5]
  A4 E1 W/ R' U; T7 l; Y      call   Change
' t9 E8 X. I+ a. W      mov    cl,4
6 }; `; J" M- q* p      shl    ebx,cl6 n4 ^) o! G6 p+ q9 ]
      add    ebx,eax
# `# u8 \( s4 K      mov    al,es:[si+6]- @3 q; A3 j/ P
      call   Change6 N; e  q4 I- M( p
      mov    cl,4( r9 [" r7 E* I% V. Z5 B! P' b
      shl    ebx,cl
8 Y2 v5 p& K, ]5 z  r      add    ebx,eax& t3 m* M& t5 H8 q8 V7 o9 \
      mov    al,es:[si+7]. \) R5 [" J3 t2 m1 R
      call   Change+ j6 [( `9 N/ u2 T* \
      mov    cl,47 T+ U: J  T* [
      shl    ebx,cl
" I: F+ l0 W' e8 a3 G7 j$ @      add    ebx,eax
. I7 |: `" F( X      ret2 E0 W4 L1 \" t5 @: p$ q
PSP endp2 C; p% o) p/ r8 J
;================================================================================================
2 W7 s5 {( X% W* Q( }DPSP proc near8 }, d* U: W7 ?  l
      xor    ebx,ebx
- f, A; Y, \1 @4 O9 [4 {# a) _( G8 f2 q      mov    si,8ah
2 ~! R* S) V8 E# l) R" L$ S% G- x! c      mov    al,es:[si]& s$ P6 g. I. x6 P, J+ B8 x1 X
      call   Change
  b4 f# ~6 ~9 V4 A& |0 O      mov    cl,4
2 i; G/ h9 @5 v0 [# o      shl    ebx,cl2 S3 K$ X( h% l  _0 o& G1 \7 Y
      add    ebx,eax
: o. o6 w1 b/ h7 N      mov    al,es:[si+1]% U7 z8 q1 {- {* k( L; x
      call   Change3 s# X) t* q5 S) e1 w
      mov    cl,4( \/ G7 z4 Y( O5 B7 A4 \
      shl    ebx,cl1 W/ ]1 e8 D- b. S& W
      add    ebx,eax
' z, }% N  I! S" z; c      mov    al,es:[si+2]
  _  x' k+ _( h6 X- ?# g8 w      call   Change" Y. E- K) R6 _$ |' \
      mov    cl,44 C8 T2 Q* ~" j+ t! A
      shl    ebx,cl
# c1 s- i  D; ^: Z      add    ebx,eax
3 \; i6 @, A# B' V1 W' G      mov    al,es:[si+3]: n  N7 e5 h# k% b
      call   Change& e: J0 j0 B, q
      mov    cl,4% D: G$ j8 z1 C8 \
      shl    ebx,cl
- f  H% K" j2 v( F1 y      add    ebx,eax( i; N( }6 \2 \% k+ S$ x6 e
      mov    al,es:[si+4]% _1 u: U3 n& m# A% v, N
      call   Change: Z2 i% B4 \6 C; X$ Q2 {
      mov    cl,46 G% }" S2 |0 ?: K! J
      shl    ebx,cl
# u, o" K1 f' X, Z      add    ebx,eax
. }& d, \9 k' b3 h      mov    al,es:[si+5]  d0 `3 g. c& J5 N4 E1 [6 k
      call   Change
2 B( O) ]5 ~2 c$ a4 t6 z: \) Z      mov    cl,4. i0 L2 X4 b6 Q9 B, g2 d& u
      shl    ebx,cl
7 R/ w8 N' X" F. {1 z/ P5 D' Z      add    ebx,eax
# k" y$ c! a+ U7 Q- D. K! U      mov    al,es:[si+6]
1 F: P7 P5 _1 ~. m: B      call   Change  e( `. f% t2 n, L
      mov    cl,4
& m3 x' l6 @: a. `      shl    ebx,cl
& G* y& e7 H/ j+ R: S4 s      add    ebx,eax
' Z' Z7 [9 l% P+ e! y" L6 V      mov    al,es:[si+7]  {- W: |! ^) G  H. U/ l5 ?
      call   Change
; B/ T) g. }( E5 L      mov    cl,48 B, ?/ G- t2 a) R. S
      shl    ebx,cl2 Z. k* c" R- ~, k7 M+ C3 N8 O1 _) g
      add    ebx,eax3 [: d7 L. |6 x* a5 e0 ]& r! I7 x
      ret1 E/ U; Y6 F5 j4 i' c1 `
DPSP endp) L2 ?5 y1 [, Q! W* ?
;================================================================================================
) F0 ?0 `% @$ T5 ]7 w( fWDPSP proc near
7 E; @& R7 l8 B% N* J' p- m      xor    eax,eax# K, Y" Q1 S' q  y9 }
      xor    ebx,ebx
  m% B- N2 P% f* H" A  J8 I0 t$ l7 v; ^      mov    si,93h
; X: c" N5 f+ f      mov    al,es:[si]7 r0 X6 n" ]2 p
      call   Change
) M) o; F  X) U) v      mov    cl,4
9 n4 |! [. a' j      shl    ebx,cl4 e, u# `# Q5 B7 P! L) X  T
      add    ebx,eax
) b2 p6 b5 ?) H  c% L      mov    al,es:[si+1]6 ~5 w2 A1 {6 S
      call   Change
+ m" ]3 K0 g, J0 V  g8 q* A: c      mov    cl,4
. W3 o6 g3 R4 n) A0 f, {" I& [: }1 ^      shl    ebx,cl  I* D" I+ G6 m9 ^: U
      add    ebx,eax3 Z# I# G. d0 h2 O0 D! {
      mov    al,es:[si+2]
8 H8 H4 R9 w' H8 G1 R) P5 z9 K      call   Change
* i1 V# T& J7 k4 G      mov    cl,4
& S3 |' C- g. z% k3 S% t      shl    ebx,cl
/ v3 n/ [# |# Y9 w% l# L; \      add    ebx,eax  T. a1 v9 r1 \/ J1 `: b
      mov    al,es:[si+3]& X: q6 z, e. M9 e' H. n3 _" |
      call   Change  @* V) k, v8 m2 H( @5 h) h
      mov    cl,4; v( b& d' j& t1 A, S+ I
      shl    ebx,cl4 D2 B$ b' r3 k" J* @
      add    ebx,eax8 [4 Q; M; P" G( \! h/ x
      mov    al,es:[si+4]
2 T3 X2 v( s; S      call   Change
$ V2 g5 [. g% s8 M4 `      mov    cl,4- ^; Y9 x+ ~, g6 e
      shl    ebx,cl
4 Y# d$ U2 B- |7 v# I4 |  @3 `" L7 `      add    ebx,eax
5 m8 W) D0 k6 v- A* k6 n      mov    al,es:[si+5]2 ?: f! Q( [! L" Z
      call   Change
" W: w4 J/ n6 n+ o# w: H4 [% u      mov    cl,4
7 @% Y) E& m2 f( ^# j$ e) G      shl    ebx,cl
2 P( w, n) o4 J& f7 W/ p      add    ebx,eax3 \: ~4 z% P: J
      mov    al,es:[si+6]+ f2 {& i( }/ {6 T0 J0 Y# D
      call   Change
( W9 w* ]/ w* p      mov    cl,47 ~- f6 F' w; W. R3 {! @# M
      shl    ebx,cl
- e+ @4 W, r7 a4 l7 {      add    ebx,eax
. X7 C( _3 c/ Z: }      mov    al,es:[si+7]
- G& b5 _  I- h) B/ k- V      call   Change
7 k/ H# ]  _% _" c/ V2 x! c      mov    cl,4
8 ?# C# j; F* w) z      shl    ebx,cl6 I9 l" m, B. L0 x# y! t- H
      add    ebx,eax. q: @$ O1 f& L7 h: o6 L& a3 Z
      ret7 R3 m4 G8 P6 C. K
WDPSP endp( J$ g* X$ E  Z: m
;================================================================================================
! K& _8 }# o4 g3 `: p, S3 ZChange proc near
* [9 R' |1 Q, `" }A:    ! ?. }/ e: u; X+ j- d- ?' I- }* {
      movzx  eax,al4 r! h! K6 f7 |& s
      mov    edx,eax% v& ?1 ]  v( ^5 L" c0 i& u
      cmp    eax,'0'            # i: _- o& I' |& h, _$ m. Q( E6 d
      jb     A, p% H1 x) u% g
      cmp    eax,'9'            
8 b+ h" K: s6 B7 o1 z      ja     B
" X$ }" h( u+ i      sub    eax,'0'
7 `2 O+ Y$ \2 g6 t( u; M      jmp    short E8 b# Y  ?9 n" r
B:# Y: Z+ T/ |' g7 J* d
      and    eax,0dfh           
3 Z- b: ?2 g, ?6 s# M: l      mov    edx,eax% Q9 m6 J. f# Z; p2 U5 J4 d1 A
      sub    eax,37h            ) y+ w2 t6 S' f: b# x8 T/ }
      cmp    eax,0ah
- q3 C5 V1 l" }7 ~9 y      jb     A                  ' R2 l. h, s: Z( R3 y1 i
      cmp    eax,0fh
9 W# J/ [9 L/ P      ja     A                  ! Z: b5 a6 N/ V2 Y9 _& ~
E:' v: h: u) \7 g4 I( ~# [
      push   eax      
, n9 K+ @6 ]% D" h2 o" @. e      call   PRT                ! o/ T$ q6 f8 t6 ?
      pop    eax  H! Z) _: f& J7 y8 L: E; J% Y
CExit:% _) F, @  o8 J. @
      ret
! s: V: |: M. h. O; A% \! `Change endp
% J2 x% ]$ R0 n- z% }1 N8 M;------------------------------------------------------------------------------------------------
7 C2 ]( Q, j% H( y0 NPRT proc near
0 `% C- U0 `  ]! a% _+ U, {4 i* H      mov    ah,02h
' N( \% `! I4 S1 }" H( a0 j" j  J      int    21h" h- P; R4 f' W
      ret$ @7 Q' z+ b0 {. z2 k4 \4 x
PRT endp
( N+ I& V' c# W" L;------------------------------------------------------------------------------------------------
9 `" z0 }/ O( ^) R) bcrlf proc near& U+ R( C; l+ S
      mov    ah,02h
, S# X; ^' e" K4 v9 v) G! ]% F8 C      mov    dl,0dh! ]6 v: L/ s/ f  n( {5 k
      int    21h
( B5 s: Q# [# y5 Q      mov    ah,02h
# B* _/ ^; [8 K( n/ {7 a0 h1 u, H7 t      mov    dl,0ah  r  y6 {2 \9 V1 d/ h
      int    21h' D4 G8 {$ c1 Y. u' B2 F* |
      ret
9 N5 Y% D0 M2 U7 a$ V! Lcrlf endp$ u% ?. D  l/ ^1 T
;------------------------------------------------------------------------------------------------" a) ^- Z7 ]4 f; O# D) w
_32bits proc near6 d' M2 U/ @# ], c" L0 ^5 e
      pushad9 M0 ?! |9 J' N2 |
      mov    cl,4
# X1 r+ m' _" L1 x: B& j      rol    ebx,cl
4 z7 R. h# i8 {      call   print_4_bits5 w" i2 V4 l$ C5 t  j; G
      rol    ebx,cl- ]; B' T- Z4 L$ k) k1 T3 z
      call   print_4_bits
" G6 W0 x; J+ |; N( r2 _6 U6 z2 i      rol    ebx,cl+ t4 Z3 q/ d9 o% M' ~
      call   print_4_bits
, g' A# d, k# E      rol    ebx,cl
% A8 G$ B. v4 U8 t* T% e      call   print_4_bits
: w9 m* j3 w4 h$ s      rol    ebx,cl% [* h% f2 c3 c5 J) z7 M$ ^
      call   print_4_bits6 h( f+ V, ?' ]6 K
      rol    ebx,cl
2 t+ P9 U2 D- F  E6 n      call   print_4_bits$ W. G/ {; c2 E; w) v
      rol    ebx,cl2 B: n7 ]. r5 J
      call   print_4_bits
9 e7 l" ^7 g1 G& ~6 S3 D      rol    ebx,cl0 ~+ Z! O' T* W( T& @5 @
      call   print_4_bits
6 S: v$ c3 N! P2 e8 @+ V( P      rol    ebx,cl
# R4 W' ?8 }3 a7 c! w7 m. D      popad- T( R' n# e( \  D) \7 j; M6 B
      ret! B- U. s6 |$ S8 S2 E( q
_32bits endp
! t% u4 K0 b7 P) K;------------------------------------------------------------------------------------------------: D% j& r0 @- R5 ]8 R7 [9 l+ N3 }( h( S
_16bits proc near
+ {2 j4 O' u0 N      pusha        $ n; ]- M$ K/ C' R/ c
      rol    bx,cl
; G; P3 c. P1 w! t. f      call   print_4_bits
# m: Y8 {5 w- ?& n/ s      rol    bx,cl
: j2 u9 C  W3 T- C. L      call   print_4_bits
7 Z5 k( T, J: p( O+ ]$ M7 F: E      rol    bx,cl
1 N! L% D' F4 t) x      call   print_4_bits
6 y' B) I4 X. x5 E      rol    bx,cl+ w% S' y. I* y+ F- a
      call   print_4_bits; T" i. o  q5 K" D3 u& q" Z
      popa
! W( u  P( g2 _3 j( i" e      ret
) Q7 g2 {/ H/ W+ J6 J4 o5 K_16bits endp
8 s: j2 j" h. z, b' k% W) W$ J;------------------------------------------------------------------------------------------------( U3 x3 z! G. Y  L
_8bits proc near5 c: W# }7 f; u! t
      pusha        
( s. C+ p9 k  [) f      rol    bx,cl& ~, F0 n) f' H. Q) {9 F* D2 W+ ?, J- U
      call   print_4_bits" T! @& m! e8 k# W' d) `
      rol    bx,cl5 Y5 J6 j) f! \- `* o1 }
      call   print_4_bits( b8 a1 v0 B# G; K2 |* |
      popa
" F/ Z5 `% O% A* d      ret* E+ T, J* Z6 E( [7 a7 Q* K& J# C
_8bits endp: v1 w9 @$ t2 ]  P. F! D- G
print_4_bits proc near
5 ~7 F$ e; J+ g& |& o9 o3 g( E# A. ^      mov    dx,bx
) R$ M, ?/ M5 S7 `* d' R0 N      and    dl,0fh
( d, L5 n& C  ?9 r% G      add    dl,30h) w% S/ r- V' G9 s; [: l/ u
      cmp    dl,3ah
! x5 |$ p) m& e      jb     print
5 z+ h1 r, S9 \6 _7 F      add    dl,70 a: i& B: d5 _' T4 ]/ C
print:  - g1 w/ {7 p; \
      mov    ah,22 M, r' J5 t" ]. ~  {7 J2 Z8 @
      int    21h
2 w" ?6 o2 u& V" Q8 q7 F  `7 M2 Y% o      ret  k5 t1 u) a% b* r8 M8 N
print_4_bits endp   
8 b) _- G- t; a  ^/ [/ a4 ?CSEG ends
' ?. G) _" T3 Z# ]" e0 V% JEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2025-12-21 17:08 , Processed in 0.120430 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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