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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)
3 F% T2 L, \/ ]' U. @$ S; C# n$ x3 K# p8 }' t& g$ {
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
$ L$ N. h, c9 Q% l& v: V# `( W' a) \& Y% S
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  6 z- B' K2 w; _5 R- G0 E

" R$ y# \7 f4 [. e.model small+ k0 ]. T# F) h6 D. G* S
.386p: t' h& r) W, D, B* \2 H+ h! w) L
DSEG SEGMENT USE16'data'
2 W; g5 S2 V" ~. V! Z6 T/ M2 k& H! ]& m' t5 n
DESC STRUC
3 ]3 P4 ~) X/ L4 j# ]: w     LimitL DW 0 : j2 Y9 l% Y) D4 N
     BaseL DW 0 # l. r3 e0 v/ h: g8 z; L
     BaseM DB 0
1 _: G6 B6 o8 e$ d  y     Attributes DB 0
& c9 |) V4 Q/ ^3 X/ O     LimitH DB 0
# X) B: R( R( p7 B, U# v     BaseH DB 0 1 Z; C3 j! r7 z- X
DESC ENDS% R5 v, V5 t9 p+ t$ R7 }" X

( G/ D( k3 S* U" A% x7 S0 A3 Y' H. a3 JPDesc STRUC
( J1 @; |# L' n- a! r     Limit DW 0 8 L+ ^; F9 G4 L8 A8 }- ^
     Base DD 0 $ R0 J! m) i1 t7 r- `
PDesc ENDS
" J1 l) u; ]# _' [( V/ s( u
3 G" a. ~& @, UGDT_def Label Fword
2 R7 d8 M9 n, s' dNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
) ?9 u6 E% `0 @7 cData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
4 e9 y, `& j( e5 E9 H( r" DGDT_Addr PDesc <$-GDT_def-1, >
) ^/ ]( @" H. |0 E4 y& O# k# C; D
) z$ J7 i* g8 l9 e+ oMaddress Dword 0" l4 p! R) K) x
; {1 O5 u0 n" h& J' _- y
DSEG ENDS # I# M4 C2 g  z$ k4 ~
ASSUME CS:CSEG,DS:DSEG
$ r& F/ _; k3 [6 d$ G8 A+ z0 f/ P! H
( W' P+ z+ l( N. X6 {$ g4 `CSEG SEGMENT USE16'code' % e) S5 q( l/ \+ W1 {# Q1 b- _
      push   ds6 H7 q( U. d1 [- T
      push   es9 T' B3 d; p$ v% k1 O2 l9 B
      push   fs4 k6 f8 n, T( K+ ?
      push   gs
' ~2 Z! I" Y' u# M; b2 w" x$ a. k      call   big_real_mode     
2 ~& [" M/ R( r- T) g      call   Get_Commandtail
7 ^7 k1 Y6 N( A- m3 i: A* S# Z      xor    ebx,ebx
8 `0 ^+ I$ w) Z2 d$ ?, O( y8 {0 ?- L      mov    si,82h8 G- F" T& \0 V" M: \0 E& u+ m
      mov    al,es:[si]
8 J+ R, Q: ]$ r/ F6 j8 s4 j      cmp    al,'r'; i  C. U# q& l, z
      je     R6 K4 ~0 X, V  v/ y
      cmp    al,'R'- H6 E) i8 Z, Y/ ?; X
      je     R
5 l4 A7 M& _- E, ^5 K3 H      cmp    al,'w'
6 Q! i- x* S: }0 c8 H) a! ~      je     W
$ ?. I: u7 u( {5 N9 B      cmp    al,'W'( G: r- }, @* H/ n7 M" d! Q4 n& \
      je     W          ) O  F- `, K/ v$ Z' E/ G
R:
' O/ m3 V& ?! H/ j$ g4 O  r      mov    si,84h
2 n5 D& ]( x: U' X; p9 S# t      mov    al,es:[si]; g& {: B9 \$ \
      cmp    al,'b'+ N$ z4 x9 S. L) P, l; D! I, u
      je     RBT
9 j3 }( @% Q, L5 b0 S: X% w% ^9 }      cmp    al,'B'
& z% X8 P8 @* W+ S( u6 U      je     RBT* w- ]* ]4 l- {) t8 P& `1 e1 p/ _; i
      cmp    al,'w'
" d& {! b2 ~/ o1 H& }4 L5 D      je     RWR
; E+ A) l3 j& C# B, T+ ~# |* m      cmp    al,'W'1 ?* I2 P% `) f# \8 m9 g) Z
      je     RWR
0 d7 \: \8 f/ F5 m. X$ A4 N      cmp    al,'d'
( R6 x7 H6 k6 [, N) t; L9 g' |      je     RDR# D( P3 @2 c0 s) ^. X' D
      cmp    al,'D'- \" u9 ~3 F2 b  D1 V/ C3 [
      je     RDR            
0 c6 l( y# y3 U  \7 r" ^" }W:      
' g/ a* q& f' n7 J' d: I" ^      mov    si,84h
$ g. }; q* S) G7 M# P5 Q% `' [  y      mov    al,es:[si]
1 I% g1 c5 j: {+ U1 P      cmp    al,'b'
+ ^' v. l2 R6 k1 S7 G: g      je     WBT
# I( a/ a& G8 g9 Y      cmp    al,'B'$ m& S+ x: A. D- g9 P
      je     WBT) X" N0 N! m/ H6 C
      cmp    al,'w'
6 R7 y7 Z1 p3 U& R- _: n1 z      je     WWR
5 @, [' z! `8 o' |+ z      cmp    al,'W'# w+ \2 s" S* r& D7 W3 C2 \! i; O2 F6 e
      je     WWR
' r( T$ M5 v2 O, M2 Y1 M* v' a      cmp    al,'d'
) j' c( l: B. P) A      je     WDR" {$ V) [9 I; R- H, X
      cmp    al,'D'4 r8 k' s2 J% n+ D/ J8 S% O
      je     WDR1 _! A9 I; u* F& y# u
RBT:
! B, s' [9 u7 j) J% {. Q3 s8 O      call   PSP        : E0 J% q' H! ^  f" I0 F- m9 L
      call   crlf           $ e9 ?/ r# K  i; |
      mov    esi,ebx
& R5 f: H/ T9 K* `1 ?4 }      mov    eax,fs:[esi]
& b- _  ]9 A$ }5 E  K# b2 a      out    80h,eax2 x3 B; x1 N4 a" h5 q( e
      mov    ebx,eax
0 V- N7 @% F' \1 a      call   _8bits
5 J6 g0 y9 w2 T$ q: L4 E7 a      jmp    Exit
. F5 _4 r; M' \5 x' g: LRWR:; ]/ `8 E' A% x- T
      call   PSP        
8 @/ k4 w" M- m- U9 p      call   crlf           . [. m9 q8 U9 T8 a1 s/ S/ a
      mov    esi,ebx; y; e) F; I+ b& R# r' X
      mov    eax,fs:[esi]
9 O1 r* O) D" a6 c      out    80h,eax
0 v  L; L- O7 S. S6 C5 ?      mov    ebx,eax
% d) Y& V' M4 a  }9 N( j2 U' ~      call   _16bits
. n. a0 f/ i7 u: z: `      jmp    Exit! W; b! N  V( G$ c; o: g& _
RDR:
2 B3 ]8 a  W6 u# b1 G      call   DPSP        3 h9 T& f+ \! K# H
      call   crlf           1 E2 _6 O( U& ~1 l
      mov    esi,ebx
) }- ]. Q; F- P7 Q! w      mov    eax,fs:[esi]
8 R1 j3 `- p% w' H3 f1 j      out    80h,eax) w- b' R5 J8 R( Z2 Z: H  l
      mov    ebx,eax
+ }1 r( F8 [$ d0 x( N( O( `      call   _32bits
9 v0 x* \# I: a: L% O) p4 t) R      jmp    Exit
0 P9 ?4 l8 ^; E4 G8 r;------------------------------------------------------------------------------------------------. U9 @. T4 x" V
WBT:
5 E  C, |4 s. F3 U# M      jmp    Exit
: ^7 A+ L+ C4 bWWR:
; h  p8 Q+ |) k" O/ m      jmp    Exit" h8 ?, H$ _' L; `. p9 h
WDR:
7 ^" M0 ?( u! |5 ]      call   DPSP
( e, m5 D$ U) X( n7 ^      mov    Maddress,ebx      
4 T% ]$ k" U/ G7 W& b      call   crlf
% N: s4 U7 o8 [% d# i) [+ Z      call   WDPSP, }' `( Q( h( v1 ?! f
      mov    eax,ebx' d' O& S5 A1 x: j8 H! ^
      mov    esi,Maddress         
# @# T) L' U( A) s( m6 Z      mov    fs:[esi],eax
" Q/ H. K3 F% |* j( ^4 s      out    80h,eax
; ^2 q' ^2 ]9 Y2 z      jmp    Exit5 |* V+ m* @" K3 _/ H; l1 S2 h
;------------------------------------------------------------------------------------------------       ; h! E# k5 m, ?0 V: I  I% C9 I
Exit:
- H. }5 Y/ d& u      call   real_mode     " c6 M% x  ?& b# _1 \
      pop    gs. ]# a  S4 W3 B
      pop    fs, q8 |0 c: R( a' q. x
      pop    es& e- o) U& i  p0 W
      pop    ds       4 O$ c9 j' C4 H7 [: I% [. L7 c; A& Q
      .exit
3 W  o+ z+ j$ X2 t;------------------------------------------------------------------------------------------------+ I* `6 x* Z) P$ O6 B# J( E7 }' l
big_real_mode proc near
9 P6 |7 T( Z& C/ @$ B. ?: U      in     al, 92h
) [2 [- {! \8 u6 _      or     al, 002
, v0 a  {' Y! ]' ]      out    092h, al5 v* T6 S8 G4 R' I9 \/ C
      out    0edh, al/ Y8 q4 V' ]' w5 r% `
      cli. p+ }1 d/ E! x! {
      mov    eax,DSEG
' ]: ~6 x! s$ ]% o' v6 a      shl    eax, 4
5 L  {% {- v' w  q" w7 X      xor    ebx, ebx
& T& ~" z! ^8 [# F      mov    ebx, offset GDT_def% j7 y# j. n: \, f' J
      add    eax, ebx
0 ]; @$ r( c4 o: p% R      mov    dword ptr GDT_Addr.Base, eax
- R6 A- m, @1 K; p      lgdt   fword ptr GDT_Addr
# P  {. c& F( R      mov    bx, 8
* F3 Y* f- k' g+ G. B; u      mov    eax, cr05 z# E* p6 t) m4 Y" B1 j0 Z& h
      or     al, 1, ?& }3 ]2 z# c
      mov    cr0, eax: U9 u- E* Z) f! U/ R
      jmp    PMod
: `4 |/ }. O  i  {5 P0 w, hPMod:0 S8 b# s% e+ }
      mov    fs, bx5 w; G* Q$ p. P* B3 \  X0 {! y1 ~
      mov    gs, bx% Z+ h  [7 P" H2 j
      mov    eax,cr0
, D  @7 v& m8 W1 D0 K) `% f      and    al, 0FEh' f4 k& ]7 k0 Y4 m) d/ P
      mov    cr0, eax
% l2 B/ {5 r; r% d; L  X      jmp    RMod
( ?) ~$ }- R7 |) e7 J3 n0 }RMod:
( F4 b2 C/ V4 G      xor    ax, ax- L, g& P8 N1 Q6 B) R1 J
      mov    fs, ax+ P: y$ F. u( [/ C
      mov    gs, ax     
) ]$ R# i# N& H$ ^6 ]% O      sti     ( d3 g4 I6 ?$ P9 O; a- p
      ret
+ ?' |9 Y! B, z2 e& f5 A5 |* }big_real_mode ENDP7 }" h+ H* i* E& G8 l3 {( L2 y# v
;------------------------------------------------------------------------------------------------
/ M" s1 H5 m3 _* [real_mode proc near! B0 g% G' `9 t5 n' F
      in     al, 92h1 |6 _  U" j2 r8 p/ ~! y% L# R
      and    al, 02- P, w, j  H/ `) Y9 K4 C0 ?
      out    92h, al   
& w) H0 k, R# i* h' ^, D- a$ [$ p      ret# D' J; @% [& I7 o# s
real_mode ENDP
8 u6 x( w) E3 d" e$ m;------------------------------------------------------------------------------------------------
. p# u; d( M. @9 j+ PGet_Commandtail PROC near
) ]  Y% H5 B6 ?2 }- H( _; z      mov    ah,62h
: X' V0 i, t4 A3 |1 J      int    21h+ \9 O& B8 `' {9 r% ?4 D
      mov    es,bx
. {# n5 |& C" c1 d! Y5 ]      ret, c5 p' }0 B/ x* t; c
Get_Commandtail ENDP    ! N* l2 p) P$ Z9 f$ C
;------------------------------------------------------------------------------------------------
- }6 c- C) K: N4 f9 h$ @$ N% y+ g' @PSP proc near" O% i& u2 W7 a: X" ~
      xor    ebx,ebx& U* w: E6 P7 s: L" S% ]7 i1 |
      mov    si,89h; n" b! G# [; H5 c8 c; v
      mov    al,es:[si], B4 f$ o% D% k$ y, k
      call   Change
  N, ~$ j  U7 a8 t      mov    cl,4+ B6 Q) r# w1 p& Y* c& C
      shl    ebx,cl* T  ?8 m2 l! ~6 ?- f" r( O
      add    ebx,eax& z- h7 \$ }. i8 R! m. q
      mov    al,es:[si+1]
' E2 p1 a( K8 }2 ~  k      call   Change
7 T# x. H" f2 Z: u) d      mov    cl,40 Q3 d) p  |. p2 {
      shl    ebx,cl
6 H  n& F, W* G/ L/ g$ ~5 ~8 ]+ K      add    ebx,eax$ k& B8 T( b2 n4 @  R9 z$ t
      mov    al,es:[si+2]
& F  e* F3 h: q- E; u      call   Change( ], O3 s" a, s: ]
      mov    cl,4# L* }2 z9 d5 \' [% L- j
      shl    ebx,cl
( e, I. h* N# {* l7 e( B      add    ebx,eax: u" e" J, G1 T" m* u3 f8 l
      mov    al,es:[si+3]* s, v2 v+ p5 I- I$ R; N, n
      call   Change4 i" j( C6 [: f
      mov    cl,4
3 ~6 N% q+ ~+ J  u$ Z% K; D& f* X      shl    ebx,cl6 @& w/ l+ z) g% p4 b5 J8 N
      add    ebx,eax6 }6 k+ T1 V$ m$ J. ^1 E$ @1 G
      mov    al,es:[si+4]
) D5 C. k! P% v5 I, s' t      call   Change1 F. a( U' P; L( K& |/ L# v
      mov    cl,42 X7 w: b+ L  w) v$ X; V! L* i
      shl    ebx,cl
) ?! S$ d* S, G$ ?! O6 [& |      add    ebx,eax3 m  T- i4 f( M3 V
      mov    al,es:[si+5]- c$ o& `4 m3 K# O) M! i( ^
      call   Change
7 m+ J: y6 g6 a- @1 |      mov    cl,4
5 L1 j. k0 e  W. j5 G6 |# D( H3 S& _      shl    ebx,cl+ Z# f' @2 N5 f* E
      add    ebx,eax
! U- |% C4 k8 l- K9 d      mov    al,es:[si+6]* f- q6 l  O0 m9 i+ y
      call   Change4 Z. H+ c6 f: y" s7 T$ Y; ?) n
      mov    cl,4
0 Y% W9 k$ A( m( y      shl    ebx,cl
: l# @! k) U( h: I! D4 p      add    ebx,eax
& m' t7 e6 f, L$ d      mov    al,es:[si+7]
2 M6 G! ?; t- A) T! w' n9 M1 L      call   Change) g6 n: V2 O- W% N1 d2 e
      mov    cl,4
, S& ]. v4 J% B0 }3 |% z- b6 q      shl    ebx,cl- F/ ?; H4 _* M3 n4 |( c: s
      add    ebx,eax( }8 K) W+ S1 a5 C- l
      ret" q; N4 K0 C' y8 |* ~5 C7 m" P. |
PSP endp
+ t1 u; T' R9 l5 {( {% r7 z& Y;================================================================================================! E. q  G, U% W4 B9 @: Z1 s; D
DPSP proc near! x% O2 N  B& @- X
      xor    ebx,ebx: f! }! Z: G' b* @1 I' `1 _
      mov    si,8ah
, B  v( [6 R( m      mov    al,es:[si]8 X: h* r. c5 ~# D
      call   Change
# a- r7 @& n' v, K- {      mov    cl,4) k9 S' b; I1 @3 d; Z  @% w
      shl    ebx,cl
: u/ g. ~; ]& s! Y$ F      add    ebx,eax
5 {: c- V9 q( R. S5 ]8 n1 t      mov    al,es:[si+1]
% _! @4 b- R  h      call   Change
5 U# [% k# l" z7 C. k  W      mov    cl,4/ Y' r+ Y! B# w! n
      shl    ebx,cl+ ?0 O9 o9 \! z& B$ f: k  `
      add    ebx,eax( H# D4 n/ e- t0 Q+ Q$ }
      mov    al,es:[si+2]/ L, `  ]* ~* N) @. y! B
      call   Change
' A9 g( t& ]7 ^* \      mov    cl,46 g5 c/ A' o7 s: ~, A. u& J7 V
      shl    ebx,cl- X" @! l4 C& O4 @
      add    ebx,eax/ s- u; x: ]3 u0 g1 r# A
      mov    al,es:[si+3]
( O& T/ [( b0 Q7 E, v9 X      call   Change. e5 j% d! H5 }+ P' u/ Y+ S
      mov    cl,4
+ i* n% F' }: U+ Q      shl    ebx,cl
( h5 [9 c- a$ B# X( w      add    ebx,eax
; g3 [, Y4 l' d6 p5 G/ m      mov    al,es:[si+4]
( H7 D- ?6 B# ?9 g0 Q; g! R      call   Change
- `( w" K. F/ Y7 ~) L      mov    cl,44 `% ^- B4 M5 s* h2 v0 s
      shl    ebx,cl
2 S4 S% C% h; M: E1 u3 {- L# C      add    ebx,eax, ?" N/ W5 B( U4 b& Q
      mov    al,es:[si+5]
5 z; T& A( y+ ^1 ?6 ]9 H$ A7 N      call   Change4 J  U/ `- D$ G  g' k1 ^2 ~
      mov    cl,4
. F; u7 B' D0 g& p" @      shl    ebx,cl9 W, Y- g: D$ I5 ~( W
      add    ebx,eax
: _" @! L2 t+ b0 T5 \) `5 d" g      mov    al,es:[si+6]
3 U; s: ^1 F% P! V- g      call   Change
& d$ V) t( x8 v' x  [" B! t      mov    cl,4
1 W# j( J1 i" r      shl    ebx,cl
4 L* w3 B1 r0 g* R  r      add    ebx,eax
' }$ u" l2 a* ^# ~* Z  H      mov    al,es:[si+7]
0 M( \) q' Z6 L0 e: q+ ?      call   Change1 V  Z4 a" X# S3 ^0 e
      mov    cl,4$ L9 [9 X4 s3 w" c  z8 e
      shl    ebx,cl) O- [; K1 `/ a7 q4 x& K0 P5 B6 S
      add    ebx,eax
" B( C2 C$ l) h7 ?! Y7 t      ret
! }' K' R2 S4 B! l% o7 fDPSP endp
1 I; J% A* ?) U2 n- |" Q;================================================================================================
& d- h) w6 l% L& pWDPSP proc near/ D. Z% u9 j8 |0 U% o& e3 s, G
      xor    eax,eax
2 L3 L) }+ x* i, a, @* V      xor    ebx,ebx7 n8 Q" J+ h+ \9 ?6 Q0 _% t# N
      mov    si,93h
7 A; c1 C% b' i' P      mov    al,es:[si]
% O; x! V5 x: ?8 y$ d- ]% H% n      call   Change7 f& I) W: w) Z4 f
      mov    cl,4& }  |& L* {$ V% P
      shl    ebx,cl9 }9 h% D4 R& {8 ]
      add    ebx,eax- {, F; u3 p5 G7 d. S0 c
      mov    al,es:[si+1]0 ^) H3 D/ x- o$ L7 c& n8 @" t5 G
      call   Change/ O$ v( ]5 _; s. b+ c8 F, a9 G
      mov    cl,4  S4 Q  _2 v2 y# u" x
      shl    ebx,cl
8 W- o$ V1 ^& q1 S" s      add    ebx,eax
2 Q# v( \: d5 i3 d/ T0 N      mov    al,es:[si+2]
: g, |- |" ~9 ~* K2 Q4 Z% l6 d7 q7 c. S      call   Change$ S6 A& ]0 \/ p; Y" M5 q
      mov    cl,4
( t% g1 i) n' a2 z1 ~9 H8 a1 j$ R; N+ o      shl    ebx,cl4 M3 a9 Z; Y6 L, ^
      add    ebx,eax# D6 L4 ^  f2 A& k
      mov    al,es:[si+3]4 F/ [) u. ~: O8 ?
      call   Change+ k2 R# J2 ]! f, i) G1 w7 j
      mov    cl,4
. F* [' J3 |6 x. S      shl    ebx,cl
8 K2 ~7 D5 D  r      add    ebx,eax6 x3 t6 O& c5 J$ q9 r8 K( D# x8 {
      mov    al,es:[si+4]4 T- ~0 q  N5 R- n$ }8 _# P) P
      call   Change, J  E* A$ v! p/ _0 {0 A8 U/ O
      mov    cl,4. \$ N1 _+ ?6 s
      shl    ebx,cl' U) _1 W1 ?$ w9 }
      add    ebx,eax
( l# E, W# O5 P( u$ m# R- b      mov    al,es:[si+5]! U! t1 e6 u/ b1 z
      call   Change
' \4 I3 b" @2 v! V9 {# y- M      mov    cl,4
; J5 w/ u4 J$ y& W6 |      shl    ebx,cl# Y  ]# W5 k$ g6 u( K' F$ I
      add    ebx,eax0 G" G: d- O+ d( J
      mov    al,es:[si+6]0 X* `9 L; `9 p! J" Z  u8 N
      call   Change8 t* S6 A. T( w: d# J
      mov    cl,4, U) w" _0 a' w2 ^. ?( H  P' _
      shl    ebx,cl
# Q2 U: o, K* F- C$ b, }      add    ebx,eax
' m! B4 P  i' `" v+ }; Q      mov    al,es:[si+7]1 {; w" ]; t8 T, l- Z) ^' x" K  y
      call   Change
+ K) G" q" O/ U- ^0 S! m9 g( r8 k      mov    cl,41 y; u5 Q( E' ~7 A2 _" W
      shl    ebx,cl
: e% u. \$ o$ m+ Q5 C      add    ebx,eax' |: V/ ?" W+ U+ B
      ret
4 }6 w; x" O7 w% ]  \: CWDPSP endp1 t( _$ _4 p6 p& U2 ?
;================================================================================================
) O6 b: H3 \, S) A9 V& f/ n6 s0 s+ {1 ]Change proc near9 U" L9 ?; w4 G% a( e
A:    6 B$ f% O: [  m" K
      movzx  eax,al& j" W( L$ c" Y6 _
      mov    edx,eax, H+ z- i( z0 h
      cmp    eax,'0'            # U7 R# w+ m- s% _* m
      jb     A
1 E; {* L% g9 S. S# V$ `: u4 h      cmp    eax,'9'            
) S8 T- \: D% c0 d" w- N. X      ja     B
( E, u6 ^5 M* C8 ]4 V      sub    eax,'0'
% ]; R+ s4 Y: |$ V( y      jmp    short E
" a/ l$ b* G6 [) X: b2 c! T; v$ LB:
, h* [. h. s) S4 J2 j: ?      and    eax,0dfh           " }+ S4 F9 G: O: U! o
      mov    edx,eax
7 k7 z* ]( t# D* d' A% d" [# J      sub    eax,37h            ) H# x2 |! M2 A( R3 G6 k
      cmp    eax,0ah
% F! b- D- P8 L% ?5 P4 F) A      jb     A                  
* }( v- p& ?1 p      cmp    eax,0fh
( o- ^1 P: l# B* w5 O      ja     A                  
6 O% e# G+ @2 e4 ]. P4 g- SE:
5 E- K1 F, [2 }/ S      push   eax       " s: @# f$ r& p# O# L
      call   PRT                2 [0 x7 Y7 x5 b. }8 G
      pop    eax
% e7 M/ S! p4 r& o- UCExit:/ N9 q, \) N3 c' w  n3 z4 O
      ret, Z& Y. T# `* x/ x
Change endp
) s* G( I8 h/ R7 N/ G& p& l: H;------------------------------------------------------------------------------------------------- c4 A/ m% b3 K' @
PRT proc near" k0 {$ ~* ^2 F, U' _1 }* }! X0 i1 L
      mov    ah,02h1 f0 n- d$ `2 t) C. r& x
      int    21h
: X& @5 _0 _9 e! \      ret" Z8 ?; m; P  L, D1 h' a. e" \- ^
PRT endp  |* n& O. `0 N# O
;------------------------------------------------------------------------------------------------
1 V4 x  w& ~: ^5 b6 ocrlf proc near# ]( b5 `7 R. P3 L
      mov    ah,02h
9 L# [. R' c; ^/ W# V      mov    dl,0dh
8 M) d2 h  `7 g* C9 A' j      int    21h2 z6 @& j9 o, r
      mov    ah,02h
  G1 z" c' d* L* R% |      mov    dl,0ah
) D" b' f( X3 x; ~  A  F+ Z      int    21h
- b) Y' j  t- N      ret
- ^& Y; b$ f4 i2 n5 Dcrlf endp- ~2 ]2 }9 f+ h: |
;------------------------------------------------------------------------------------------------  Q0 R1 c; E6 H2 K
_32bits proc near
' a6 ~- f+ }2 ?: v. H) D      pushad2 F1 B  A# S3 x, M" o4 D( d
      mov    cl,4& g7 H# h, ]/ L( m6 O7 q
      rol    ebx,cl
7 x) W; ?* q$ F& w+ ~+ o      call   print_4_bits6 D# b0 z, M& I) s$ r7 h
      rol    ebx,cl
" ?2 j6 z4 x- ~" w      call   print_4_bits: M9 N5 V" q! |; A! c6 i; d
      rol    ebx,cl2 g9 C1 c- s% G" j
      call   print_4_bits
3 V* i/ i- V" ~      rol    ebx,cl
, K2 t! Y+ ?4 r$ |      call   print_4_bits7 a5 v7 l, j. U
      rol    ebx,cl. G- F6 p  Y4 z6 I- K3 y/ j( n
      call   print_4_bits/ g9 R7 w( q! o) ]2 Q% c' ^1 h
      rol    ebx,cl2 s# M' [, D  c1 p5 Z, ^9 K
      call   print_4_bits# _$ t, P3 `9 c! B, v, t
      rol    ebx,cl
* V. s" ]7 J. F+ I0 F: ?      call   print_4_bits
. V. S  O4 N  A; e8 W% Z5 |      rol    ebx,cl
( _3 z" l" {6 L4 m      call   print_4_bits4 \. S! E- J0 o( p) ^# S* @
      rol    ebx,cl: M. L: i! e  l4 l2 ~- y$ H
      popad7 n! x  S2 d* o( L0 b, U
      ret8 ^1 P' f& m  s0 N# u
_32bits endp
* g8 w, ?& e+ ~;------------------------------------------------------------------------------------------------
, S, n$ f: |8 V; F_16bits proc near
9 i" ^8 k7 E. F3 K2 q- q$ J& t2 P# I: z      pusha        6 d' a1 M$ n- R) S+ }$ K) f
      rol    bx,cl
  g# w! |" y% C      call   print_4_bits+ Y% |$ G( m) v% R7 X. P' y
      rol    bx,cl1 Y" r( I  q9 x4 {
      call   print_4_bits
! Z9 _9 ~5 w0 C! I6 g      rol    bx,cl- H* c% C8 W( ~, k: A( j
      call   print_4_bits
. U$ N2 V7 x5 E) h& l      rol    bx,cl$ m) J1 k1 @# ?0 h2 [
      call   print_4_bits
$ V9 X# {( S! G; o4 B      popa
) e% D6 Z2 W$ d& e6 d      ret
3 z% T/ l( R# M1 z_16bits endp1 y% I) p% H( |, j1 }
;------------------------------------------------------------------------------------------------# w& p  i2 X) s
_8bits proc near
. z$ s& T9 n' C* s; ?4 q8 G! |- R      pusha        . ~2 \' @; K! ~! \' g/ R
      rol    bx,cl
2 b# n- q, T: D' ^1 ^3 a      call   print_4_bits
# E+ [; S# C: T+ L: U, x; w% D      rol    bx,cl. e- j% B& d& g- |
      call   print_4_bits
! u" G7 Q" d5 i" N' p      popa
3 a- w, g5 O: u  y5 \! t: _      ret% [: T) x/ k$ w) t) ]0 ~) {
_8bits endp
* ?  y! Y6 y( E# }. ]print_4_bits proc near
! b% d3 J: c3 t5 \1 p' L1 `* e      mov    dx,bx
' L# e6 D6 x3 n( A) L      and    dl,0fh
& Q. ^  h# c) j, G  p9 @! V& B: E: p      add    dl,30h
1 G4 ?9 [) S+ h: t& b      cmp    dl,3ah
& V; F0 t9 C" f# [. i( F      jb     print
& `; X) D4 F/ @& Y) z" k      add    dl,7
6 e3 R& A. p# O5 Q9 x' Gprint:  
/ X6 K0 z4 Z) N& e; n  K- P      mov    ah,2
' u4 Q0 Z7 \9 m7 G) Q      int    21h
5 N+ j* y; H- B% Q5 u9 x      ret) y3 O& Y. z  G$ D
print_4_bits endp    9 ?$ f  c+ `$ N. r- q. j  Q" [
CSEG ends
7 J6 Q, j6 i- m5 d7 mEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-2-1 05:38 , Processed in 0.086466 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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