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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)3 {7 S) ~1 q& T2 {7 }
' e6 c$ O) G5 Q5 m% H1 G+ A, ~: v
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'. v7 P- X: P6 X3 S

" k% @* u, T# S" f: P宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  + ?' C# ]) V2 W
9 f0 t1 L- m3 q! I
.model small
7 Z& o1 K! L5 h6 g$ {6 Y3 n/ K3 k.386p
) K, `. n+ g, s. }. UDSEG SEGMENT USE16'data' + h! l# D# Y+ \$ u4 F2 E. I
- d% W8 A, h; D  |$ y0 m
DESC STRUC9 t: L6 C3 d& \
     LimitL DW 0 ; B  z9 V$ A, P, d3 _
     BaseL DW 0 * }3 S0 M" v/ A# h
     BaseM DB 0
+ j8 \: s2 ^) o$ l4 N% E     Attributes DB 0 - S3 p- w* r8 `# @# p* D
     LimitH DB 0
5 |. f( d" h) J. I0 M* {+ H# U     BaseH DB 0 - m9 ?( d" W+ J, P6 N
DESC ENDS: d! c. F' Z' G/ `2 p2 I
3 c3 M% N' X% A$ ~
PDesc STRUC9 `  N% Y1 V- c, h
     Limit DW 0
9 O+ m; c6 r: P6 D     Base DD 0
6 i/ \: c0 E: U( w) G- \PDesc ENDS/ N+ }) P: ]% J; g

$ _! T4 Q8 \# n  a6 a% _. x( WGDT_def Label Fword
$ h6 k# J. t, e$ ]5 H: r0 K8 JNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>1 Z; c0 Q& {, k! y
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
7 P0 Y& i& ~+ c& NGDT_Addr PDesc <$-GDT_def-1, >* W$ w* C0 c# T1 M% N  c
: p' K# @* @+ O% ]- w4 ^* A" Y, N
Maddress Dword 0$ U1 n- ]/ D3 x
/ w  }8 @2 \, m  O
DSEG ENDS 6 K9 C* X  N2 ^6 Z. H# \1 W
ASSUME CS:CSEG,DS:DSEG
1 F* Y; x/ I$ k0 S, l8 u$ c
+ w4 B9 F) A8 d7 N, H, sCSEG SEGMENT USE16'code' 0 z* @& w, R% m- I+ t: Y; z" Q
      push   ds9 o2 X" w/ l7 h1 L5 ?' F
      push   es, @& m! c5 D4 [3 g( q! \
      push   fs
+ q6 p0 O- k2 m1 x8 F3 e      push   gs& g0 p1 D' u& b$ m- f/ C' j" e) d7 r
      call   big_real_mode     
# U& n; v) R. \* S4 ]& B6 g      call   Get_Commandtail
3 O# l/ b% x: u4 `5 I1 N      xor    ebx,ebx5 I/ G6 Q7 s9 P  V
      mov    si,82h
9 L: z: |" W& S8 m0 h      mov    al,es:[si]+ n3 Q) {/ A  g: O8 J( K* O
      cmp    al,'r'% o2 i$ @$ ?8 i( i" D, N
      je     R6 j& f+ H6 }, k+ N
      cmp    al,'R'
# q* e: l4 T1 ]+ f. X% R6 g( V) c      je     R  C2 l7 a2 j  v* ?5 x8 O& \
      cmp    al,'w'
6 Q8 c+ W+ y1 ?, L. S      je     W# b$ `  i: r0 C+ [, u$ |
      cmp    al,'W'. N% W' s. ]3 l% I! }
      je     W          % \' I) A+ }4 u/ {5 g
R:1 s- ~' P) }* A* @
      mov    si,84h
# s) S+ n+ d9 F" q+ Q      mov    al,es:[si]
  y5 ]! U* k- d7 \. q      cmp    al,'b'
% R! E: U3 j- D: I" ]      je     RBT6 r/ m$ [" P& m% c1 e6 o$ B
      cmp    al,'B') |* I6 u2 A( U
      je     RBT. m2 @3 p4 M- ]* g6 Q( i3 O" u" ?
      cmp    al,'w'
5 T! c& u+ y  F      je     RWR
# _# w# U( O' w! O) m6 n% M8 p      cmp    al,'W'
# s  R/ _0 z% R3 P; k      je     RWR& D( X( T) `, `+ a4 Z
      cmp    al,'d'9 B* w7 A5 H* ?8 o; J3 @; f
      je     RDR9 S5 Z$ z1 X; y; A
      cmp    al,'D'* Q* |" X* d1 w$ r: Z! P# `
      je     RDR            
* V4 q8 B3 ^+ k* n. MW:      
$ {) ^3 J3 F5 t' _      mov    si,84h
' m( ^6 M, l- d! Y1 F      mov    al,es:[si]
1 u; p) [9 z# L& S! U7 c, y8 o! x& t      cmp    al,'b'
9 I7 g7 P0 {9 x0 s; {      je     WBT
$ M6 E  Y2 B; z' ?0 r3 d      cmp    al,'B'! d: h/ t0 E  Z9 R( f- g9 ^) z
      je     WBT
: \3 s0 u, |! P, P      cmp    al,'w'
& u. I8 ^) E9 C! n! g* h  c      je     WWR
$ o2 i* L* D$ r      cmp    al,'W'
! E: }. X0 ^1 {5 @6 @      je     WWR4 R; Z. v# s6 f# c9 x
      cmp    al,'d': |: F' u3 X  Q
      je     WDR
3 K9 g# V! X$ k! R# R1 ?      cmp    al,'D'; J8 T& E% A3 n0 z: O
      je     WDR
) H* X( x3 s; t9 o2 B6 |& yRBT:7 B2 L; U. C" G7 v+ c+ C
      call   PSP        
1 e; c6 y5 n& [  B4 D  P/ U& p      call   crlf           $ q5 J0 _# F: M0 T/ V/ ?* L
      mov    esi,ebx
4 {, g5 T( {5 `: z! _6 _2 X      mov    eax,fs:[esi]+ M# W$ J' y* \$ `
      out    80h,eax
% X, H  F# A# t      mov    ebx,eax
5 {$ o% P1 l3 T- Y' @1 _6 c# @      call   _8bits
& K3 [! M" a3 L! F, b- r& Y. f      jmp    Exit& ?( \# ?# O9 l! x
RWR:! j. x. j- h9 x
      call   PSP        - b& R" h6 W0 W' f
      call   crlf           
' j6 e' ]7 q! J- I      mov    esi,ebx
$ B. q) n/ Z: J5 g7 N      mov    eax,fs:[esi]4 d: |: }' `- l8 _
      out    80h,eax
1 m4 g" M. ?; [      mov    ebx,eax
. L: v: u4 K( Z1 Z+ F% v* R      call   _16bits
. S3 m- o* m& G! \      jmp    Exit
$ A9 Z) T( h& @( n" Y: @4 u; ~RDR:
. ^; y' |. R; [% J      call   DPSP        % l$ K' U! [+ J) j
      call   crlf           
) b: q5 y! F& X8 U% `      mov    esi,ebx- a, F6 `  G0 w4 ?
      mov    eax,fs:[esi]" m& N/ q. p8 ]2 d' S
      out    80h,eax
. t9 s2 ^. H/ X7 X# A! r/ P      mov    ebx,eax
  l3 N& v0 {" P& x5 c0 t      call   _32bits
8 k% k% I7 S8 Q1 c      jmp    Exit& n1 M) R* d0 B6 q
;------------------------------------------------------------------------------------------------
2 T' A! p% h; h8 @; [8 u6 D4 K1 q$ hWBT:& O* [, p! p6 s) U
      jmp    Exit! z6 }; v8 b2 ^& _. I4 `
WWR:
  Z) A6 N- k, ]      jmp    Exit9 H1 E( t! q7 O5 f* o7 G
WDR:. R: N  {" g9 x0 H  c- A$ ^
      call   DPSP/ N1 K) E4 \( Q3 G( q; S; R
      mov    Maddress,ebx      * i- j. C- }% _% w
      call   crlf
7 x. E4 v( G) _& _- j      call   WDPSP' U) g3 f% v. ~- r+ D
      mov    eax,ebx$ n2 S! B/ p5 F# L
      mov    esi,Maddress         
' o( f, m, j% `& |0 a: f( t5 ]* Q      mov    fs:[esi],eax
. O, r8 \) j+ R# }      out    80h,eax
, Z" g+ y) @/ @$ ]$ p7 Q      jmp    Exit% J  Y) v  A* J, Q* A, c
;------------------------------------------------------------------------------------------------       , H5 o' B: m. p, O4 o. x( Z
Exit:
& Y/ w- E# x: {+ V      call   real_mode     
/ ]/ A; q1 r' j$ }, x, m      pop    gs. }, o% c2 S4 s
      pop    fs
% K, P' K5 J0 K& I+ ]5 @; t; y      pop    es4 ]/ e) G5 y6 e" f! B+ `
      pop    ds      
1 o) P" s" k% f( u. L) J5 E      .exit# x& @* V; c. Q% J  M2 m
;------------------------------------------------------------------------------------------------
7 A$ w4 o& `$ @& Sbig_real_mode proc near5 w5 g5 P9 ?3 D7 ]) k
      in     al, 92h
3 ]; q* R1 y9 C# D0 T; r8 \      or     al, 002
0 h+ G5 n7 S1 D' N4 E$ q5 w      out    092h, al
1 E- V; [/ [5 K' Y4 P+ k      out    0edh, al* e9 V8 H* {$ W4 I5 f% D2 D
      cli# N# ]/ {# A% ~8 i' e/ K; M
      mov    eax,DSEG" t4 |; @! y* `0 x+ U( p
      shl    eax, 46 [/ Z0 C8 X+ `3 D# h8 N
      xor    ebx, ebx2 s0 C) ^, x  v+ \0 X" f
      mov    ebx, offset GDT_def: M- c- b3 f: T6 x3 }
      add    eax, ebx
) f, `0 U6 Z& l) g& D8 y, [1 k      mov    dword ptr GDT_Addr.Base, eax2 E5 N8 o2 }% k+ S6 f9 s) P
      lgdt   fword ptr GDT_Addr9 @& m2 ~- N8 F( U% U, T4 |0 V1 O
      mov    bx, 8" t! @$ d2 B7 F+ }; W- Q" v
      mov    eax, cr0
) Z( ]* q+ M* l* }      or     al, 1
0 `1 N  g1 V; C2 E0 b; x      mov    cr0, eax2 C% S# H7 x2 Z/ O1 G3 @5 _
      jmp    PMod# h. r: ]7 o3 K4 R  I  e  P6 H
PMod:  r- `: j6 M" q
      mov    fs, bx
; c' W& X) M8 \$ t# F$ U      mov    gs, bx6 _% W- N& g( m" j) F
      mov    eax,cr0
& R5 a8 k) T5 ^/ F) P      and    al, 0FEh5 q  j+ _! E  y) s! k: q* l! d( s: \
      mov    cr0, eax 5 U: y5 p- H$ P5 D2 ^1 w
      jmp    RMod
# D2 w1 J( n0 j/ G) D5 j, ZRMod:5 ~! z8 z( L+ B( L1 t; U3 [8 K4 ^
      xor    ax, ax5 B2 n& s7 p. y
      mov    fs, ax
: [1 {# d6 ^! q9 F. y5 M      mov    gs, ax     2 u1 t( ^' ]) B- L' X5 K( n
      sti     ! N$ g+ V. M  b: H# T1 `' G* f
      ret
+ ?; v- @; P6 O) }, Q% u* Ybig_real_mode ENDP
) T! b; ?5 G1 B7 y4 m;------------------------------------------------------------------------------------------------
. N9 U+ t& O$ u* D% Areal_mode proc near2 p. y/ _9 g7 ?+ E: g* c
      in     al, 92h& l. B0 D1 V! E; A& p
      and    al, 02
& y' A) N$ Q; o" G, a( n' T      out    92h, al   
9 t1 D& m& @0 I6 z& s; z      ret
( X! d7 Y3 P+ @! T8 {real_mode ENDP
& E2 H9 k( T! M. E! s0 [# A;------------------------------------------------------------------------------------------------4 N$ R$ F6 W4 c
Get_Commandtail PROC near
' P! w1 s" `6 h4 `* }      mov    ah,62h
/ V/ I* {; E4 n) z/ \6 j9 V      int    21h
, t  L# Z7 S2 G, O; ?4 [( a      mov    es,bx
2 e; [% S) \# I( s- b' P: _      ret
" V( h0 n# O5 o8 e( x  kGet_Commandtail ENDP   
# s8 J+ H6 U: w( B( I" Y8 f) s;------------------------------------------------------------------------------------------------
6 ~6 d& n$ J- l$ Z& l  v( WPSP proc near
7 L, _) U% s" F( [      xor    ebx,ebx1 }  y9 @  b, }3 k8 U' y2 W  s: u6 p
      mov    si,89h
) @- ~; a2 c7 ^5 B: _      mov    al,es:[si]
9 ^2 B1 Z0 ~5 _$ @& l0 ~      call   Change# m; e! Q' G3 q
      mov    cl,4
* S* g  M" O: n( J9 _# [( O      shl    ebx,cl
+ m4 I4 B, U1 q; s. T5 J; B      add    ebx,eax# P) p% Y, G0 ?5 h2 \7 e/ x1 O* R6 P  Q
      mov    al,es:[si+1]
  @( i3 G, Q4 G0 v      call   Change
7 r0 G' ~  R: Y$ R  y6 W      mov    cl,4% `6 B4 j7 ?  _+ K% P
      shl    ebx,cl
( K3 Q' P( m% X: L      add    ebx,eax- k# U/ B. O4 Z! i
      mov    al,es:[si+2]
: v- d% C6 v! }' A4 o      call   Change& |- ]* E8 [1 t  R
      mov    cl,4
5 l% G7 I' z' t1 W; Z5 I) P7 W- c1 q0 Y      shl    ebx,cl
% p9 N4 l8 C# e5 T! n, t$ G$ X      add    ebx,eax' `8 V9 h3 Z  Z8 x7 \
      mov    al,es:[si+3]- T+ {' J/ E6 J2 ^1 F
      call   Change/ u; g7 T8 F0 Z* E6 U) \" \+ Y7 C
      mov    cl,41 m+ ?% K. a/ c/ F% Y: K
      shl    ebx,cl
" k, P! M, |" B' S( G: F      add    ebx,eax
6 U' E" |. d5 D' Z/ C. y  F      mov    al,es:[si+4]
# N% ?/ J: Q5 n2 i7 Y      call   Change
% W) W# T6 S% Z# A* B+ v. R      mov    cl,4
0 x  T3 p( \7 i5 {  Y; K5 M. G      shl    ebx,cl
; r* c9 H" U- k' p( u* S" Z8 U( @+ L      add    ebx,eax
3 r# b6 M& c  G7 X      mov    al,es:[si+5]
+ g8 A3 L: I" x2 G- g1 u+ p/ y      call   Change
# `# B3 K. v/ |" L' m+ |0 b      mov    cl,46 M8 }' k/ X- h, [
      shl    ebx,cl7 y8 k' _0 U; V; }4 d# F
      add    ebx,eax
. ^9 U# q) z7 p9 M      mov    al,es:[si+6]3 s0 h# m$ t2 m% T
      call   Change
+ d' c9 `, P" X& S4 }0 w! J      mov    cl,4
  F! [8 o/ b4 K  ^      shl    ebx,cl6 O4 A6 O9 F0 i" c! I. m
      add    ebx,eax
" z" j2 T" A8 Q      mov    al,es:[si+7]
9 a& Z6 ~' {: d) [% w) \      call   Change
/ Y. [8 q- [/ r4 y) P      mov    cl,4/ N' S2 b5 v3 U5 P2 D- z* e- {/ R
      shl    ebx,cl% A  p: S, j" h
      add    ebx,eax/ r; p7 z, D* Q; |4 u% _
      ret% a5 p+ r$ H- q% v  T+ L. l
PSP endp/ G9 m0 u1 U3 v- F3 H' ]4 g
;================================================================================================$ p7 v  C8 A' g, x4 E: m
DPSP proc near* A/ a8 }: v! y0 c. u) s/ z
      xor    ebx,ebx
: V' r! j/ R: L/ ?7 i      mov    si,8ah1 ~9 b  u" F% r) X0 y5 i
      mov    al,es:[si]! ~) z4 e' I7 e4 _
      call   Change1 v- l5 ?) ]2 ]) d5 Y5 d
      mov    cl,4
; y$ E3 l' ?- I/ {9 R      shl    ebx,cl
* \& g0 G/ g& F3 n$ h      add    ebx,eax$ d& E& K  {* E" N$ f1 F7 u4 ?
      mov    al,es:[si+1]
, o5 A& l% r  S! T% Y* i      call   Change
  o$ E' D$ b3 M  ^- p$ F3 e      mov    cl,45 V. X3 A: @* x. C/ S
      shl    ebx,cl
; P; b% C0 d7 _( Z  t# G2 a4 v      add    ebx,eax1 [) V5 \" U5 k" j7 O& V
      mov    al,es:[si+2]
) r% A- n7 U7 l% g( B# h      call   Change  Y1 `9 c  Q; ^
      mov    cl,4$ Y( U  F& L5 @& [+ e! y4 ^
      shl    ebx,cl9 k2 A  G: W0 U% S
      add    ebx,eax* ^9 K2 s9 v9 D0 [4 Y/ F' @
      mov    al,es:[si+3]
  P& w. R" ?! l! k! p1 q      call   Change
7 z3 ]. G" p6 n! D- e/ m7 p/ c      mov    cl,4! [3 J* N6 X: P- i6 |. C* m
      shl    ebx,cl
( D* t! r, E2 [      add    ebx,eax
3 Y3 D( [* s$ m, l      mov    al,es:[si+4]; j! M. e- P, m7 J$ o5 e( O
      call   Change
+ k2 S. E% u  B      mov    cl,4& Z+ z1 H0 _& x2 B& I2 {+ G
      shl    ebx,cl% E+ Z7 x8 @& `! P/ `3 q* A
      add    ebx,eax
* U1 C# `, k4 a: i3 u      mov    al,es:[si+5]
% h% \3 ^; h' k! M. k1 |( y# p      call   Change
# Z7 L; g& V5 p. l      mov    cl,4
; C8 N" S, V2 t  l( i      shl    ebx,cl- F) N" n4 Y- m; }2 T: B8 j0 B
      add    ebx,eax; G! y" f% _, k0 {; r0 b8 A& ]9 \
      mov    al,es:[si+6]
4 H8 M2 G; w- B+ d2 E- [. P      call   Change
& o+ o7 O: E; O- O, S; R      mov    cl,42 j0 N1 Q1 ?4 X. y6 ^
      shl    ebx,cl
* V6 h  F, x, [% |3 M5 l( w0 z      add    ebx,eax0 o- {3 h1 t" k4 J
      mov    al,es:[si+7]
; b- `- i% R0 |3 u8 T6 E  \      call   Change
$ S" i+ {6 j( s1 }9 n      mov    cl,4- M  }4 A! W5 G7 [' c$ o4 j4 x
      shl    ebx,cl
% s2 J9 m$ f) L# m      add    ebx,eax1 k9 f8 w, H* b) k
      ret
5 v0 R0 A7 h7 {DPSP endp
! V3 o) u, }. V+ `: T6 `;================================================================================================
/ ?" r4 i& a! `( N! ^WDPSP proc near
) w2 _1 M2 A8 k5 v; [      xor    eax,eax
& f' }' X7 t( D8 q+ }5 k: Y8 ~      xor    ebx,ebx
( q, R7 a$ x, Y2 R* E      mov    si,93h1 S3 D" R- [2 P6 V3 \9 {1 A
      mov    al,es:[si]- x0 P9 u+ m& C, K! d
      call   Change" Z0 J0 D& |4 H3 u
      mov    cl,4
" T8 s5 D7 c9 s      shl    ebx,cl  T# @' [% {% P. i8 Z( ]2 p. ?
      add    ebx,eax3 q3 f6 A4 C/ Q8 x8 X6 R  C  B
      mov    al,es:[si+1]
5 T0 G8 |8 \+ l0 I: }" e      call   Change  V" j7 f, z+ T. H. a4 K. J
      mov    cl,4
+ ^- R6 O0 t7 U/ G/ I" K      shl    ebx,cl2 o. B7 g4 E+ V/ ~4 e! G+ O
      add    ebx,eax
" p6 d& C1 V# p$ I8 g3 V8 j! H      mov    al,es:[si+2]- [7 G5 r0 z1 L$ @+ ~5 m
      call   Change
; N- R- |$ [! `& L      mov    cl,4) b  m9 ?+ ~0 G6 u
      shl    ebx,cl1 w' j0 [( t3 W6 L5 t' O( n' o6 |
      add    ebx,eax
" {+ U% B5 F, ~8 t9 q5 d      mov    al,es:[si+3]; b" F/ |" h9 l
      call   Change7 O. T0 u2 Q2 D, A$ ^
      mov    cl,4
; H+ l4 P9 p% f- k' i      shl    ebx,cl! ]% {# P5 ~1 _7 V* K
      add    ebx,eax
+ `1 l5 M3 q5 Y, w( o      mov    al,es:[si+4]
  `2 C; S2 }' D0 e- @      call   Change
, ^1 N) r1 X- y      mov    cl,4* q' C1 P. U# z8 ]( I
      shl    ebx,cl( P" @$ G: W5 z; ^# ^$ @' Q6 t
      add    ebx,eax2 l0 [8 x  F& `! @9 i
      mov    al,es:[si+5]" }9 }6 V# [% h+ |4 J
      call   Change; b! O5 M; w7 F3 S) o' ^9 a
      mov    cl,4
3 [' y, ]  e2 B3 [      shl    ebx,cl' u: y6 H2 T. j' ~7 z/ w2 i# Q
      add    ebx,eax
4 r5 x$ c6 G$ U) o( l/ v      mov    al,es:[si+6]& Z" W- w1 M4 L  r
      call   Change' E2 j% \8 r" S, `/ n
      mov    cl,4
/ n8 `( J% r' q- {      shl    ebx,cl
! S0 {) g4 V; d. C# K" a" t3 k      add    ebx,eax; P2 h6 ]( _, N) }% ?
      mov    al,es:[si+7]) t3 N& q" W* I9 t
      call   Change' S7 w* l$ e/ [
      mov    cl,4) k" X8 i$ k0 W0 w) C; k( I( e" \1 S
      shl    ebx,cl( `4 M: Z, I" ]# l" h. H; k
      add    ebx,eax3 k$ a; n/ o! `. Z9 b$ h
      ret7 B0 Y( j6 R/ m8 m  z' E
WDPSP endp% B+ G! F( O, q2 I: C
;================================================================================================! H1 V# C6 M, A7 w+ o
Change proc near
; P" o7 Q; `+ T! YA:   
* m5 ]* W# ]( i( c/ A5 k      movzx  eax,al
9 Y* w( e% I2 k" s      mov    edx,eax* F3 A& {* @; _
      cmp    eax,'0'            6 D0 W6 O6 Z) D: J: z
      jb     A% _$ c) D) O& w, C2 [8 V& I% e
      cmp    eax,'9'            
, r! l2 K' m* l      ja     B
4 m5 T1 I, @" d3 ]1 q% @6 z      sub    eax,'0'0 I6 d6 U/ K  a5 e4 g1 R6 b
      jmp    short E
+ U* z5 k$ N, e4 u9 k) W. K" G) [B:
# D! L, C- h, e2 D! c7 N      and    eax,0dfh           
0 s! `! ?3 t2 ~- P6 X! N1 N. R6 q      mov    edx,eax+ P& b- X( R8 k) k+ u" u6 g! ]
      sub    eax,37h            4 I. h+ @$ M4 D
      cmp    eax,0ah
7 f0 B$ Q0 ~/ U: Z      jb     A                  
3 L2 C6 |4 K, W0 n0 }# U      cmp    eax,0fh0 g0 d( G9 X* t  c  P$ X: o
      ja     A                  * }+ `, L3 ^' _$ l5 f
E:
2 _) f3 r0 a" f* c/ C/ S" h      push   eax      
. d: o( f9 e7 w1 o+ o/ @      call   PRT               
; W4 T$ P) w: v, q      pop    eax
$ g! \" ?9 {5 T3 ^6 UCExit:
0 C; [# v9 `" `5 T1 y7 V' L      ret
7 O. L" E) U7 \  ^Change endp9 ]* `, Z8 I1 B1 y. ^
;------------------------------------------------------------------------------------------------
; W- t& W. x: l$ @PRT proc near
: ~6 y; T9 x) u! ?. X% W. P' O      mov    ah,02h9 `/ M+ u4 T" ^; u
      int    21h% H9 C5 K& ~( N$ N: z) r: u
      ret
  m8 K0 W/ \% o0 @PRT endp) ~# V* }' _3 ~
;------------------------------------------------------------------------------------------------: n# x) i8 t! m: w* J+ W% y
crlf proc near$ @# ]9 G% w$ T" L4 o2 z
      mov    ah,02h% }+ {4 T  C. d$ U+ N- k
      mov    dl,0dh
0 x% L' v& {6 @9 S! l      int    21h
. `$ J3 ^: x( ~, q+ Y8 d% i; Q/ F      mov    ah,02h
* \$ I9 ]1 N% a+ p      mov    dl,0ah
! d" M0 q+ o! H$ H* E8 Q8 }/ E      int    21h
7 G5 e9 O0 X) j  L0 e6 ?7 s      ret2 z5 B0 t( k: d) C; h+ ?
crlf endp2 K3 i3 Z8 c$ [) _; g
;------------------------------------------------------------------------------------------------7 T' S) ]0 [; F( ?
_32bits proc near- U# N7 \; _$ M: W2 X
      pushad( E8 u% I7 L  r( A: _
      mov    cl,4
7 Q# Q3 N6 ~+ m      rol    ebx,cl
+ d3 |. z( \. R4 J* N$ V      call   print_4_bits; d  a# T- @! V+ Y% l
      rol    ebx,cl/ a" `5 ~+ |* {" H/ Z
      call   print_4_bits
2 u' f! o0 m1 `$ m      rol    ebx,cl
+ \8 H6 h3 ~8 S      call   print_4_bits& r0 o! Z0 b! t7 T
      rol    ebx,cl' I/ u; Q/ h0 `7 x) d
      call   print_4_bits
& N$ `. p3 r1 }  o( E9 e) ]      rol    ebx,cl1 F- E, W: p# q- l; p
      call   print_4_bits* P! ?6 ]( M* d5 J6 r3 I
      rol    ebx,cl6 P& f$ o- C' G" }6 n3 L  q. W
      call   print_4_bits
! |3 U1 x5 R; Z4 ?* W      rol    ebx,cl
; E  w$ F; u* A6 f' Q6 w8 C1 D; C      call   print_4_bits
% R: d% i6 ]7 G% v# o5 `! y      rol    ebx,cl
0 _7 ^5 [, U! \% U      call   print_4_bits
' X+ ~3 y8 f. v8 Z      rol    ebx,cl# l! O7 M2 b  G4 b
      popad8 ]# ?( j( a- I1 Y# I
      ret
* M" Y& W5 d) W7 N$ N_32bits endp
, R  K# Z. q2 e- r+ E2 M# ^8 H5 y;------------------------------------------------------------------------------------------------6 q7 c5 S& c9 Y' ]& T/ k% p$ ]- o
_16bits proc near
; v" c" ~& g: [: f9 i/ W8 ~      pusha        ) T' N5 ^* M& [& D3 @# Q( ?2 G
      rol    bx,cl
3 x& h$ f- ?' w/ |      call   print_4_bits9 u" x( ^! \7 J% {6 x, J
      rol    bx,cl2 c, l- a, F( M  w' D5 h+ Z4 l
      call   print_4_bits
" m* w$ ^# e  p+ X, i      rol    bx,cl
/ b8 V# z& h# H/ {& i      call   print_4_bits! s/ `6 m& Y# z8 w( X
      rol    bx,cl
. J5 E: f! B7 g# T* H      call   print_4_bits* l' P4 a+ Q. [, @0 _" O) B
      popa, v0 U: R0 Z: H9 I6 C
      ret
* X" A" O# g( m& |% g_16bits endp
+ W2 {( p& P- U;------------------------------------------------------------------------------------------------
1 E7 P" l" c) s_8bits proc near8 p# W% F* W' z9 t
      pusha        ; f) k" |  B+ R* t9 h6 V! ~
      rol    bx,cl
& _% E% P, {2 N# A2 J$ J      call   print_4_bits! T* p! F* ~6 N' o
      rol    bx,cl3 M- F; E5 ^% ]) ~3 r
      call   print_4_bits
( B+ y' T8 ?/ ?      popa
' M( P- R: O" d/ o$ C7 X5 X9 M      ret
' H/ r) e) {8 {' D_8bits endp
" E" ]9 d' A' ~8 Lprint_4_bits proc near
. _( F+ n7 H9 ~# H+ E      mov    dx,bx) `6 ]2 M0 t" E6 ^) p1 W
      and    dl,0fh( X. L: T3 l5 R1 e9 I' G
      add    dl,30h/ y2 l4 Z% o. ?- L8 _& }
      cmp    dl,3ah- w' ?! w: _- e5 ?- S$ |
      jb     print0 L! B. [2 W" s
      add    dl,7" X0 Q3 X2 O( F4 p: {. R
print:  9 W+ N, a8 Z6 {+ v
      mov    ah,2, ^# E0 V9 t- Y/ `7 _
      int    21h
# M: h7 C5 _: C$ [/ ?7 d      ret
, A4 N4 n! s4 `& C/ s- Fprint_4_bits endp    2 n, ?$ R% |/ G
CSEG ends# N6 L0 `8 {6 v7 h" V: ]
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-7-22 00:29 , Processed in 0.060752 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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