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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)
! P, q0 }, ]) f' e" q/ |6 \) ?
% l  \8 ~' F3 }/ }1 p' @/ r& t  }則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'$ O, R. R; H! G% x" q

( f# g$ V. N+ Z6 ?* @8 l  X; S+ z8 u宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
9 f  g' [) Q4 c
9 o5 a1 z' m, n7 ~5 ?+ R) e.model small: Y- R7 s% Z1 O7 m, T" n( o  a
.386p
5 q; T* N* Q9 |# l" l2 n3 C! x, ]DSEG SEGMENT USE16'data'
9 E" u$ A& W" A3 X. o: [7 v. t8 ]3 x. w2 v" C: R6 h3 ?
DESC STRUC1 I) E7 [1 E$ s
     LimitL DW 0 2 C, @! @8 Y- d9 g9 E0 `) ^
     BaseL DW 0 , j! S% @$ `% J0 z* f" G
     BaseM DB 0 $ |8 y/ q) d: i2 o
     Attributes DB 0 ' h$ @0 ]. N4 G2 j- p9 f% ~8 m
     LimitH DB 0
0 R- F/ Y! z! X; \     BaseH DB 0
4 y0 B0 }. ~: CDESC ENDS
, x* v6 P3 e; G+ |: t
6 H4 F. H0 D: B! O+ Q  e0 j. i9 EPDesc STRUC* c5 o# s& x1 U
     Limit DW 0
2 l' D1 |% M! I! Z     Base DD 0 - h" [; p  t- u% n, Q
PDesc ENDS( U+ a& y- m# R1 v: m0 R+ v4 P

1 Q( q5 |$ ^6 ?6 N+ Y* f1 gGDT_def Label Fword
* ~$ M( u( g9 a4 j! M+ KNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>! N& h! p- W3 o! a" G6 N
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
3 {# O: z* D3 ]- {, l9 AGDT_Addr PDesc <$-GDT_def-1, >
& y6 ], H+ ?, Y! M8 Q: v* C) [/ y! R, D3 [& T( J
Maddress Dword 0
$ v( r; h; j) _6 H* h3 X8 [6 ^0 g  t3 z& E  o( Y& `
DSEG ENDS 6 _9 H5 H7 ^6 _- {+ u  w* T% V
ASSUME CS:CSEG,DS:DSEG! I; S0 y& Q5 A# Y6 L, L

8 v7 f5 z' Z- w* ]" QCSEG SEGMENT USE16'code' + {5 f) i9 c; A$ k' [' J- c, V
      push   ds
  [# \- y: V3 j' k1 G      push   es
, k8 p- j7 s& y      push   fs
2 e6 C9 H  [  W* c; J* O# y      push   gs1 L' n8 u+ F! z( G
      call   big_real_mode     " e1 @  F+ s2 u  Z. O. \. ~! c+ J
      call   Get_Commandtail
; P- f; n* }+ g9 O1 j6 Z- ~      xor    ebx,ebx
' J1 q: q8 h& r8 q      mov    si,82h! i  O4 k4 s  ^0 m
      mov    al,es:[si]) z4 O2 g2 \( e* C' m5 ?6 z. {$ X
      cmp    al,'r'
! F, B, R9 t' k. d      je     R* X) m8 F+ n2 b2 u* d8 W
      cmp    al,'R', r/ g7 I8 d3 t1 _3 \# @5 m% k
      je     R2 z- h4 f% n1 O. V
      cmp    al,'w'  {$ e  k  S; u) M$ q( c% U, e
      je     W
1 W- U/ v8 r7 Y: a* D6 g" {      cmp    al,'W'  i' |  K2 g- g' j
      je     W         
$ ~% S# a- I! a, gR:, b7 \) x) W: o$ S
      mov    si,84h3 e( Y9 o& \: W+ w! u
      mov    al,es:[si]' v9 c$ M3 J& X2 m9 @
      cmp    al,'b'
  Z* n5 N6 z! o9 ?* G) m% n, N6 E7 z      je     RBT
+ k( k7 ^" L$ q9 Z1 |      cmp    al,'B'
8 B+ U: }- R3 Q3 x      je     RBT8 S0 y# S# j) T* v+ |; R
      cmp    al,'w'; ?- M. w/ a3 w; ~2 Q
      je     RWR9 O. @6 ]4 h1 }
      cmp    al,'W'; B$ C7 Z8 h8 t9 V' x/ O3 W! K
      je     RWR
# y! X9 l  H. Y) O" ]      cmp    al,'d'
0 m, J# A7 e6 R/ Z1 b      je     RDR$ A, W6 {+ o9 e9 Q) o/ v- @7 V7 T
      cmp    al,'D'
; @8 X- `# H8 h+ A5 b      je     RDR             * B7 s( a) k8 f& d, L% R* K
W:      3 E( r' M8 p. R; B. L8 Q7 a
      mov    si,84h
# L( M' I" J- K' \6 w/ y      mov    al,es:[si]" J) ]4 Q& D0 w9 U( v
      cmp    al,'b'# e) @/ ?2 M: v3 X7 N, A4 {/ o3 [
      je     WBT# l- g  O' ~3 ^+ P
      cmp    al,'B'% [1 |, b& [7 u# j' W: S
      je     WBT
7 Q: R1 D# j% S/ }: U7 q2 L      cmp    al,'w', q; l& v9 L2 l3 x) @
      je     WWR
  D2 o* }" ^; \' j5 O' _& L$ _      cmp    al,'W'
  b+ L" |- I' V! J9 d2 @      je     WWR: z2 D4 l7 [4 }2 l2 n( t! n  p  T' g
      cmp    al,'d'! \3 g' U$ j) ^3 d/ @
      je     WDR
2 ~' Y4 ^7 q( R5 e      cmp    al,'D'
1 C9 V* X+ ]' {      je     WDR
$ R& X( P' [3 F4 O! S6 E' U. IRBT:
5 `' O7 B2 O9 t. z2 D      call   PSP        
. V/ d+ X6 t- [' A7 K( |5 f      call   crlf           
4 w  X5 }& i4 Z      mov    esi,ebx5 ^+ t; {, y9 i4 U! @) w6 f
      mov    eax,fs:[esi]
* x8 V& c! P  d! w) ~# t" s      out    80h,eax
$ h" j; G8 c" v: n2 _# b      mov    ebx,eax0 V0 B7 i2 e1 p3 G
      call   _8bits) M8 A$ R' ]1 Y$ l7 `+ X8 w
      jmp    Exit! {! c3 F& v  M" A0 @
RWR:4 P) L' l/ D" j  O: q
      call   PSP        
1 g7 \# p9 U8 g& y0 F! Z      call   crlf           
) E. K- |: P4 ~3 q      mov    esi,ebx4 `8 X3 L: J# C: d4 D1 \) g7 t& ~- \6 M
      mov    eax,fs:[esi]! x) ?8 m4 W0 J3 O9 J: Z/ Y
      out    80h,eax
9 u. |1 X) D7 T* r5 D- O      mov    ebx,eax
( Z5 }3 i3 {. K* i$ P! M& C* X- F      call   _16bits- m  \  @4 p- o7 g2 B! `- q7 ]$ G
      jmp    Exit
3 Z! U; m+ |! ARDR:" S& Y' \5 {2 E  r$ h
      call   DPSP        6 x  }  L+ M* a/ S% P  G- ^
      call   crlf           
$ ~2 ~% @* P; k( ?      mov    esi,ebx/ l+ [* j9 h% |0 c( u' {3 e
      mov    eax,fs:[esi]
/ K* I1 U! w- i9 @# r  d! w& g      out    80h,eax
3 g/ ~; [- Z  n- a      mov    ebx,eax: A; f% W( _- N, B# E/ A8 O7 `7 G) ~
      call   _32bits
% E: f6 M$ ]2 A1 A      jmp    Exit
+ @6 z7 z% h3 U) @;------------------------------------------------------------------------------------------------4 n0 C3 |6 c$ g) D8 T" Y
WBT:+ C& D6 \0 r/ c+ K3 j" M% G7 _
      jmp    Exit4 Z/ t. W4 U" Z+ F7 X) j1 }
WWR:
9 G# n5 x; r+ l) [8 p      jmp    Exit8 i9 D5 }# n  ~" z; ^" K
WDR:
$ Z) V. n2 o2 v" |7 p. V8 R7 t$ |      call   DPSP
- C- h. J. p( T$ [- A" C% {. s      mov    Maddress,ebx      ) b" B) A$ W. n
      call   crlf
7 v0 I* f9 M6 J      call   WDPSP- s6 b+ U6 _4 q9 C
      mov    eax,ebx
' |3 `6 H6 Z( ?      mov    esi,Maddress         
9 r7 B8 y. l/ n; ?$ O  Z      mov    fs:[esi],eax) ^4 t/ s/ f% H3 f* ~
      out    80h,eax
- ]* L2 T4 l% c( u& p' a      jmp    Exit& d4 ?2 Z6 u7 @* y6 @1 S! @
;------------------------------------------------------------------------------------------------      
9 S. \" f; ~* p  VExit:* Z+ Q+ R; j8 q7 z" b1 e9 A  ]
      call   real_mode     $ H* Q* x9 F; h9 t% B# J; a
      pop    gs
! g2 I( g: N0 o/ R1 Z      pop    fs5 y( E+ M; Y$ X& {4 r6 V6 }5 B
      pop    es5 b# k1 B- U4 ]! j
      pop    ds      
; d# _- u9 G4 w$ v. _. D      .exit( R! j( M7 s; t" m; }+ v
;------------------------------------------------------------------------------------------------
# J! y3 b$ R) }; N1 i2 {) o' Bbig_real_mode proc near
, h1 g3 d# J1 S  j1 {# |      in     al, 92h1 G* X# F. a5 K& I" ]) v
      or     al, 002
" }& k, v& R5 W7 I      out    092h, al
) E  b! s4 m$ L( c: m( d      out    0edh, al. m& @; S) M  M: [& ~& ^
      cli! {: r. x6 U% C. F5 u8 N
      mov    eax,DSEG
( ?- _; t: Z0 v$ e) s0 ?5 u      shl    eax, 47 b. `- N& ]* F9 X: [9 x2 B
      xor    ebx, ebx0 [6 a* T% ]4 W3 n  _9 ^
      mov    ebx, offset GDT_def8 B* u5 n# R! I+ ]9 y3 s. Z! {1 A
      add    eax, ebx
) k0 G/ A8 c+ Z      mov    dword ptr GDT_Addr.Base, eax
7 R/ S" v" h* R* p, c      lgdt   fword ptr GDT_Addr
% ^9 q: P8 E5 p& m& g, l5 y) _0 {      mov    bx, 8
: y( c5 d  C8 ?. s      mov    eax, cr0; B" Q5 ^) h8 M) O; x7 t$ D
      or     al, 13 h  L5 s3 a$ [
      mov    cr0, eax
! C1 c# C3 i5 n' X/ A  \- ]      jmp    PMod
. y3 d. ~5 q, _- wPMod:
7 I0 ?4 e& M$ F5 Q0 S3 [6 s      mov    fs, bx
% Q7 h1 T3 {: O% M$ u      mov    gs, bx1 ~" R% l& J, R3 e+ [4 Z
      mov    eax,cr0
8 U4 o2 ?9 p9 A' }0 l, u% ]      and    al, 0FEh
9 U' ]$ A: j' O- g      mov    cr0, eax
0 O. B; L, N1 p0 F  j/ J0 H) D      jmp    RMod% J" p& H5 E) G' _+ q% E
RMod:" a# x  y! {8 F1 v, E( M
      xor    ax, ax
9 _6 x) E3 t- B0 D( i+ O      mov    fs, ax6 z& }8 G2 j7 N( a9 y" k
      mov    gs, ax     
/ }  h3 h# H0 N. j  C      sti     
9 t) e! J% e2 f' V6 G4 c7 d      ret% x5 z: h9 E+ B% r+ _
big_real_mode ENDP, E) k) \0 ^" ]6 K9 d8 D
;------------------------------------------------------------------------------------------------
; K: `& l9 ?7 a; C3 I2 jreal_mode proc near- ~: v4 V- T, n0 ^
      in     al, 92h
8 |5 S+ G8 ~1 |. r3 {      and    al, 021 Z6 m# b! G& L& i1 F* [* E
      out    92h, al   
8 R9 S. G% O2 @3 _3 L. m      ret
$ v1 Y- t' m3 v, X& y2 kreal_mode ENDP
4 F9 Y3 r/ R  z2 ]1 [5 G6 J;------------------------------------------------------------------------------------------------* Y4 r+ J8 C( N( {
Get_Commandtail PROC near. m" }, Z* ?" o. g
      mov    ah,62h , d5 {$ h5 U; O4 N* `5 L
      int    21h- f2 s) |. n8 X6 s3 L
      mov    es,bx5 r+ W) ?. ]6 e) `5 R6 {
      ret) y" n8 Y0 `! l: V/ U, L9 x9 \
Get_Commandtail ENDP   
1 L# z* `8 R$ `) @6 G;------------------------------------------------------------------------------------------------
; y( p- Z  u6 P, j! H4 K; U) I- A; yPSP proc near
6 F2 g$ S* _7 u; c6 q) ]      xor    ebx,ebx* j2 V: T. u3 c. X: m
      mov    si,89h7 D( N, z- L: `. N0 |# ^1 x
      mov    al,es:[si]
# n# |' ^6 R# B      call   Change9 m1 g5 l, j* Y9 l- @
      mov    cl,4
$ r; v% J$ c4 l& a" m* l      shl    ebx,cl
3 P; {2 L" r7 D" b      add    ebx,eax. O4 b9 c7 Q# F4 B; p$ Q
      mov    al,es:[si+1]5 b2 t% }7 I9 d5 z4 ]: z  m. \0 t1 c
      call   Change% I' @, m: q1 X4 s; g! R; R: B. z/ D
      mov    cl,45 M1 X8 o, T+ e3 J% b7 S; G
      shl    ebx,cl9 k. b, N4 w/ e1 @: h# y' o
      add    ebx,eax
) [. [6 }6 O$ k( S6 T4 e      mov    al,es:[si+2]0 ~4 h- x: B& z! E' f
      call   Change9 H/ u1 z2 T* c+ w
      mov    cl,4" e! Q4 B$ w$ ?! g
      shl    ebx,cl& a! [* b2 @. O8 x" ~- `$ Z
      add    ebx,eax: l. }' q: J2 g/ i
      mov    al,es:[si+3]
, g1 P( `/ Z. n6 g$ @% M# E      call   Change: [" Q5 {" H6 m3 D# J" g
      mov    cl,4
9 B7 N9 F  c+ W" ?      shl    ebx,cl
9 \) a; ]" t+ p! M8 {% Y' b% G1 N      add    ebx,eax
2 j4 f( w1 y( M1 ]7 L      mov    al,es:[si+4]0 x) \# `' v" ?) b
      call   Change; q& I! F, z3 ]
      mov    cl,4
2 K$ k2 b& ^7 U      shl    ebx,cl
- y* H5 C9 E  m( q      add    ebx,eax$ v9 s8 x$ k9 J0 O& [& E  x
      mov    al,es:[si+5]
4 F! h# X% h7 D: @      call   Change
3 R$ X7 o* o8 z      mov    cl,4# z! ]& |# O) a
      shl    ebx,cl
1 O* `9 \' b+ @* A- w( ]      add    ebx,eax
$ \* z+ L7 c3 X* f; \3 [1 w! F" R      mov    al,es:[si+6]
4 U4 R$ t0 H- n% A* W% c/ ^. y      call   Change
1 z, u; U: b3 P2 r$ f9 E      mov    cl,4
- Y  Q4 I# W$ \+ `6 e, K0 o. T      shl    ebx,cl" b  `8 g1 ]5 ^8 ]
      add    ebx,eax! Q$ x% b9 ^. u/ m8 |* V
      mov    al,es:[si+7]
, @+ M( @$ j0 m4 H& k& K: \  u3 d, F      call   Change3 R% g! A0 p( }# C
      mov    cl,4
$ J4 g- t, ~8 s0 D% q0 r      shl    ebx,cl/ |6 ~1 G7 L9 i& y3 J
      add    ebx,eax5 ?" D' A% I! C& a+ h5 i
      ret0 C& L( ?( o: v
PSP endp1 L: o. h0 l2 i' u+ t* J
;================================================================================================
) f3 n# x8 o( J9 [4 r! `  K# vDPSP proc near+ o- M" h5 E% ], _. e
      xor    ebx,ebx
( w' u$ c8 O% T! J) n2 Q      mov    si,8ah
/ m1 [9 R/ R# D1 i% z2 ~      mov    al,es:[si]
* N4 Z& e2 H/ E" g1 g3 c, i4 v      call   Change
4 E. _' e8 ~& j/ V      mov    cl,4% E7 B/ c: ~% \3 F
      shl    ebx,cl
# A/ g% V# @/ a( U9 x! B      add    ebx,eax
) L% u3 P4 ^5 `( f1 n      mov    al,es:[si+1]+ l2 z7 @' F, I4 t$ y! D
      call   Change' K; t+ I. t, E/ ?0 ^1 [
      mov    cl,46 ~& D& T# j2 |: l5 c
      shl    ebx,cl( o0 p! x) J+ u; t1 k) _$ n" o
      add    ebx,eax/ l; g1 i' ~6 b( k" o5 C& t. q
      mov    al,es:[si+2]2 b  j5 ~$ r# ~4 L
      call   Change8 x3 h0 V9 [" B* p% x% e$ k
      mov    cl,4
# T: C' P% s' A3 a4 g% b: c      shl    ebx,cl
5 w$ f& X$ Y- @2 E$ P      add    ebx,eax6 K. R1 t% {: F# a' h/ z9 V
      mov    al,es:[si+3]
9 f  n% [8 Z) o& p4 V      call   Change: I) |# l6 o/ P
      mov    cl,40 z( w* M* f" u! J, F$ B* r0 C
      shl    ebx,cl
& S; R! g1 W; w2 P0 s) {      add    ebx,eax
! r. j% o/ H& O  L8 R5 C+ O      mov    al,es:[si+4]
* V6 G) H4 k4 J6 A. R. G- _/ Z3 V      call   Change/ y, X. _1 U( t* k# ^* I& B
      mov    cl,4: ?  H2 W  G  j7 K' s+ s6 A. c/ d9 z
      shl    ebx,cl
% [. D3 h, M5 B9 p9 S; ^      add    ebx,eax" j6 y3 S" Z& i" _: E
      mov    al,es:[si+5]/ V- E% P$ O- i( z# O
      call   Change
, k* l' H9 G+ Q, V- \( H( t" N      mov    cl,43 A% g- [3 |0 _0 _7 X$ U- G
      shl    ebx,cl0 G- Q+ [3 @1 q
      add    ebx,eax4 Q& W# c  S5 ]: o
      mov    al,es:[si+6]  I. X/ S5 E' d, b5 P$ m
      call   Change
3 f& @* N" C) f4 G) r      mov    cl,4
6 f/ l9 i- f4 A' m* P5 w      shl    ebx,cl$ T6 ^* A3 ^9 O! I/ x3 F0 u
      add    ebx,eax
2 N: p, }1 Q( j% Y9 q' B: n      mov    al,es:[si+7]% W+ W0 o& A9 [6 g
      call   Change
2 X  a- g  D4 a- W$ R# S" ?      mov    cl,42 T+ i% B7 J: t6 I
      shl    ebx,cl6 Y; {* L8 M2 o6 \- k
      add    ebx,eax- L: C$ H6 B6 S4 i
      ret$ @  [* _. s/ p- l
DPSP endp
; L% z& R7 U1 x) X;================================================================================================3 Z, f& i( r8 l% s
WDPSP proc near' G: L# ^9 ]( `  |$ E2 C2 f6 e
      xor    eax,eax
8 P! R2 \9 [* h) _' h7 ?5 ?2 q      xor    ebx,ebx
4 Y: j; p: S6 {' k( }' {* }, B0 F      mov    si,93h
2 i$ O, J- P# |! h7 Q% ?& V# [2 K      mov    al,es:[si]$ v+ T" J1 Q) {1 V8 C' X+ u. B
      call   Change2 }% Y' V$ ?' L- H( ~$ R+ c0 _
      mov    cl,47 ]) `: ]- t- r' K5 Y5 t
      shl    ebx,cl
; `# h# v+ ?% R8 K. E3 f      add    ebx,eax
1 F2 @4 |; H7 }: p! [3 f' x      mov    al,es:[si+1]
* X) H2 u& j" N8 @; ^. N6 P      call   Change
( F/ ?8 R. P- \3 y5 }  }      mov    cl,4% c# \! T; x) B8 a
      shl    ebx,cl9 T% R& s1 U2 b
      add    ebx,eax) [& m3 T) `  F  a* z2 z
      mov    al,es:[si+2]) a: Q' N# V- b  x' s. ]$ E; Q
      call   Change
0 i- A2 b+ W0 H; w. F' a+ [. {      mov    cl,4
- U1 W; _$ f: X( V% G1 g      shl    ebx,cl
3 i" ?1 r( R, t7 k      add    ebx,eax" [* K" q/ z  k; g2 A* N7 V
      mov    al,es:[si+3]  B1 O* w* I7 H$ l" |' L
      call   Change/ |& J5 z2 r6 N( F' R
      mov    cl,4
1 w( A0 T$ Z" D$ ~- o      shl    ebx,cl# d# P' ]' d( B  d
      add    ebx,eax
* Z- @& m% V' K" ?% n. E% T6 F      mov    al,es:[si+4]5 k- N) q( b& U7 C- m3 h* C
      call   Change
( x) c* R8 j" {& q9 n2 D: V6 _4 K      mov    cl,4" ~+ q( c! ~- N8 w8 m  p* z
      shl    ebx,cl& q) R- A; g: p0 c
      add    ebx,eax
) w+ _0 P5 ^: f/ K/ d$ ?4 R5 X; P      mov    al,es:[si+5]
4 |! V. {6 Z# W5 _      call   Change
' q& e$ B0 a  a- y      mov    cl,40 e& x! K. C1 M) w
      shl    ebx,cl
% q1 S0 W" T3 T, {, R      add    ebx,eax1 {! _! r. d) J( c; @
      mov    al,es:[si+6]
. ]# E2 J+ M& {1 u5 m      call   Change! e; H/ A/ H2 L; {3 w1 ^
      mov    cl,41 W: t% ?$ m( z7 E( _7 u+ Y
      shl    ebx,cl  T! ]7 d+ G8 Q( n9 W# w4 g
      add    ebx,eax
1 _. C1 t6 A0 M4 E! q* D      mov    al,es:[si+7]
6 k* c* n* }4 @* W! C( l5 A      call   Change
; W8 m& b- I" S) T" [5 `& f7 a      mov    cl,4
4 @+ U4 N9 t2 C4 Y8 Y      shl    ebx,cl
4 H2 z2 \. H# d* _- d" }      add    ebx,eax, }+ Y- t# K: v. S2 p; p
      ret2 i' {9 X7 h$ ]; n- V
WDPSP endp
& O% M' N5 ~- Z( W, g8 \;================================================================================================; A+ {' m5 p0 y/ ~8 g7 ^
Change proc near% q3 Y# d8 W- `6 q# K0 z
A:   
7 }3 s2 _6 Y9 ^: E+ f* o8 Q      movzx  eax,al
( j9 m% w# ], W      mov    edx,eax9 m. V( L$ x& n& S0 @$ u
      cmp    eax,'0'            & V  O+ h0 F" y" W/ W5 z
      jb     A
# X& T. E/ W5 B: @+ D      cmp    eax,'9'            
( [5 z* D8 m# G( Z5 A/ y      ja     B3 R; K1 k; S; v1 Q) [6 y- u
      sub    eax,'0'
- v& ~, e; A7 b% U      jmp    short E2 r% C0 A, S1 H( a- {. b: q, b
B:3 V5 w* V- ]: f1 @+ b
      and    eax,0dfh           
2 [. t  B$ Z9 W. O1 {4 U      mov    edx,eax
  v; l/ N. M0 \; u      sub    eax,37h            
* J: }2 l6 T7 ^0 f2 `, u      cmp    eax,0ah
6 T; ~8 W  I8 v. A$ [/ [      jb     A                  
; p; f# z2 G1 u2 V" d6 x* p* [5 p      cmp    eax,0fh+ o# r9 ~# h5 D& ~$ e% |: t, f
      ja     A                  
( @) M/ I1 S/ e+ |5 ]E:7 T% r; O; x6 x
      push   eax      
4 D' i5 S6 g) z" w      call   PRT                + _; w, `! e4 s3 p
      pop    eax- ?( O2 O2 [3 S3 J. M
CExit:! J( z* c) U( u$ I, J7 X) v8 h
      ret
. }5 f$ ~! l$ {9 ]6 mChange endp9 L1 U# U3 V4 z0 |. t6 }* L/ t- n/ y
;------------------------------------------------------------------------------------------------
5 X, n5 U9 |/ e  zPRT proc near# m. [- K1 S8 P* u
      mov    ah,02h
( F( p9 t; [- ~      int    21h3 j( h$ G4 g( \! b
      ret2 C  `8 r- T" _) Q! p- ]2 {! d. ?  K
PRT endp
0 ?1 S% g" f3 D" P7 v' {;------------------------------------------------------------------------------------------------
* d) q3 l, V/ Ucrlf proc near) F" I$ N3 Q( y
      mov    ah,02h
! P) _' e3 l' d      mov    dl,0dh
: L  Z, f2 t, T" K! r      int    21h
+ b9 {) O5 s" |. t+ W' b" u      mov    ah,02h
+ j# w  h0 B  D- Y" ]5 T      mov    dl,0ah: D4 k- H3 z: q& j. u) a4 b4 B( Q
      int    21h: @6 f3 l+ G' h2 M' r
      ret
4 q" X# d2 ^+ N$ C6 Y5 Zcrlf endp
! E2 T4 j. c$ Z( {8 s2 l;------------------------------------------------------------------------------------------------/ F4 Z& d" w+ `+ {7 I& `$ W
_32bits proc near
3 J* v7 }4 F3 q( X      pushad5 m1 L9 H/ ~! x" M# t+ `
      mov    cl,4- ^' }: P- \: l% \0 S
      rol    ebx,cl! d8 c- i* K! f9 n
      call   print_4_bits9 E* M. j5 b& h/ D9 W
      rol    ebx,cl4 g8 f( J* G( f% V' {! @! m: I# W* X
      call   print_4_bits7 L4 a; y' {/ r& D5 V3 Z3 H& S
      rol    ebx,cl8 H; j8 k; Y! z: ~7 N* g
      call   print_4_bits
) s( ?/ \4 u  V6 u6 c      rol    ebx,cl
1 J* ]; ^' X: m$ P7 a      call   print_4_bits+ f% {1 F1 ~7 k  ^4 }
      rol    ebx,cl
" A1 K, {$ G* H2 x: ], E      call   print_4_bits
; V4 ~! Z$ B; g3 N9 n      rol    ebx,cl# Z) p* d. a- C" k* X
      call   print_4_bits9 x! D# [: f" K
      rol    ebx,cl2 ~: q9 @' b" n. q
      call   print_4_bits
$ T$ M. M" K% |* w$ N/ X3 {      rol    ebx,cl
1 @6 P) `5 f8 a) p6 `& I& s2 I      call   print_4_bits& [6 P4 n/ ]( H/ N* q5 U# C1 ?5 R' u
      rol    ebx,cl
4 k* M7 u. i) V8 q1 e' \- {      popad- q) t3 S- m5 W  S
      ret/ X6 B. X; g6 g5 f5 d+ f; }4 u
_32bits endp2 \+ A4 ^$ L! x# |3 \
;------------------------------------------------------------------------------------------------
6 p, c, q4 [/ o% l- Z- x4 Z; j7 P_16bits proc near& d; c6 E! l( H
      pusha        
7 V  Z, A9 g# Z& D      rol    bx,cl
  x" a+ Z' `9 X      call   print_4_bits
# W' S( ?3 g( w6 g0 o6 m; }7 ^2 h      rol    bx,cl
& V2 }- g. z* q' B  h      call   print_4_bits' W. I) H6 g6 p$ t6 {2 S
      rol    bx,cl
% r9 k7 n! \  V  I7 V      call   print_4_bits. v5 s7 O0 i. h' Z8 [! U
      rol    bx,cl
$ X$ x& f: Q" b7 f( @3 |. r7 E' o2 i( |& \      call   print_4_bits
6 ~- R9 ?% g  }      popa
" l9 I9 S' E- m& _      ret
4 j' x1 |: {% j_16bits endp
* L) i, j; U% |! a9 h' e. t;------------------------------------------------------------------------------------------------6 u" H( N% [* a) W1 @/ k5 @# u* y
_8bits proc near  S( v2 B2 E1 }$ y  _" i
      pusha        3 m$ o5 `7 O) Q; I" N! C5 s
      rol    bx,cl
  O  ^3 m% _+ e4 G      call   print_4_bits$ @$ s9 Q  j0 j  A! b+ [/ c
      rol    bx,cl
9 F1 e& ~8 B1 q% R5 f6 I      call   print_4_bits
# y/ L8 ^! w: {, @3 k      popa
0 M" {, {5 e0 x9 H      ret
! f& u8 y4 V3 r. ~4 D, E_8bits endp
% O$ z" x$ p- V; \6 {print_4_bits proc near
* J' J! w  Q1 e& C" c      mov    dx,bx1 f* j* c7 G5 _5 P# O, P
      and    dl,0fh' O! A( `' `' A, A2 U0 ]  V
      add    dl,30h
6 G7 S; j4 G* \9 u- Q, C# I      cmp    dl,3ah
( x* R& k0 q& \; N+ q% C, C7 g% S0 R      jb     print5 y3 U4 I0 I2 U
      add    dl,7" j9 C+ @5 M7 ~+ ]
print:  
: R% ~7 d. _" P5 |/ _% I6 j" n      mov    ah,2
2 E4 P, v# o9 N% m6 l      int    21h6 M, r  S. U* D! b
      ret
: }0 f, y) X- Z9 q% Oprint_4_bits endp    , x( Q! m) U  x  ]- d9 W
CSEG ends
1 w, _: c' Y9 r6 u9 h' X" pEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-1-12 05:40 , Processed in 0.053146 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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