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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)5 ]" F0 F( s" O+ _

3 B+ ~: @4 @7 B6 W則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'% r. x) K2 V4 E7 N  q
( E& W: D1 b" ?% [8 C: _1 e# Y
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
8 Q. l  f9 q% c4 B
8 S3 a7 V+ e# }4 `- D.model small
/ I: a' n: h4 Q+ g3 B.386p- o: [+ N9 Q* P2 Q5 ?
DSEG SEGMENT USE16'data' 8 M2 o5 B' j$ l" s

, d7 V9 o5 t9 u& \9 WDESC STRUC9 _) I1 U+ _0 ]* h1 D
     LimitL DW 0 7 W2 S$ M2 ]+ Y4 r' k7 ?
     BaseL DW 0 5 m! ~1 @; ^2 Z9 g& e" m9 ?7 v$ T, u4 }  v
     BaseM DB 0
- b* s0 D+ O  G9 C- g- j     Attributes DB 0
3 S) s: b1 t4 G! H& w* h     LimitH DB 0 . F6 Y. t8 W0 p5 p7 I) b
     BaseH DB 0 , P  n3 L, \: N7 a  ?' R
DESC ENDS
2 {& P2 E1 }2 j6 C8 P3 g- ~5 s6 X. H% E' D+ i2 E7 d
PDesc STRUC. C% B2 i. `8 n7 r; Y7 z6 g9 C+ N
     Limit DW 0
% A2 p4 @1 c+ z2 X4 g: E( ]. e     Base DD 0 . q; j# c. n  w# P- r
PDesc ENDS
8 i8 b3 v  A- K( ?1 |
! y! t. L% C3 `8 b6 rGDT_def Label Fword
  A8 {) }- v& s# r- n; q4 j: zNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>* D) R% |8 h' {( v' S+ a% m3 h
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>" z) r& j8 S8 j) g$ ]/ \
GDT_Addr PDesc <$-GDT_def-1, >
1 R5 ?# V0 m$ J2 r6 D$ V
" b" W3 U" d  c  O1 iMaddress Dword 07 R3 e9 K' G) {! n! }6 o
7 N/ }! r6 r: w1 O: V- X
DSEG ENDS
1 i+ q, s8 |4 ~* n3 W7 ]ASSUME CS:CSEG,DS:DSEG: |& k& O, ~! j, \/ Y* ~
+ l' C. D% S! F7 U6 q( o
CSEG SEGMENT USE16'code' 4 F5 T5 r2 H- z: A/ W) k# m- J$ {, \
      push   ds
; q5 [$ E# U& C( v- c9 ~      push   es
: s% K, q3 _# R" \9 h      push   fs; B9 C' F% W5 ~) E- ~
      push   gs
* ?) M4 q" {5 d9 a0 a      call   big_real_mode     
. y- G; F/ H7 f) p- w7 l3 n/ Q      call   Get_Commandtail
8 y& c% a- d3 D8 o8 {! x      xor    ebx,ebx8 r8 W( d) J; s1 J6 g
      mov    si,82h/ b& c5 z0 ?7 L' l
      mov    al,es:[si]
0 ?6 \8 x) K, Z6 A6 b      cmp    al,'r'( a8 D' J6 J) b* |/ c
      je     R# H! t$ A* ~1 A
      cmp    al,'R'. |* \. k/ z3 e# ?" A& s: B
      je     R
' Q9 c" L7 V6 M& W! u      cmp    al,'w'
# n+ m7 B, {) Q$ Z, L: q      je     W
# o; Q5 n5 }( q2 K7 q' E" T: d      cmp    al,'W', c1 o6 h# B8 L
      je     W          : L& J+ j! I+ {9 T/ ~+ ]% ^
R:
' G: Q" Q! C# S4 J5 a) U4 t      mov    si,84h. `+ o" {% ?3 ^3 }5 z# {' f% r; g
      mov    al,es:[si]# R: m* a( @( L& q
      cmp    al,'b'
+ D2 Y" @2 B2 b: S      je     RBT
9 Z4 T: W, }$ G, ]! G0 m7 ~      cmp    al,'B'/ ^4 m/ a. R1 Q0 M: e' C: ?
      je     RBT
+ B; }& O3 e' n+ B; _4 z3 b      cmp    al,'w'! G) L0 `: g) A9 ]: @
      je     RWR
  I  j( [, k  B& e' G! i) {, M      cmp    al,'W'/ U& K2 q: V. \0 P& R, a: P
      je     RWR
2 g/ N0 Q- ]9 p/ s( r      cmp    al,'d'
( U& y" }" ]( |6 m$ `      je     RDR/ h! w( A/ O4 D  ^# T& n1 I% `
      cmp    al,'D'
7 _# B: C3 \/ H' M6 n: c; i- i      je     RDR             , W. w  A; `; L* H9 w2 j
W:      9 g2 z) a5 Z- J6 o3 D& j
      mov    si,84h3 j1 b* v' n  h9 E2 o1 m
      mov    al,es:[si]1 H8 U  d# E1 k! q- t
      cmp    al,'b'. S, U  w+ w4 h1 w
      je     WBT
; Z# M' A( B# J# r9 g0 D1 H      cmp    al,'B'8 _2 g- P9 h& c0 R7 K; D  q
      je     WBT# k6 q/ z! w$ f: Z/ R6 I
      cmp    al,'w'! o! r8 I! P  I" ]' A
      je     WWR1 E4 X1 j: v' i( l
      cmp    al,'W'
, F/ g3 t+ u7 s      je     WWR+ V$ g) l0 x' i* t
      cmp    al,'d': Y( {2 W# ^/ D  G
      je     WDR
$ r+ U, ~9 I7 X5 c7 H      cmp    al,'D'
; S2 k9 Z; n% s' _      je     WDR
6 t2 a* h) e) Q- cRBT:6 {8 s! V/ A3 H0 Y. I% Y
      call   PSP        
3 x. B- o, U/ i! N3 Q      call   crlf           / ]% E& T* A3 Y! Y' h4 }
      mov    esi,ebx
  y; d# X- M9 B6 J      mov    eax,fs:[esi]
0 V" a" `/ p! R! I7 X) x- ~5 ~9 c- F2 {      out    80h,eax- q# l- Y5 N) D# L
      mov    ebx,eax
- b! i% z3 T! E- D0 x: r      call   _8bits3 k% u( p4 t* a+ a4 `
      jmp    Exit, y0 v0 `3 K# l$ l2 ?4 Y; _8 W
RWR:
' V- s9 L! b3 Y% k! @      call   PSP        ) i# S: W9 B% _) |  Z+ ^6 \
      call   crlf           
% s2 x0 b% C& J5 x, F      mov    esi,ebx
/ k6 j! p' h& n% E      mov    eax,fs:[esi]
% b$ V( c0 @: t" A% [) P0 u* N  p/ ]      out    80h,eax
3 c$ ], Z& t, |9 I% r& E% J/ L: d      mov    ebx,eax/ |/ i1 m" \9 O7 ]# r- ?
      call   _16bits$ v. Y7 \5 n$ g5 T
      jmp    Exit
4 ?8 e8 v0 m& [- L8 Z" R; s3 p$ cRDR:; d0 w8 v, O6 j$ h2 S  P
      call   DPSP          i) N$ L6 X( i& ]6 q
      call   crlf           
" \2 |. j, [' h      mov    esi,ebx+ F2 T  [$ R' y& T" X
      mov    eax,fs:[esi]8 g0 ~2 a, {4 @/ v7 ?: v; \& C
      out    80h,eax' b! }, A% B; B. y! ?
      mov    ebx,eax
. G9 P% k- n# b" s9 f( q% ~3 E      call   _32bits
+ y! `$ ]$ ^% X( B; @( Y      jmp    Exit
  Y. ]7 G, w* W' r! O  V;------------------------------------------------------------------------------------------------$ ]- J# \! [8 [0 l8 g
WBT:4 X5 O- U+ M" B# }2 o5 u# z9 n* x
      jmp    Exit
; M  [- g/ ^+ Q' g( u( ]( RWWR:
6 U3 C' v* G7 W# C8 `3 R: Z      jmp    Exit  q2 U- ^% Z8 s' r* g* Y  ~5 i
WDR:, P' P' m' w% L8 A- L: t! w
      call   DPSP
. o5 e8 ~2 L. w$ Y& {      mov    Maddress,ebx      
; Z# ?- ^! L% O4 _; b      call   crlf
5 V& c- L" S/ N# [" N. N' f      call   WDPSP" }- @( V( v# O4 ]/ W8 @
      mov    eax,ebx
& }2 f: W# R. Z      mov    esi,Maddress         
6 D1 R! n; _( S      mov    fs:[esi],eax
" B8 K  Q/ A3 H+ p  W      out    80h,eax
3 S( c7 ]5 _4 j. s  _      jmp    Exit
6 H  B0 T9 s6 K% l4 E" T# n;------------------------------------------------------------------------------------------------       3 v2 g# O8 C$ Y* l* U) x
Exit:
; v8 M2 J7 U0 E) [      call   real_mode     1 M; x% W  l& l% T* q8 D' _: A
      pop    gs
' x2 S! d7 z4 l$ i3 Y      pop    fs
) Z. p" v+ Y7 g  Z4 K- p      pop    es
$ Y3 G/ [" D2 a6 {6 g" {% C1 K      pop    ds       + R5 h5 ?1 S  l
      .exit: a) F$ E1 [. Y
;------------------------------------------------------------------------------------------------
5 E: [9 b& J& I& ]" kbig_real_mode proc near
! ~: O! I5 V8 S      in     al, 92h+ Z; ^5 g3 ?$ Q9 |! \6 \& X
      or     al, 002
' }9 b/ {# _2 r3 N1 w1 O, L) P: J      out    092h, al
4 [! h8 p% }* s2 P2 k# t      out    0edh, al; h. d( ?% ?7 l
      cli
3 v0 W2 n' t/ }. t( n+ l# y      mov    eax,DSEG, Z! |& Q# r& X  b2 `% ]; W
      shl    eax, 4
5 i( @9 J4 d) r: f: ?5 s      xor    ebx, ebx! m/ h/ G8 I+ Y
      mov    ebx, offset GDT_def
" `" q  `6 g# w0 I      add    eax, ebx  n1 n% Z8 M8 @  l
      mov    dword ptr GDT_Addr.Base, eax
% k  T/ @8 k2 q) e3 z; C, f      lgdt   fword ptr GDT_Addr
$ M( h% g/ `5 I) y& e      mov    bx, 8) q) Z* m" N8 E( r" V0 r+ J" X
      mov    eax, cr04 H) G( e6 o+ l$ j) r# u9 J" f8 P
      or     al, 1
0 k: X! B! }! @& O, i' ~8 z: |      mov    cr0, eax& F9 Y6 `- \. |& f
      jmp    PMod2 S! C2 p/ C* G
PMod:# ~4 r5 k& h8 M$ g' S0 s
      mov    fs, bx
& [9 ~) O7 J- Q4 ^- f$ ~      mov    gs, bx
4 h: X7 O+ i# {4 m7 D% V* @! g      mov    eax,cr0% C1 i! v3 U- q6 @
      and    al, 0FEh
7 s' h, \" t' s7 j+ I0 I      mov    cr0, eax ( e$ r) ^5 y! [& e, Z$ ~! D  K& q* c- N2 X
      jmp    RMod
% T! w6 r0 c7 X" z0 h3 ORMod:
7 x. T0 R; h2 a. Q* a0 \8 ~* [      xor    ax, ax% }2 P( u1 o+ Z& {" O! _/ Q8 l8 f
      mov    fs, ax" j1 c, @& ^" T5 `
      mov    gs, ax     : h1 E# j" x6 m" y
      sti     
) P3 q; F( J; @& d4 Z      ret
% l3 Z  n1 F# k) j8 kbig_real_mode ENDP/ X+ {( w" M7 e& z' c0 g
;------------------------------------------------------------------------------------------------# v/ k& P; d1 U: W- F- B
real_mode proc near& b4 W. I& `4 H: y4 m8 M
      in     al, 92h
( g, i! Y' K+ e      and    al, 024 K: m8 f6 b4 J  a4 M( _
      out    92h, al    8 F9 G1 S3 J' w9 O
      ret- h# c. \9 X  n, N9 }( ]* |( G' D
real_mode ENDP
- M% j9 E% I9 c  Q$ Y+ J7 n8 a) _$ I;------------------------------------------------------------------------------------------------
, V: L$ H' z4 W& WGet_Commandtail PROC near0 \6 p+ h5 E! l" @; @# y5 f) R
      mov    ah,62h % j$ \- K1 G% g8 I! T
      int    21h
- L" m% ^. [1 c* x      mov    es,bx2 m* ^* n! E, z5 I
      ret0 v" |+ A) }! ~5 Z
Get_Commandtail ENDP    . M/ E. W& Y, }5 K4 Z0 G* V
;------------------------------------------------------------------------------------------------
, ^4 \/ Z9 {% z# z7 APSP proc near
) i, V; s# Q$ _& x. z9 V+ T      xor    ebx,ebx) a2 r4 X5 z  l1 ?% |( c
      mov    si,89h
0 Q. K) C2 r+ j      mov    al,es:[si]+ D# H8 W4 \/ E0 u! E, x/ v  d1 Y
      call   Change0 O( h/ d" X" j7 m7 ~6 @, ?# {" \
      mov    cl,4
- r8 ^; Y7 b) S$ w4 o9 H      shl    ebx,cl
+ E1 y- m6 J; l; M% e- b      add    ebx,eax
( X  l3 M& [2 G+ |: U      mov    al,es:[si+1]
2 g1 D' b6 r9 n( @0 I      call   Change
; J* a/ F4 F! D      mov    cl,4
7 c, c: D) U. O$ x& d! p: M      shl    ebx,cl% V! v( ?8 \2 M1 ^
      add    ebx,eax  d* y) c% ~8 i8 z
      mov    al,es:[si+2]$ W/ I( e3 ~4 B; [3 ~
      call   Change
3 G  P+ @8 L4 |! f" {0 A, b      mov    cl,4
% W7 c8 }2 _* K! h3 i, C7 k      shl    ebx,cl
; W% j& J$ }9 E# g" I; _      add    ebx,eax
0 L3 o: Z+ O2 q& t1 e  Y; h      mov    al,es:[si+3]! r) u  D  u8 K9 |- R
      call   Change8 c( z) g- h- ~$ e, ~- z
      mov    cl,4" Y' G1 X! o8 Z  [: d6 q" C' E2 H
      shl    ebx,cl
) J+ V* Z( j4 u6 B      add    ebx,eax0 T  y+ T- I% Y% o( a+ }
      mov    al,es:[si+4]
0 w6 N' p+ p3 b7 F* ]: ~7 z      call   Change
! X6 k8 k9 }) A3 T1 P; U$ D      mov    cl,4
2 ~5 |6 {( L+ D3 H      shl    ebx,cl
3 v0 l7 c+ e5 l      add    ebx,eax. [0 l+ ^: H5 h' K& h
      mov    al,es:[si+5]
& Y7 I1 }' r8 X: l6 U$ o( f      call   Change
" R- \7 G5 q1 x      mov    cl,4
+ E* ]0 ^) I6 q3 ]0 j- G      shl    ebx,cl6 G, k7 B$ B8 l
      add    ebx,eax  q4 k+ f& |" m, V. K) g1 ?3 b
      mov    al,es:[si+6]
6 v0 {+ F, B* E/ `9 S3 O, t. C      call   Change
6 [" L( A$ m* F6 L$ I: w      mov    cl,4$ m/ J6 z' |" \$ A' v
      shl    ebx,cl: E: z* J: p& M  _. A) A1 k
      add    ebx,eax% j* _- N7 `3 ]! b- r( Y/ Y0 Z
      mov    al,es:[si+7]) J) H1 G$ E% n' x6 Q$ O
      call   Change
6 p& n2 |' [$ t2 n( k  }2 w8 k4 v      mov    cl,4
  s7 S) T- l: k, o3 k      shl    ebx,cl! \5 @- |- B# K, {  M) `0 Y" t
      add    ebx,eax
: Q1 S' M. D& |. f      ret
: V% k7 l. k$ IPSP endp
! q1 }+ ]5 X8 v; `0 t0 G. S+ r;================================================================================================; j; C9 l) _# a4 y: L2 A
DPSP proc near
: U1 {( u5 g3 H- i# }      xor    ebx,ebx
4 j( x& b6 Q! _: Q& V/ v/ j      mov    si,8ah
0 J; d8 S  |$ x* u9 r* J      mov    al,es:[si]. R5 U& U; ]' `$ C3 C3 g
      call   Change
6 Z! {2 ]3 U" W      mov    cl,4; D1 |$ @, d* _* ^! b
      shl    ebx,cl
4 j0 S( Z0 A; T& A      add    ebx,eax' u6 V! V! f9 M1 g& _7 g9 z
      mov    al,es:[si+1]
9 |+ d8 \. j5 T) o5 B      call   Change2 n& B8 q, j5 _
      mov    cl,4
3 J7 h9 w2 C/ S      shl    ebx,cl
- A5 |6 b9 C+ Y% v/ B) n6 {      add    ebx,eax
- y. Z4 a0 o2 b/ \* z7 |2 z" p      mov    al,es:[si+2]) E4 [4 q, S: F( q; u2 n
      call   Change
# L# u7 i/ K, _0 Z" _      mov    cl,4# z% @- ~4 ]& w$ z
      shl    ebx,cl: j$ a* Q# G2 P
      add    ebx,eax
6 i8 L$ R+ p" a1 ~% `      mov    al,es:[si+3]0 |* h( [: R3 S( M
      call   Change
4 m; a8 E* B% d+ N      mov    cl,40 ^1 R2 b. }9 Z6 L9 e
      shl    ebx,cl
# h: ~2 r6 l; B0 e- t2 K! f! l  H      add    ebx,eax: L0 N. l4 H. r& {' o9 b: s
      mov    al,es:[si+4]( L) U% z* d; n" i+ E3 ?" S
      call   Change
  Z- P: g- V, |7 N4 S      mov    cl,40 a* z) j0 u  {  Y# {6 ~
      shl    ebx,cl" f( g* n  L& T0 r
      add    ebx,eax
0 W/ g4 Y' V* u; L& Q3 Z      mov    al,es:[si+5]
. W% o& e! H7 a2 @5 r8 o9 \9 D      call   Change- ]0 L0 @, x7 \& V( ^; W; t6 i
      mov    cl,4
: |3 x9 ~/ l$ f      shl    ebx,cl
8 u9 W# S& o0 g/ ^3 w& W; f      add    ebx,eax
0 L1 ]: l  w  T+ f      mov    al,es:[si+6]  K- r/ p/ ]8 Y( l" |9 R+ H8 {
      call   Change! i5 V' c& z) F& n
      mov    cl,4% w6 Z0 U; T" o; v' o3 S. j
      shl    ebx,cl
, k+ U) }0 s: {: p/ U+ u& `      add    ebx,eax) q1 x! S6 \& ^4 `
      mov    al,es:[si+7]
$ R% n: V. i' O6 |& I  T0 J3 Z3 U      call   Change& A8 H, K3 k; N% p) G: x
      mov    cl,4
. S  p! R' c6 @5 M% v8 V! V. j      shl    ebx,cl/ [' V: P: x9 |5 |
      add    ebx,eax8 {8 ^9 H( A7 f9 E  O% x
      ret5 Y- W$ b" D8 T/ P# G% T9 T
DPSP endp
: l+ a+ r1 I" r) w6 l;================================================================================================, w7 \. A, P2 g
WDPSP proc near
: g: _" F. N3 Z3 \* i6 `      xor    eax,eax( D3 c# w# Q' ]4 }' b1 h8 y
      xor    ebx,ebx
6 l! M  S$ x: P      mov    si,93h
$ b6 j% a& B' ?1 y      mov    al,es:[si]
$ d) T( E( [( C/ F      call   Change+ j2 F7 c$ A* w
      mov    cl,4
! ]# R) J- ]' L% m- F2 g- d      shl    ebx,cl
% e# ]5 \; `% U4 W9 R, Z" E$ Q, v      add    ebx,eax
! C: S; i# ], H8 y! b- I+ Z      mov    al,es:[si+1]
. O, W8 b1 M# [# N3 i2 I      call   Change
- L0 c5 i/ ~: j1 @$ Y6 ?2 C; m& ^      mov    cl,4' v) Y1 b9 I# ~4 V
      shl    ebx,cl' m& M7 G! ]  j8 H  J
      add    ebx,eax: B3 C5 N1 I/ b( ~  @
      mov    al,es:[si+2]+ b" W9 q* H4 G* X, k
      call   Change- x. F: ^7 H9 }3 G1 a7 o9 R
      mov    cl,4( H' u# ^! i6 }+ |3 P1 a3 B2 e
      shl    ebx,cl
% W: b' H% Z/ {6 ^      add    ebx,eax
* ~- B9 T! r7 s! I# R      mov    al,es:[si+3]7 T$ w) ~6 v! w8 X% I' a, E
      call   Change8 A5 U: w5 W8 U/ t4 R
      mov    cl,4
$ P4 F5 ^4 N1 N& C' a- k: r6 Y9 W      shl    ebx,cl9 @& ]! M5 ]9 p. S1 p" E9 j
      add    ebx,eax
6 L$ n0 Z2 U+ _3 g. J* j+ q( |      mov    al,es:[si+4]
" U; s7 w& H( c8 b      call   Change% d: y/ @. ~7 D" L. K5 C" V
      mov    cl,4
5 T- y# O! `) B. f! _      shl    ebx,cl+ B5 V7 P. Q0 ]2 K, l, }4 ^
      add    ebx,eax
' V/ o- T0 x8 P2 ~8 w      mov    al,es:[si+5]
* r( V: I1 b  Z3 M      call   Change9 C' d$ k7 L& b6 ]* i3 {% F' F
      mov    cl,4
( ^+ X+ H: c3 y! U      shl    ebx,cl2 Y( P! F* Y; j9 `1 h3 K
      add    ebx,eax# |- r6 \8 K- P* ]4 Y
      mov    al,es:[si+6]0 T1 |, n: q$ }! P
      call   Change
* }9 a; f/ ^! X# C9 }# I/ p! U) B: h      mov    cl,49 D3 ?* e0 A( {' H3 l% u
      shl    ebx,cl; A' D5 Q# O# X* ]" z  _7 x' `& o
      add    ebx,eax
  O. A: |! ~8 M$ g      mov    al,es:[si+7]
/ n- y. s8 ~; @: m  F9 G9 Q      call   Change
" y% K) g/ U' t9 b; u' E& l+ h      mov    cl,4
8 H; x# `5 t* N$ X5 v! C; @6 z& i$ F      shl    ebx,cl
) g: S& |& W, p+ \$ e      add    ebx,eax
% _: I2 S9 k3 n1 {/ C* V& B      ret+ s0 o& ~& z% v$ y! M% I- ^
WDPSP endp
' ]: b& g, M8 f) d: ]& b5 o9 f;================================================================================================& Q1 T6 i+ H+ w- J+ {% z
Change proc near
! Z# ~+ v& s0 _! E! H/ E4 K9 XA:   
* L! j9 }& O8 P$ l      movzx  eax,al
: q* J) z  K6 h      mov    edx,eax) F0 ]  r" s7 b+ P# R. ?' M: S
      cmp    eax,'0'            
9 R4 `0 j+ O7 f; @      jb     A& j1 n+ p9 d1 z  H& w! W
      cmp    eax,'9'            
$ x- T# s  J" \- |      ja     B" T+ C9 b/ u+ f! y$ N
      sub    eax,'0'! O( k9 O* b# w' [* }
      jmp    short E) M6 }% t, x" ?- @) L& e, o0 l( |4 X
B:
. {: ~* Z# n  L3 z8 Z      and    eax,0dfh           
) r% s0 k- I( w: T$ }      mov    edx,eax
2 A( S0 h" U3 s" W* i. G4 _( f      sub    eax,37h            9 N8 r7 P) V: ]; ~
      cmp    eax,0ah
! P7 w- l& l+ T0 b( M1 ~+ r      jb     A                  
; h' y; v) d1 w$ T, r' |5 K/ y      cmp    eax,0fh
5 D+ ]3 `6 {. r7 F! N      ja     A                  / b  d7 u3 u* ?
E:# M$ m! s4 Q' M/ k
      push   eax       , N# l' [  X3 `( s) Q' p* I5 P
      call   PRT                ! N' @# t5 z$ B! l
      pop    eax
: h/ u, w2 E6 |CExit:
7 t8 Z( p, T0 ]  o      ret% L/ i' k3 [4 o
Change endp: \" P- B+ I' s
;------------------------------------------------------------------------------------------------
9 n) `- d  L- `* B4 N0 w+ @PRT proc near
$ V  Z% @- Q/ Y3 |" d- s* W: k      mov    ah,02h
" |' U5 \  D0 p* ^! y1 e2 U      int    21h
& o/ Q4 p0 {6 ]8 P( h. ?      ret
  a0 _7 M) I1 g7 t- |2 sPRT endp
" S. d4 Y' N# a2 @;------------------------------------------------------------------------------------------------
4 h; ~; x, }7 m, G! u+ hcrlf proc near$ _% {( A3 F8 Q  B3 v
      mov    ah,02h
6 a$ p9 l$ r  ^9 k; b      mov    dl,0dh" r4 n' M. I9 d" O
      int    21h3 ~7 @% m: K6 l3 L% U( h
      mov    ah,02h6 w' y" L! x: X4 \! L
      mov    dl,0ah0 ?- d& J1 V; y% g/ H; N3 t
      int    21h) w6 l# Q$ h' Z+ o
      ret
+ q& a& k5 Z6 p5 }1 Hcrlf endp
! Y- D; i6 z7 g/ A5 z! W3 r;------------------------------------------------------------------------------------------------& M: K3 T5 Z+ X
_32bits proc near
4 z: D2 p! x  }0 t# g      pushad
- J% R! {% p0 R! t' V8 ~0 x      mov    cl,4$ K& P2 y  A% U# m, ~, Y
      rol    ebx,cl4 h5 i0 p; L& D: A0 X
      call   print_4_bits! E2 p1 v  m9 D* ]& t
      rol    ebx,cl
% K" f2 a" @# f$ Z: O0 |5 m5 T      call   print_4_bits: o8 l$ p" n* k) m) _) T5 }
      rol    ebx,cl
/ i: r7 V7 [# m; F) j. h8 Q      call   print_4_bits+ V9 b4 N# P7 r) G9 M! g
      rol    ebx,cl" z5 z9 j. Q4 U  ]' Q5 {
      call   print_4_bits- z8 Y: e5 b! c0 L% k! @" A$ V
      rol    ebx,cl+ ]7 A0 `9 R9 h2 E. w/ m9 y* |
      call   print_4_bits$ h- N) k1 ^1 T/ c0 |- p4 |
      rol    ebx,cl
+ c" I( `7 O2 b$ t: w9 O  \/ b      call   print_4_bits9 z' r7 X/ W1 W4 O1 }
      rol    ebx,cl
! i. S  w+ _" B3 o" k      call   print_4_bits
% [2 j: o" Z4 X0 b& b  S1 P; n      rol    ebx,cl
  y  Q  ?& m8 e      call   print_4_bits
4 O* D6 U% M$ Z" ~- M& g  G' m      rol    ebx,cl7 |$ K7 _0 x: ?' [. R8 }- ^; R
      popad8 L' g! ]( E; L* k
      ret
  `9 j. Y% A( E4 b( b& G/ q3 v_32bits endp+ c. V! Y/ e5 @: |: K; i* e
;------------------------------------------------------------------------------------------------
) t# D! @6 G2 _) B$ r4 n_16bits proc near
. B: L" V. N1 z* @8 G      pusha        2 `& B8 E4 y* ^; ~
      rol    bx,cl
/ Q, x8 G1 D- X/ t" e  U      call   print_4_bits( z# Y+ @$ e; U- V9 i% P7 M! n
      rol    bx,cl( D" X- ^3 \( e( D. W1 S+ S
      call   print_4_bits* Q# ]' r; C, S0 h% u4 m9 X
      rol    bx,cl$ l7 n% s' @  F! N% |
      call   print_4_bits+ O$ R+ }5 S& Y- z3 y# N
      rol    bx,cl
4 [3 F4 X8 Q+ Q  u( ?      call   print_4_bits
5 f& k0 B9 C  S) l" x9 y      popa
- A' n. H% M+ ~      ret
4 ?. y7 W1 w7 s5 a: x9 u4 M_16bits endp, @; Q& ~; Y( z8 n
;------------------------------------------------------------------------------------------------0 H; I9 ^( ~0 R# e" ^
_8bits proc near+ R* {) M( n# ?0 [$ |2 o
      pusha        + z0 y- z1 i0 a
      rol    bx,cl; S& v) N6 b. ~) |3 b
      call   print_4_bits
* y& n9 j5 ]7 M) Z/ w      rol    bx,cl& x' J2 {7 Z- J6 D/ n
      call   print_4_bits$ p3 V* h7 l% o4 n
      popa9 \  U! O' n3 @9 I0 n4 n$ k
      ret
( L& F$ ~$ ^# n0 ]3 `* I_8bits endp
, o' ^6 r3 ^! k* sprint_4_bits proc near* V% `8 t  V8 `+ E' V6 t! ~
      mov    dx,bx
: f# q" s) ]4 ~2 ?      and    dl,0fh( t4 ^3 s  U2 U8 [
      add    dl,30h- l$ t3 I5 T) O. O
      cmp    dl,3ah' p( F% w! g7 n! Y0 d# k' E  }1 E
      jb     print
/ v% }& p) Y- Y6 q" ~4 F$ x3 X      add    dl,7) Q4 ^5 a% R7 W8 D% b! c- \
print:  $ Y: Y7 C+ l. F
      mov    ah,2
) t. T+ I: c0 [8 Z      int    21h
% M. R1 e# A4 o# Y      ret/ T% k( M% k. w7 H& K5 P1 U% t
print_4_bits endp    + K+ a  B+ Q- i. K5 v( |: {" x, k. v
CSEG ends
6 p& z/ A3 z  Q. V3 g7 v* KEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2025-12-1 08:37 , Processed in 1.739717 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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