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

關於SEGMENT 宣告變數的問題

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

( d4 m* v" ^6 f7 ?7 r4 p則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'- Z  j0 A3 X: L( r
6 ]! h% d+ m( T8 y# {' v
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  " T* A4 z0 x) [) q/ n! Y
# j9 h$ C) n$ g
.model small
# b$ w% X( E1 Q, z0 }.386p
- H2 p5 B1 f" C! U* ?) k+ DDSEG SEGMENT USE16'data' * _" ]9 T) X( I

7 x5 v: i, m( z; q, rDESC STRUC% b. \4 @2 f  t$ {0 t- k
     LimitL DW 0
& D& e( |( H7 f     BaseL DW 0 - ]) w* I" e2 ?& s5 B
     BaseM DB 0 $ {; w; U  a: R8 a" n: n
     Attributes DB 0 3 Q9 V- s: b" {( P
     LimitH DB 0
  p2 _) u7 H* `' W, V     BaseH DB 0
* Y( c8 n  I7 w* l! ^1 f$ X9 n+ IDESC ENDS3 g3 n- f- c5 l$ y4 z4 o  W
" W  k2 A% ?# P1 `$ T* j
PDesc STRUC7 o4 k' w+ t7 S! b+ e1 ?
     Limit DW 0 2 ?; V5 X& X1 D2 I7 ^: Z" Y  X
     Base DD 0
6 t+ J7 ~* J2 ~* aPDesc ENDS/ Q% x# n, f( l+ G

( V5 _, t3 P" v4 E' \GDT_def Label Fword1 J' E7 M4 ]3 l1 d3 W! Q4 ?1 j
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>3 L8 {' c5 t+ b
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
" R4 g% y/ [" M4 a% |GDT_Addr PDesc <$-GDT_def-1, >1 e" B$ v2 S; V6 K( Z
8 e1 l: d2 @; {0 p4 t+ R/ W
Maddress Dword 0' j2 h+ H  k2 O1 J
* ~5 v( p2 i/ G) ?' \
DSEG ENDS / O( H% K6 I( v9 M: x7 c1 o9 {, G" t
ASSUME CS:CSEG,DS:DSEG
* k4 \3 ?4 m/ d7 l- @: c* l! E3 y1 B3 H- }+ }
CSEG SEGMENT USE16'code'
2 @# v( V6 A. f      push   ds; I/ N( h# b" J5 R' W
      push   es
3 x, E) C- x' a$ y: ^+ @  I      push   fs9 X: @1 y/ x( G# l9 ]
      push   gs
+ s; w" J2 k! R. q* _2 o1 `& ]% s) C      call   big_real_mode     
0 V1 E" n( V. I$ Z! w) x+ h      call   Get_Commandtail. n  ?4 t5 G' W4 N
      xor    ebx,ebx& e7 C8 m: f9 i7 o8 A9 \# e' Q3 Q
      mov    si,82h& Q% B* |7 v/ T5 P
      mov    al,es:[si]3 O! h1 u$ x# g, r# X! [+ Z+ G9 n
      cmp    al,'r'
% S; G; D4 p% l. R5 k# ?/ j      je     R
" ?: a9 G9 O( Z' |2 D! P* ?      cmp    al,'R'3 F- f. g3 ~3 p# a* u, [5 t
      je     R
- R) V, ?  A+ |7 C: p4 E) S      cmp    al,'w'
- P7 E- [) h1 L$ k      je     W" A4 l6 e: \( y7 [& |6 W7 c" G
      cmp    al,'W'
) G  Q7 M* a: d/ M- i. v6 s" u- ~0 `      je     W          8 b" K# W2 ~' j# {0 `. k
R:% R3 L: Z* s4 C( l
      mov    si,84h! Y% X+ k7 j, F$ l7 T; O& T: Q" r0 e. }  Y
      mov    al,es:[si]; Z, u) g) B1 I0 x; _
      cmp    al,'b'; l% C/ F( e+ ?9 p/ [* K- s
      je     RBT5 Q; F: I6 t: l$ S0 L
      cmp    al,'B'
6 ^4 R+ W* v+ }$ `6 x$ P( N( _      je     RBT1 S- L0 ~1 K* V
      cmp    al,'w'* [- i, y. u0 n; X
      je     RWR
( X/ l& G9 |4 O  Q" u8 P6 p      cmp    al,'W'% P: w0 b! c6 t9 M! y
      je     RWR
. o  G. R. G) ?" h! a      cmp    al,'d'& z0 e, C. r0 c2 D2 [4 ^) u- U; [
      je     RDR3 \6 l. l- {* [1 q
      cmp    al,'D'* w0 N# L& f9 ^6 O0 n! T
      je     RDR             ( S  U. A9 M) z& }* y, _0 e+ Z; o
W:      & n2 t  [. u# u5 b! K+ `  j
      mov    si,84h
: q1 b6 c: R) w% j      mov    al,es:[si]+ C0 b/ P; x3 D9 P) x  a
      cmp    al,'b'$ D1 M& m7 j4 l" X  B
      je     WBT0 X* z7 o  H; A* v8 t6 r
      cmp    al,'B'
" O& g5 [' C  G) Y  Q      je     WBT
  h5 {: f- J8 s, v6 Z! l' S0 V      cmp    al,'w'
" U& x& ]4 C5 X8 x1 H" @0 d      je     WWR
  b8 F: l/ n+ ?& G& L+ K      cmp    al,'W'
# I6 G1 E0 D; W2 N$ c$ b4 ?  X4 S      je     WWR
( ?. p. C9 j- C9 q* K      cmp    al,'d'
0 S7 r/ R) C, i5 y1 _6 e3 X, o; ~      je     WDR
' s% l( ]  p9 Z4 D$ O% x! {      cmp    al,'D'
+ ^" v, B! ~+ m" u+ N% L      je     WDR
8 U7 d0 `% t0 Y- ARBT:- [1 c) G* l5 V( b
      call   PSP        ! i" K( b  r/ P* ^% @) w
      call   crlf           8 k: L+ q" P8 R8 H/ R4 T
      mov    esi,ebx
% Y; I5 I/ W, h, h6 D+ W0 y      mov    eax,fs:[esi]
' p) K6 m$ h7 h# E      out    80h,eax
% B8 y7 W" j. x/ ^      mov    ebx,eax
" w- Z- W/ g+ a# J' b* N! m      call   _8bits5 m. U2 O; a& T5 R- p0 L
      jmp    Exit
) O* ~& p! V  H9 kRWR:9 O( A& c- y- |% b
      call   PSP        
4 Q3 Y5 n( e( V# [# D7 X, S" x% [      call   crlf           , X: V6 E, a+ x7 e8 s7 K: \$ U$ q
      mov    esi,ebx
/ T) y8 L- N3 \' p& y/ K5 K% K      mov    eax,fs:[esi]1 [+ Y# A2 V1 [5 L) O- o8 L  J
      out    80h,eax
% G" D8 s- U! y3 |% R; k# x      mov    ebx,eax: }5 ?4 q& z3 O1 j) Z0 Y
      call   _16bits! }+ m# ]* M6 ]; R( i2 R  y
      jmp    Exit3 K' u6 ?& Y" y5 K) t: g
RDR:& m0 P7 D; u' ]; E' g: l/ Y
      call   DPSP        ! w  n* l  {7 ~9 x5 w4 T. C
      call   crlf           
+ w& Z3 ]3 h5 g" F  ~( U      mov    esi,ebx
* e% u! `. T+ f      mov    eax,fs:[esi]2 {; o5 c+ N  r3 Q$ x* L. t& K
      out    80h,eax
* v  e8 S. B5 N+ M# M      mov    ebx,eax
: A5 |3 |  L! F' Z+ j  F2 O7 S      call   _32bits$ J7 i, o! I4 Y, u7 u
      jmp    Exit
0 P2 i6 z2 D; g6 N3 z1 R;------------------------------------------------------------------------------------------------, X0 n5 W" N7 |$ [% Y) Y- L$ [
WBT:8 L$ |5 S" k" |1 ^
      jmp    Exit
7 r3 C7 L' f# `. \WWR:
9 d  y+ T& r$ C2 q8 s8 _      jmp    Exit
  M+ n1 U/ |- ?" nWDR:# N1 ^" H# `" ^1 T/ _# M% y& V7 p' R! ~
      call   DPSP; _% E2 W* S+ Z! o4 s
      mov    Maddress,ebx      0 k# c: ~0 |& p% a) X$ V7 m. w
      call   crlf+ S9 K# D2 A9 q3 W; F9 E  Z
      call   WDPSP6 X& g9 \! D+ `" |& u
      mov    eax,ebx, X* W. x, }7 {+ }: Y
      mov    esi,Maddress          , ~0 U' ?% q9 R% _& d/ O' O
      mov    fs:[esi],eax* ]( u! x2 m5 M  c) G+ _3 h: e5 x/ J3 n
      out    80h,eax
' H/ Y) b; N/ F9 @      jmp    Exit
/ I# O1 Q5 D/ d6 o6 p;------------------------------------------------------------------------------------------------         y1 s% Q) s9 ?" w8 n4 x
Exit:8 @9 J7 j1 E( H1 v5 Q5 x
      call   real_mode     
# G7 u2 S' d+ n4 n- R      pop    gs7 j: }( M8 x; P$ C" G
      pop    fs
1 v0 @  y6 y8 X0 P4 }* s      pop    es
' Z# Q6 G" o9 D: M! h      pop    ds      
) \9 v, i, @+ y  p$ c      .exit
& B. Y( ^! ~5 c9 a6 p6 d;------------------------------------------------------------------------------------------------
7 m: j+ Q" A, n" fbig_real_mode proc near
/ |4 `0 w& }8 g+ L, u      in     al, 92h
. ^) i3 ]8 r/ g& T      or     al, 002
& u! Q  f" q& f, A. h( Z      out    092h, al6 U% F8 n3 `# Q' R+ W
      out    0edh, al
- Z- H/ c3 H2 g( T" V      cli
5 }& e: B; u4 f9 j: s4 |      mov    eax,DSEG3 p& \" Z8 G& i  ?  @, `) c
      shl    eax, 4$ t" s6 w: A5 d6 ~7 u& f4 W  U
      xor    ebx, ebx
' V6 y8 b8 @& ~! \* Z; g$ r- J$ ^      mov    ebx, offset GDT_def
/ {3 ?. V5 w# Z1 T/ D0 O      add    eax, ebx
2 @' O1 M0 P" l" X) q9 \9 s      mov    dword ptr GDT_Addr.Base, eax, a5 }) A; T" V
      lgdt   fword ptr GDT_Addr
" |7 Q* v" p. x      mov    bx, 8
! `1 a) T2 P/ ~! W  N      mov    eax, cr01 c) \4 b$ o" H8 ?# X
      or     al, 1
5 A% s) W3 W* u      mov    cr0, eax
) e8 b: ^: A/ p, n7 n0 q4 s  r      jmp    PMod
* f6 R$ I8 C2 z" `9 mPMod:! R: g& S$ T# N, f) |5 N
      mov    fs, bx; l  o1 a. c1 O0 a4 V' S6 ~' S
      mov    gs, bx
. F1 n2 M- Y8 a! f) S      mov    eax,cr0
( R: |4 @% V. X' J' D      and    al, 0FEh/ i) I7 o! t2 X7 V" k
      mov    cr0, eax
5 x$ F. L+ K. Z# l: t( R      jmp    RMod
" n7 C8 K& f$ q2 q" _1 ^RMod:' g$ n% g+ O& e4 ^  H( [
      xor    ax, ax
, D. I/ E6 D) Z7 Y- M( A! s      mov    fs, ax) b8 N1 n# a' O  a8 s3 y* a
      mov    gs, ax     
0 m" [9 g- q" ?7 ^# `% W9 l      sti     $ }9 e6 L- t/ f0 v8 B7 Q; ?
      ret
$ b8 L# z! j/ X- k: Qbig_real_mode ENDP
! h* X3 G. o9 D0 I+ c7 P- w. B;------------------------------------------------------------------------------------------------
* {8 M2 A% G7 j6 Ireal_mode proc near( O- W# F2 v3 x1 x/ z$ I
      in     al, 92h5 K( g9 y2 j5 b1 C" L; E
      and    al, 02" J8 |7 i- J! ]6 ~( H
      out    92h, al   
) G+ [8 v+ K. X1 j      ret0 s7 ^5 [3 }1 h
real_mode ENDP
) R4 w8 U8 _" n( Q. V3 ?* l% L;------------------------------------------------------------------------------------------------5 v' {+ @1 |( g( G
Get_Commandtail PROC near
% }( R# h: O$ I: g# Z* \9 j. }  ^      mov    ah,62h & m& ^) U9 L; e, Z; b7 s2 H2 W6 O: C8 X( \
      int    21h
( [: D9 t( H( n- ?      mov    es,bx$ o. N& n' _! z9 q. ~" N5 g; r7 [
      ret
, f1 G( b  O/ ~$ ]$ {Get_Commandtail ENDP   
) b$ y' m) k# `( h/ g0 \7 ^;------------------------------------------------------------------------------------------------
& w3 h" X( B& R/ T; iPSP proc near
! Y# I3 A  j7 R9 @" C9 [      xor    ebx,ebx
1 [# P: T' A6 f0 X, {8 H      mov    si,89h
; K) @& t1 l% }2 }, b      mov    al,es:[si]
  q: a5 X$ M/ M6 K# g      call   Change
/ m, W( c0 n% Y) a2 Y7 @( ?      mov    cl,43 z* L" `/ @5 f& e1 x9 S
      shl    ebx,cl
5 q+ }  B- A) ]1 Z9 A      add    ebx,eax
+ z9 T3 Y* L8 J6 Y. y" k% t# o      mov    al,es:[si+1]% f/ o4 G- p* h; \! _5 {! q) b
      call   Change6 P: ^4 s- v: \5 p4 d3 Q: g
      mov    cl,4$ }) L6 W* |) n- r# a8 ?6 v
      shl    ebx,cl- t7 J" Y: m5 q  R$ u) ~
      add    ebx,eax
  L" R; ~5 H+ K6 Q% {7 w      mov    al,es:[si+2]
7 r9 c( K: |0 G9 j$ s$ \4 b      call   Change/ u( `2 {8 W7 {* I' x' x
      mov    cl,47 Z, O  l* O4 [  `6 g7 t
      shl    ebx,cl9 |8 G$ ^6 S8 d5 h7 L, |* ^
      add    ebx,eax( R8 t7 ?' K. V  W8 K
      mov    al,es:[si+3]
3 U7 u7 T1 d( G% g. b7 ^6 W      call   Change: I$ m# ]- m9 k5 i* r
      mov    cl,4
6 i: G# S8 E$ i5 N2 `      shl    ebx,cl
2 h# M$ q2 j4 v* j9 q+ E      add    ebx,eax5 G% S& y6 l. T6 E" B
      mov    al,es:[si+4]6 H/ y2 m. ^' M  w# o& P3 U
      call   Change
7 K$ m7 _/ i* K' F      mov    cl,4
( N6 Z, L! m; k: s      shl    ebx,cl
$ F6 J) L, H, k0 [7 o      add    ebx,eax
& G8 D; t* w' ?6 c0 z# u( e3 a      mov    al,es:[si+5]
: x# r2 S/ m6 V" {% w: [# K+ y6 `      call   Change" d% S! d: x) ?. j0 P! P' G
      mov    cl,4
. S% k& p, v1 M1 y+ d# i7 o6 i      shl    ebx,cl4 F$ ?' {. w; v3 N
      add    ebx,eax
2 V& R& H8 h( K9 w( [      mov    al,es:[si+6]# t- E% n# D  z! r: u) P, }
      call   Change1 Q) R$ @% d7 M; d. M& @( F- `
      mov    cl,40 E. W  Y2 D! L2 K; B% t( Y
      shl    ebx,cl
0 R, m& T, ]8 M6 x" n      add    ebx,eax5 a5 P/ `) ^; c0 }0 L5 w
      mov    al,es:[si+7]" S1 W+ S* @. T' B# Z: _
      call   Change) Q7 T: `6 ~; }' p
      mov    cl,4
* G+ m, |& C& ]7 ^+ H      shl    ebx,cl3 @" @. }1 i* t/ }3 D% P0 c% q# I6 Q
      add    ebx,eax" G1 w! y' Z5 f) E5 n) w
      ret# V3 ?1 ]5 g* c  S) i- H
PSP endp' k7 V9 R: f9 A
;================================================================================================
; o4 n9 I4 W* o8 |9 \DPSP proc near: [" g0 ?, O' U9 r! O2 Y
      xor    ebx,ebx' Y# ^% R/ ~$ ~+ r
      mov    si,8ah
* \1 `* k( {9 @6 }, J* o7 G      mov    al,es:[si]
. q3 U! V8 k( [% V% m/ F% G% X      call   Change
* l  g0 s9 U2 F9 H8 d      mov    cl,49 A) V$ h0 d. i1 g& ^; ^
      shl    ebx,cl0 [1 {/ e4 p9 X& U2 Q
      add    ebx,eax, a6 F" ]: b" k$ i4 k
      mov    al,es:[si+1]
- r- z3 D8 {: ^" p! K" ^      call   Change/ y; J6 f0 i+ J5 P
      mov    cl,4
* M9 p$ v; @1 B( I8 Q/ B      shl    ebx,cl% w5 _% v5 Q' p; G/ b! u$ A0 j" C
      add    ebx,eax% u* N" q7 x0 j" |
      mov    al,es:[si+2]
3 }( P  d: |, K1 D      call   Change  ?2 F& G: \8 C
      mov    cl,4
5 Z# d* u+ h( u1 X& h4 W      shl    ebx,cl
6 q! c8 R- A0 t      add    ebx,eax, h2 _1 ^& n8 W& h2 f
      mov    al,es:[si+3]
! t5 r6 D' m* B; D: Y8 m      call   Change1 k% ?5 V+ C7 M$ Z6 A1 d5 ]
      mov    cl,4
3 T4 A: z4 \, y; s- i; ^& q; q/ e      shl    ebx,cl9 ]7 A9 q3 Y6 r% M  |( y
      add    ebx,eax
- k" J4 p) P4 a3 d0 S0 |0 j      mov    al,es:[si+4]3 r% m0 O& b8 J# F$ I
      call   Change6 j8 S" E& Q& l- q! e/ M3 g# F
      mov    cl,4
: d5 Z0 @" z7 }9 P. ]) R: A6 J5 U      shl    ebx,cl
& ]) T* D% h4 C8 p* Q( ~" ~9 k. U      add    ebx,eax
: R7 U9 M, [5 w& J  z      mov    al,es:[si+5]
% _6 i* s; C/ _; C) X2 a4 X      call   Change& g. [7 d) B0 z3 p! l
      mov    cl,4% H0 y- {% o' L$ A  O% ]# o4 L
      shl    ebx,cl/ K& |' j# |* h! ?$ m" {& ^6 L4 v2 r$ K
      add    ebx,eax
4 p( Q! v8 O) H( P9 U# a      mov    al,es:[si+6]2 o: L; d9 V& N! C1 m
      call   Change  \, w! E6 R1 Y9 F8 T: I0 C) ?! j
      mov    cl,4/ m7 U7 [9 V1 e% s  U
      shl    ebx,cl
' Y# D0 q2 F( k" r2 o( c      add    ebx,eax
/ M3 b. Z9 t4 n" M" r9 F% s      mov    al,es:[si+7]2 v/ G9 S- G: v( h7 h
      call   Change3 e3 ?0 _! `- m& m
      mov    cl,45 `: p% _/ |( O
      shl    ebx,cl
4 g# f" X3 s% ?* n9 ~      add    ebx,eax
& w; T+ ]$ C) P: v3 h# T      ret
# d7 y: R# [" {! K) s1 Q, gDPSP endp% R1 v& @) Q1 I( l; M4 d4 h
;================================================================================================1 K$ c$ O' t6 d* `2 R& Q) B
WDPSP proc near
  X3 Z3 Y: {, M- u      xor    eax,eax
3 y& S: A; c; ]) \( H: P5 ?6 h      xor    ebx,ebx& J+ E# |8 B0 V* g" `9 `% A' ~
      mov    si,93h, g# J* d" v/ Z( x; c
      mov    al,es:[si]
' W9 g, k; F  E( \$ c      call   Change$ n) F: l  C0 _7 ]6 X7 ?4 v. X
      mov    cl,47 ~7 n, ~: G; P7 J8 n
      shl    ebx,cl- B$ j" _& \3 S
      add    ebx,eax6 J/ V+ V4 o2 [4 d
      mov    al,es:[si+1]% ]. o. N; I: ]4 d+ w
      call   Change5 k# [! }6 t- ]
      mov    cl,44 r$ E. s2 I6 R, x" M4 C: v& q/ [0 Y
      shl    ebx,cl- W0 ^, {  U8 ^  h" X+ G
      add    ebx,eax
6 ^1 U. i4 ]9 b/ A      mov    al,es:[si+2]/ A% O1 P5 X  R0 R9 S" X: i
      call   Change6 M2 }4 M8 o; s# V
      mov    cl,4
1 }" A) ?/ b1 M; n6 i      shl    ebx,cl
; v/ z6 {! ]& y$ v/ F  J3 l      add    ebx,eax$ V2 k5 E1 U8 g
      mov    al,es:[si+3]
4 E& ?1 e. r. X3 c% k      call   Change4 J$ {$ Z' d7 O# T. f  q, P0 k
      mov    cl,4
0 f) ^4 A8 U0 C3 ?, j, l  e) f      shl    ebx,cl/ H9 t( ^2 M; A! X3 _
      add    ebx,eax1 E9 W, |* ?: s& @
      mov    al,es:[si+4]
& Y( G# l6 s5 t: p      call   Change, o( ?8 e6 _+ G: p
      mov    cl,4/ A* D, C: k! [* b, _+ D4 [# p
      shl    ebx,cl
- h) R0 M0 a1 ?: \6 m/ ?+ V      add    ebx,eax
9 i/ k& q, j0 F* H8 r: ]      mov    al,es:[si+5]6 ]' Y* K2 y* M9 }% Z6 N
      call   Change# }# v9 p# U. ]
      mov    cl,4) f. j3 ?+ j' r
      shl    ebx,cl
. T& S7 L2 K0 [' p, h      add    ebx,eax6 t' T6 u) \% _) M* V+ {
      mov    al,es:[si+6]
# ?+ q3 `6 Z" {  i  I7 `' H      call   Change; s$ r  s( z$ B  V
      mov    cl,46 H9 j; k' V) T
      shl    ebx,cl
! h: _1 F0 O" Y6 l      add    ebx,eax
" f8 n9 [1 [1 G6 g      mov    al,es:[si+7]! X) P: {; G0 P8 T
      call   Change
# v- O  t1 y1 i, s      mov    cl,4
! ?, ?" y4 P+ e" e4 n7 q      shl    ebx,cl( O) I- L( k8 w9 I7 r# ]6 a
      add    ebx,eax$ r( y" ]" g7 P: e( j5 @( d; n
      ret: f7 c5 `5 `% K
WDPSP endp
& F  I! ~" `0 |( N! q;================================================================================================
! Y5 U1 M- q; w' {( H' `' \Change proc near
. x1 L* I$ ^2 l1 P1 YA:   
* e2 V1 |# }' h( l1 ?      movzx  eax,al
6 @& v: Y1 d# ]7 H9 {' Z      mov    edx,eax
7 Y# E" U% {+ j; I3 t& b      cmp    eax,'0'            ( W! a7 C( K" K# i. R, Y
      jb     A
* w, j. J( @* _9 b; V8 {# [- J      cmp    eax,'9'            
' f0 G7 c- z: }& p      ja     B7 V6 c2 @( }/ U. w, \7 r
      sub    eax,'0'
! t$ l' |5 u7 d/ G+ o      jmp    short E' ~( X1 S: K  t6 }* c8 m' u
B:
- e" S) j6 y1 Z2 e      and    eax,0dfh           6 K" C) o* `& M
      mov    edx,eax0 U0 c3 X) |! A; p* O% Z0 B
      sub    eax,37h            3 F+ r6 v. S; ^. K( f2 H
      cmp    eax,0ah
& [( D, c( r& k; f0 j$ g/ t      jb     A                  
/ ~% r0 l4 N% j3 {2 i7 R; e      cmp    eax,0fh' B  T, W) s* S" z$ o
      ja     A                  
5 Y  y' X7 F3 @# G: e1 BE:
( K3 p. ~& V  r& p0 `) r      push   eax      
& l1 Y/ E. u% Q# O! S4 W1 i* R      call   PRT               
  `- G% _1 q3 q. F& _$ M      pop    eax5 e- _' _. N6 f, H) s9 [3 X
CExit:& f% p% [$ l/ h% G9 ]
      ret& s$ I" _5 w: c6 V, o+ C$ g
Change endp
1 r9 m# h' R- T% d$ D;------------------------------------------------------------------------------------------------
1 p% b. J! b9 h# C; }$ W+ Q, h* P- EPRT proc near8 z, ]5 Q0 ~' ~. _; D6 o
      mov    ah,02h
& {) y/ q7 c) R* x0 g      int    21h
1 b; x2 `4 G- k      ret
1 Q3 n  T0 q! a1 dPRT endp
3 C. T) ]$ B( i/ F* a7 ^* n0 Z;------------------------------------------------------------------------------------------------8 T1 N; o, c! O+ [+ I" m0 L
crlf proc near. Z- v  ?' d& R- x3 E
      mov    ah,02h
4 ]* G& ?4 k3 [) M7 q6 r      mov    dl,0dh
- m( K# n; a$ Y8 F      int    21h
& c+ W. S* e' F6 g' Z+ u; E      mov    ah,02h- J9 ~- C4 C* ~  Z: |+ ~
      mov    dl,0ah
- U0 O3 n) ~" {) O# r. o      int    21h+ i" f6 I7 e4 u9 y# q
      ret
7 P4 O4 a" I! h% Z& \crlf endp" U7 [3 s: q( R# j+ J
;------------------------------------------------------------------------------------------------& v, C9 E* R+ N' j; ?# p8 L
_32bits proc near( }; Z" j+ }7 s3 o& \# {/ R
      pushad
4 b/ H# |0 u1 ]5 A      mov    cl,4# v4 K# G: [6 z
      rol    ebx,cl) F, O( W1 T" c9 X. h+ f. ~5 K
      call   print_4_bits) g% t3 s# ~# j' Z6 W
      rol    ebx,cl
( O$ [: b* r. i' a      call   print_4_bits
( M8 u  G* I8 }# O' g      rol    ebx,cl* x; U4 G  B& I% }
      call   print_4_bits; U7 b* [6 G! S3 j; s. x2 S
      rol    ebx,cl/ q, J$ e) ]. ?3 N
      call   print_4_bits
4 g, x+ L+ |) [: X+ p      rol    ebx,cl, H! Z2 o! ~0 g$ M- F) x
      call   print_4_bits" Y6 ^9 Q' [  d
      rol    ebx,cl' e5 K9 w  d- c0 }
      call   print_4_bits
5 ^; r9 t$ I1 J! h      rol    ebx,cl
$ k: S2 n6 X% k" y) Y      call   print_4_bits
% \$ ?9 A' [7 @- _! `      rol    ebx,cl
  |8 s! ?5 I0 j# r7 f3 R      call   print_4_bits( ]( B  `6 M' i- z; }
      rol    ebx,cl
) c/ L8 w& V2 J7 [6 H0 q! Y      popad1 D9 J) J5 ?0 |/ ]  Q
      ret
. h0 @9 A( f8 k% m; r_32bits endp$ P4 v- y4 d, b2 I$ W$ m; B/ D' x
;------------------------------------------------------------------------------------------------
8 H+ f1 w) b6 O  A1 C+ i. H_16bits proc near
9 j: G3 O3 i: }4 ~+ [9 l4 Q6 V      pusha        ( ^# m( B; I8 G2 f/ R9 x
      rol    bx,cl
* m  e; v' ~( r4 Y* U; y. c1 a7 L      call   print_4_bits/ p, Y1 q' w2 {$ t
      rol    bx,cl
" x! Y9 }, y% W0 e      call   print_4_bits; p' W% |+ J( E0 [% v4 p0 }" o
      rol    bx,cl2 F/ C: O$ M0 W9 V- Y3 @
      call   print_4_bits
! z  w1 R  i) n$ d- P( S      rol    bx,cl
" w8 O4 A0 E! _      call   print_4_bits
: i9 M2 L* W$ A: b! _/ v8 S      popa( z7 P/ l- R0 m+ [) V) Q0 \6 [
      ret2 m# g) D3 G: M8 s% P( K
_16bits endp$ J# c' w! Y8 R$ E9 L0 C5 p
;------------------------------------------------------------------------------------------------
1 a( Q% t" n* ]7 u; j& ~+ Y_8bits proc near
0 r- I  O- s/ M) S1 j% z& t      pusha        
  Q5 |# F% S' [% N3 ~/ k      rol    bx,cl
- y' o+ y# ~4 Z' y8 c, F' X      call   print_4_bits- _/ W# k# N" @9 q: l3 {# Q; P! e$ R
      rol    bx,cl+ ?9 u* K4 `" w
      call   print_4_bits
: }( |0 [- Q0 L. V; ~& u8 ~      popa8 C5 a8 Z. Z6 |
      ret2 v8 _) C  @5 t8 N
_8bits endp' ]) C# o5 q- r: P
print_4_bits proc near
7 r! Q0 D! u" I, T$ y: r      mov    dx,bx( q$ r( v1 N- d5 G* [
      and    dl,0fh
; Z6 n8 t: Y: x/ ^      add    dl,30h% o  e. F# s- G2 H6 H7 d$ ?
      cmp    dl,3ah
* G% O% F+ z! W7 Y0 u. {      jb     print. P& w( M3 j9 n+ ]1 E, t4 |. \% k
      add    dl,76 C! f$ \0 y) c! z: k
print:  ; p3 z$ |! G+ h
      mov    ah,2
# \  u: V8 A/ ?: E# B2 R      int    21h+ J$ c9 ~/ k+ b9 T7 j" [
      ret
+ F: d* Q, Y2 K3 k8 [' l0 C( U/ _( Cprint_4_bits endp    " [  {) k1 K* D9 c( N8 P, Q3 `
CSEG ends* A  t- ?4 y% g( v" W
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-6-8 08:15 , Processed in 0.041291 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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