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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)& `: K& V- y, K
1 w  y, a5 C/ z: }. d! @
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
5 W! N% E7 D" d# T9 d' i
7 t$ e" K% V. @2 V宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  9 }' |& L+ s7 g2 Y

: g4 O+ G" ~# d4 h: ?6 T/ Y$ Z.model small
/ d* a4 T' C/ x0 }  q" h8 N' t.386p
) |- H; B8 F" k: YDSEG SEGMENT USE16'data'
# f9 _, R) W! N5 }. |$ g) Y
4 M, w: ~: a/ m9 }/ N5 XDESC STRUC
+ S# @) r! R7 v# A6 {! w     LimitL DW 0 % Q% j8 |! G7 g$ e
     BaseL DW 0
" @' N6 S3 \' t% G( Y  A' k: P0 x) Y     BaseM DB 0 * c( z6 S& M  j  v2 ]4 a% f
     Attributes DB 0
4 N/ O( o- E* b: a     LimitH DB 0 + K  H5 ^" K- g4 h
     BaseH DB 0   f( U( Q) R. E
DESC ENDS! n- n' u- r2 H

3 Y8 @+ `  Y  t! v' WPDesc STRUC* J9 \& d  e2 G3 i# M
     Limit DW 0
( T- l) y  ?3 K. L; n5 T& I" |8 I     Base DD 0 0 k2 g9 D* v' N
PDesc ENDS
+ N; J* T9 |  W6 e0 k7 Y2 V7 H
$ k% {' O# d6 JGDT_def Label Fword
& S$ E& H4 l( h! y1 UNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>- y9 w% x6 [$ \, J( c
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>$ V( ]4 P& j  b6 N+ u
GDT_Addr PDesc <$-GDT_def-1, >5 H( e0 D$ V, b, o' S2 R
" d& v$ ~) }9 ]( M4 L9 Y  M' _
Maddress Dword 0
6 u; ~; k% e# L% t% f, E6 t- M6 a8 d" Y9 L- s" `! I* c
DSEG ENDS ( C" f( j# q& [; u0 N# l
ASSUME CS:CSEG,DS:DSEG
& A8 C6 m  `1 t5 X9 u; y5 h0 N5 ?& e/ l" Z3 c
CSEG SEGMENT USE16'code' ) y" U% L/ S+ N8 |* c
      push   ds# t. {* \- E4 ^7 d; U2 j: d" |
      push   es
, M% a3 l  }3 k  _, _      push   fs4 i/ V6 ?  n3 a: \
      push   gs( G  ?! Y3 y& X4 }+ Y) U/ D; v
      call   big_real_mode     2 O" ~7 y- y0 t" y
      call   Get_Commandtail" @( o# c( B  Y# ~4 r; X  o7 P
      xor    ebx,ebx( }- [; X4 }3 w
      mov    si,82h1 Y2 [$ E" J! X: N1 `
      mov    al,es:[si]
3 m/ ~% ~& L, A' O4 l( N      cmp    al,'r'4 @' O& D% U) l2 v. _
      je     R; Y3 ]0 Y0 |8 x/ W8 q+ L
      cmp    al,'R'
5 E7 ?+ d, }8 k1 L      je     R) N  M. t9 p, j9 I. K& Z
      cmp    al,'w'1 T( L' R) t* G4 c% R, J
      je     W, ]: I, _9 {5 r* p+ f$ N6 W, ?, [- e
      cmp    al,'W'
* f7 C' U6 S; a      je     W          - q2 l0 t6 ], v3 Q3 _+ e7 Q
R:
& J& a% S0 G6 ~2 V( y0 ~6 C      mov    si,84h% n6 C( C6 z& B! U- V1 j" T
      mov    al,es:[si]
2 @  v5 H$ z9 G+ b& y      cmp    al,'b'
9 W" }: A/ ?/ S. W. @      je     RBT
4 j5 {8 T4 l/ ^5 E' J      cmp    al,'B'
2 @  }& I0 G. e9 a6 k) n9 X  `      je     RBT
, R) ^2 s5 Y; m9 e8 s- J      cmp    al,'w'# V3 _( e, K) P6 b! J3 w8 D
      je     RWR
0 n1 r2 m) D9 V, L      cmp    al,'W'2 }! ^7 O9 y# N7 f
      je     RWR5 C5 o8 o5 \6 `
      cmp    al,'d'
$ S* X1 n* ]+ x. \) o+ I0 m9 a  r      je     RDR, j9 x! P9 m+ }& S3 P" {! E( ^6 ]9 L
      cmp    al,'D'7 j! p; c1 u) q+ i
      je     RDR            
1 b7 f5 [/ C4 e( d  o% sW:      
! x* T4 {6 q1 S8 _/ K0 T      mov    si,84h* R' R- S/ V. |  F9 z, }; e* u4 {1 C
      mov    al,es:[si]
5 B8 f6 l3 ?" }; t2 h$ u" @, l2 T# l      cmp    al,'b'3 R0 [9 k; \8 y; d2 U2 _
      je     WBT3 R) `3 L; y  J1 \. k
      cmp    al,'B'
# r# z) p7 z" p, S! R: H      je     WBT3 l' O. c$ h( @: \9 [- a6 c% i5 J; g
      cmp    al,'w'
# ~$ J+ |5 G9 s9 ]2 [  M6 X      je     WWR1 S, D0 g) j" [  \8 Q! J) h5 y
      cmp    al,'W'
' |& r9 Q, F" C' {' n1 ?( C      je     WWR6 e' e" i# k! z
      cmp    al,'d'
3 ^9 \% |; P$ T+ S9 f9 S$ |/ ?      je     WDR& I3 O- ?& }: w( p) I  I
      cmp    al,'D'1 V+ D' _1 x: ?! Y
      je     WDR3 o- C5 N8 a! p% j6 L  f  p# G
RBT:
2 F9 _+ y2 J' d4 g      call   PSP        
8 \; Q6 a' {7 X: q* F: Q. ]      call   crlf           9 b7 l7 ^5 z3 g: \. N) b& N) i
      mov    esi,ebx% n! e" l. B* H; r: l
      mov    eax,fs:[esi]$ a/ [! V, i. A, V2 R2 X8 K
      out    80h,eax5 f% P7 _1 k1 f1 G: }2 _- g
      mov    ebx,eax
" h( x- ^0 x- N) x/ R( |4 w9 A* L      call   _8bits) A$ I7 P4 B  H. D. S5 u. ?
      jmp    Exit' h, |& n9 ^% I8 j3 Q: N
RWR:2 Y: {* H/ z3 F. }( v' Y/ d
      call   PSP        
( w. B  S% e! ?. q0 e0 T/ d# k* h      call   crlf           4 P2 ^2 ~( Q4 R3 f# f5 w" @
      mov    esi,ebx! F+ ]9 x6 W' F4 v. v2 O  U6 G3 j
      mov    eax,fs:[esi]$ p  P; L# M" _5 o4 ~! o/ Q0 P) W
      out    80h,eax
& Z- w0 {: k0 K: F0 V; t      mov    ebx,eax
2 k$ g+ O* s4 \; P) L      call   _16bits
5 v# ?4 d! \6 e% l+ V) z4 H$ {      jmp    Exit
' h% {- N8 q2 `& X# _& n9 ORDR:. p: f% ^+ a$ j
      call   DPSP          x" e7 h$ |* K
      call   crlf           
( }1 W* v  E' y: `: h# W" ?6 o      mov    esi,ebx* }+ s1 {" V4 M' v. ~
      mov    eax,fs:[esi]) b+ w8 [  M+ P3 D/ x! c
      out    80h,eax
% p6 P" B3 l% V$ M      mov    ebx,eax
1 B: z; L8 ?! O# y5 L      call   _32bits* H. Q& _2 }$ y) o  \, H( N
      jmp    Exit8 p( k3 v1 s9 i$ v: w
;------------------------------------------------------------------------------------------------
) o) [$ n* C9 `3 R0 _8 o4 KWBT:6 |- C/ _1 {# x- Q' s
      jmp    Exit2 L+ x% s& V/ m% E; Y
WWR:) V: I2 l/ L* D5 T
      jmp    Exit% r; x6 m2 w3 `
WDR:
- [  Y) @- I- ~. ^7 p2 L4 I      call   DPSP/ p- d8 w' w  L! `# [; [
      mov    Maddress,ebx      ! r4 \: ]$ j% ^) `, E
      call   crlf
" L; \+ @9 ]; J( D) q      call   WDPSP
: A' k) d- F; k/ r+ t% c8 \$ r/ q7 ?) |      mov    eax,ebx
& Z) r' x) O$ ?; q      mov    esi,Maddress          3 P! ^* G& L! k7 N9 Z4 p9 u
      mov    fs:[esi],eax- y, Q1 ?% _" i% o3 w- ?
      out    80h,eax. v: N& }* N0 }- e6 a5 w
      jmp    Exit, z# T% t( s. ~8 p( a/ R- S4 |
;------------------------------------------------------------------------------------------------      
- B4 [& K0 K! V# Q# Z+ b0 gExit:
) j- B; E8 e4 G, S6 K) u$ a      call   real_mode     
' K" Q, n; L  a7 c+ `' b0 m      pop    gs
# B. S( D3 O- g) L/ P' @9 Y7 r      pop    fs
4 F- X3 ~* U' M* y      pop    es
5 l  ?% J& J. N  x' v: U- D      pop    ds      
0 Y7 {$ h6 R, X; P& \/ t      .exit2 Z; {! l+ l8 p5 ^7 ~
;------------------------------------------------------------------------------------------------/ m! @  I( _$ N4 O/ a! g) x4 F
big_real_mode proc near2 E" Q, S7 G" ]# r
      in     al, 92h5 d# j) Y  W/ J3 m
      or     al, 002" ^% s: _+ H( {: r
      out    092h, al, G) k! o* ?6 w6 \) X
      out    0edh, al
4 k, L9 h/ t5 ?& _( c      cli
, R5 W: N0 g) L5 _: F- }      mov    eax,DSEG
; V: s$ O6 T, K) h0 Y/ a& Z- H      shl    eax, 40 ]6 O6 q4 F0 h8 e; F* o4 `- f
      xor    ebx, ebx
: R1 y! W) z5 ?! d& u! y; u& Z7 {$ J      mov    ebx, offset GDT_def
# @; z4 O7 w8 s" `1 u7 Q$ [4 T  G      add    eax, ebx8 J, E' u+ r, _% Y% d9 @1 Y
      mov    dword ptr GDT_Addr.Base, eax
7 p  A! R4 B2 h: ~2 `$ E, E      lgdt   fword ptr GDT_Addr
: D% _" a  k1 v) J7 v+ B      mov    bx, 8+ h& k& u9 ^8 {6 `- t- R
      mov    eax, cr0
$ e" T$ O  L& T2 }      or     al, 12 N& @7 ^8 F/ }* Y& f7 S% U% k* _
      mov    cr0, eax
$ _0 y# J! n/ @8 R; a2 E      jmp    PMod# L5 i+ s' ~, Z: Z7 H0 y, c4 }
PMod:: O: K! P. |% D2 n6 u8 A
      mov    fs, bx
: M! {, ~, D9 t) O* x      mov    gs, bx
1 Q# W! {8 F# Y2 `. `8 ~, u      mov    eax,cr0( ^" O" J1 r  W/ Y- a
      and    al, 0FEh! }4 k) d1 T4 A
      mov    cr0, eax
/ b' W8 R0 ~% c& F$ S; B      jmp    RMod
0 m$ K2 i- \0 G6 `RMod:
0 k+ T9 y$ r7 v! K      xor    ax, ax
0 l& b7 b& V& t: _3 d0 i, t8 ?8 B% S      mov    fs, ax4 `6 r6 Z* r5 t- S; @
      mov    gs, ax     9 o3 S6 r5 W, b1 C- l/ q/ D+ H
      sti     
+ Y+ u+ \) v# E3 t/ L& q+ N      ret3 q! E) j! R- _0 X
big_real_mode ENDP
% [8 |* o  U: _5 p( \( j, |;------------------------------------------------------------------------------------------------
, c* a7 h0 y$ J" dreal_mode proc near
! H) v. s$ V5 U& G      in     al, 92h1 ^! u  P$ w. x8 n
      and    al, 02
+ M# K9 L& G6 p3 Y      out    92h, al   
8 X; C1 G" x) S6 j& b; N* W% B* O      ret" S% w- E- l' k) K
real_mode ENDP* K6 [3 i% O5 L9 D% S5 l
;------------------------------------------------------------------------------------------------
2 e' ?- @+ V3 }; b* D) dGet_Commandtail PROC near
* g4 @3 D" ?6 d/ }' {3 L7 e+ l      mov    ah,62h
' J5 q) C" A) K3 T      int    21h4 D4 r& j" e7 t4 Q4 l, K
      mov    es,bx' w$ i4 n1 v. ~7 A, W" R; w
      ret
) C3 F* y# ^( [2 g6 cGet_Commandtail ENDP   
7 i; r# b6 m# {$ G/ B3 }) @9 |;------------------------------------------------------------------------------------------------
; \4 x8 W3 Z2 ]& L9 O6 f) U6 _0 [PSP proc near
* f- K* `2 G  g! ]  T5 R1 [      xor    ebx,ebx
0 l1 W( m4 G. A& {) S      mov    si,89h
; T: s" _1 C0 x5 X( x      mov    al,es:[si]/ f: |8 N1 \+ X! `. A, Z* i
      call   Change% X- j$ r$ ~# k
      mov    cl,41 _0 s" |) u  ^' n) u0 [
      shl    ebx,cl
" |. m, F1 e9 i% b      add    ebx,eax3 I- L7 J3 e: H. q: K& N! h% q% ]
      mov    al,es:[si+1]
; n' q0 w" B% R' ]5 R      call   Change
* I" C0 ]: D/ g- B* Z" H' D% G      mov    cl,4; i' H* ]) Y1 M/ r
      shl    ebx,cl
$ K! U$ Y8 \- U% ?8 {2 H5 M      add    ebx,eax
. t* U/ B: T9 a% ]1 |. C. e. V      mov    al,es:[si+2]$ F: S% b' ?/ @) B, t: N
      call   Change
* g* c0 _1 @2 n# t      mov    cl,42 m: [) J/ J; T# t
      shl    ebx,cl
% Q, ?  X' m2 f      add    ebx,eax, i' L  O( h$ l5 `, w; o* q" v; t
      mov    al,es:[si+3]8 I3 g; Q) ~  T) l' t
      call   Change
# w" S+ N9 D* ~$ P! ~      mov    cl,4" w0 w1 k) r& @
      shl    ebx,cl
6 ?6 |' P1 [; B6 B; u; ^2 e% m      add    ebx,eax$ B& N$ h4 r# {# C" j2 v% q
      mov    al,es:[si+4]# O4 m& S, v: y$ B! X5 E0 t; M
      call   Change2 A1 Z3 A4 |, g5 n/ V( E) p% L
      mov    cl,4
$ L5 o5 t+ ?- t/ E1 s  g, q% [% ?      shl    ebx,cl4 @' ?8 N: B  j  z5 [: k
      add    ebx,eax
: q: T3 P  |8 s! P! i: m      mov    al,es:[si+5]
8 N, e( ]& ]8 s      call   Change) l$ T" _  D1 z  C
      mov    cl,4
" K3 O/ ]3 p6 K9 V0 K& L      shl    ebx,cl
  R! f. W* j4 q# v: \( b      add    ebx,eax+ j& ?. ~8 h8 V" S7 z- a4 b
      mov    al,es:[si+6]
7 l5 ^# R2 P! x! P; r      call   Change
$ b- b2 p( h3 M      mov    cl,4
9 W, b; Z* w( C6 k      shl    ebx,cl
: u) I; P( ^9 Z8 V  y      add    ebx,eax) L* }: ~! m3 G$ ^
      mov    al,es:[si+7]
9 t: P0 H" D* K      call   Change0 P6 T+ b( Z, R; y$ o7 E. b4 \/ g
      mov    cl,4
; j" r( P2 [. s3 M      shl    ebx,cl0 _- E6 L% |0 K7 C" s# T. T7 N
      add    ebx,eax, ?2 u: U! L; L' B
      ret' ]6 z# ^1 ~3 W0 f( o! u9 s" K$ n
PSP endp" |9 t% n/ N+ G$ S3 D. _, n
;================================================================================================: H4 ^3 r3 I( E3 R6 _7 c
DPSP proc near+ H, c) n. N2 x8 n+ a+ K$ S+ p: ?
      xor    ebx,ebx
* d, j6 l7 C9 v      mov    si,8ah
, b% ~8 O: V8 ^0 b! Q+ n& k      mov    al,es:[si]1 n8 C$ R( f: R! \7 l/ V0 F
      call   Change
: c, N( ]* a4 r3 X( i$ v      mov    cl,4/ \* }! m; P% h
      shl    ebx,cl& Y& e) k& {6 s2 i8 {# ~+ w
      add    ebx,eax2 l# U) \6 y# X, ]7 ~
      mov    al,es:[si+1]
; U/ Y  y& N) i      call   Change& g  e. V7 g/ r4 S+ v+ a& U
      mov    cl,4
1 _: Z: G3 g* I' O7 j8 @/ ~, d      shl    ebx,cl: b  _5 Q; x( ], u  \
      add    ebx,eax: F& Z4 V5 s3 z8 X
      mov    al,es:[si+2]( y- L+ B2 B. ^- C5 i
      call   Change
* K# p* @9 M9 c  G- ]      mov    cl,46 d1 t8 S, {' n* }* P9 i
      shl    ebx,cl
. L9 i+ L" e) B% x# P# a      add    ebx,eax6 H" H6 Q: E4 C. ?
      mov    al,es:[si+3]
: c: t# \' X( X. m+ J      call   Change; \4 A( h: P/ R" `. _2 O( E! ]
      mov    cl,4( G, C5 ]/ Z7 ~) K. p) b
      shl    ebx,cl/ W3 `3 H% d) F0 f# P7 \; G
      add    ebx,eax
( j( W8 k& _0 Q% K% l3 n1 Y      mov    al,es:[si+4]) A. m$ ^2 M9 U( ]  O$ ^5 ^# K" X/ m
      call   Change4 X1 }! p0 i* y8 X/ Z# C! B
      mov    cl,4
; a! {* r" q# C- u( `; `      shl    ebx,cl
6 j3 G& e, o2 z6 p$ }/ @/ a; W8 A      add    ebx,eax0 {' u8 h7 {) F# E
      mov    al,es:[si+5]% q: h8 v2 _5 f3 x# O
      call   Change
5 q8 U' r5 r  q# b      mov    cl,4
* o% R& g0 Q, Z/ y% U& R      shl    ebx,cl; U9 z+ }# M6 a  r% k  T$ D7 ~% k
      add    ebx,eax. c+ f+ T6 H! E  j. F2 U  w
      mov    al,es:[si+6]
# d  ]1 U6 v* c6 @      call   Change
+ `. }( B: A( p, `      mov    cl,4
+ W# s* X& a; E/ B2 ^! s% P( ~- ?      shl    ebx,cl
1 F. p  u" e3 w) U      add    ebx,eax" h+ E0 k$ n* F( k: ~& p* @
      mov    al,es:[si+7]9 O# n1 H# E( w, D4 G3 v  t
      call   Change% Y/ H& a9 F; t2 k& B- J, R
      mov    cl,4) ?9 C. K, D3 L+ x0 ~
      shl    ebx,cl) B; O( P0 Y: W2 F& v+ F, N% p
      add    ebx,eax/ P' p! U& N0 A
      ret
; t; _8 Z' p% ZDPSP endp5 O0 Q0 t4 z/ g# G! `
;================================================================================================" @+ ~/ @" G) C% u
WDPSP proc near
# p9 g0 c5 H: D0 q; W1 ]      xor    eax,eax; a" i9 q' q7 Y% j+ B% B" T6 j
      xor    ebx,ebx! Y: \5 A; n; t! D
      mov    si,93h6 \) W' c3 t9 _9 D8 P; ?
      mov    al,es:[si]) m0 v! ^4 S/ F9 D& n& o
      call   Change
1 N- R1 |, b7 X$ z% Y3 @. j      mov    cl,43 A0 i% m0 O. R  X0 V
      shl    ebx,cl" Y, U! ]$ v, {$ V
      add    ebx,eax' |6 Q5 X9 C4 l; I# ^$ _
      mov    al,es:[si+1]
: w4 c+ S8 {3 p2 V% m- ]+ Y      call   Change
" d: t+ ?' J) S! F% G! J( J( m# K4 H      mov    cl,4
* M; k- J) |. r7 L* `- T  _      shl    ebx,cl7 E6 r) F* D/ \1 n
      add    ebx,eax
* z% f# v) T; k' N$ ^' F      mov    al,es:[si+2]$ ^, }! U# W! h: T# `
      call   Change
- j& i1 M$ F4 d5 _      mov    cl,4+ g, ?7 I: ]1 s1 W5 d
      shl    ebx,cl
& M; E9 K0 H% {2 W" X- }      add    ebx,eax
% t* P. D( R+ ?. M      mov    al,es:[si+3]8 C, u; S2 z6 G) X
      call   Change
+ n! G8 o8 @/ N/ z7 f      mov    cl,4& H5 q; Q3 J- r0 u/ S
      shl    ebx,cl4 [! ~' w( z  o: W4 g7 W5 h
      add    ebx,eax
; l; t! \0 f8 \6 A9 v0 A$ `+ o0 E) _      mov    al,es:[si+4]
; m# w- L$ Y: @7 k2 n# O      call   Change* W2 D# l0 n, Q# ^  N
      mov    cl,4
& V. M7 k, I% f      shl    ebx,cl/ [6 c1 w. g, b) {' @/ d# x
      add    ebx,eax
9 B: K8 I8 u% _& U& \$ b      mov    al,es:[si+5]
9 W" ~- |! x, f2 `( J- t% |( _      call   Change% v. Y/ p/ R8 e+ b$ {- W7 H
      mov    cl,4
2 Q: h9 v# U% M! o. j      shl    ebx,cl
7 F' w+ K+ O$ C      add    ebx,eax
+ }! Y1 \! S& `0 m: ~! q( J      mov    al,es:[si+6]2 w" [, A) K! S+ O
      call   Change- _! _3 q" k( n$ p! k0 Y- _
      mov    cl,4
7 z7 ?: f: D; d, h# |' C      shl    ebx,cl
/ \* R# M2 `! @- v" Q$ l) J      add    ebx,eax
, r* {! I0 }1 |" o7 Z      mov    al,es:[si+7]
9 S7 e! ~7 b: c/ \/ v. y      call   Change; ^! _% f1 T. D; {; C5 ]
      mov    cl,40 w; H0 q4 q' M7 h( a
      shl    ebx,cl
5 w! `4 h0 ?  M6 a( u3 g      add    ebx,eax
6 ?9 h* x. j' C8 e4 S( d. c: d      ret( G" o) o6 q, m1 p' p, ^
WDPSP endp- ~) j; @5 Z9 h" l5 D( R0 }
;================================================================================================
; Z' E' b. r. g. o% BChange proc near& h8 _4 C) D( A
A:    8 c8 X( k5 f& U
      movzx  eax,al) t! f$ `+ O# L) s: O
      mov    edx,eax
8 _) F+ g! e3 b: l% i8 l$ k5 |8 b0 i      cmp    eax,'0'            ; V1 K7 I) f1 _
      jb     A
* s3 |2 @9 f. @- ^! M( o( E" V      cmp    eax,'9'            
+ n  T' \* j9 V% t  p: j      ja     B
* D% q0 \. _0 ]" H' Y. c      sub    eax,'0'
& @: n/ A/ s: p4 }! K      jmp    short E
/ q' L' k7 J; c* h; KB:
! f5 ?( `7 L) @' r      and    eax,0dfh           
5 @. }. M  I8 K3 J" [7 b      mov    edx,eax# |- ?) Y- ]  Y  F: s4 [3 G) _& @4 b, _
      sub    eax,37h            
  I  s% F) p7 Y! C) W      cmp    eax,0ah
. _) \1 I4 }: z7 i; {( l1 n      jb     A                  . @% Q* c9 v- r1 N- u: X
      cmp    eax,0fh$ B+ |' o. V- s& @7 `3 p9 T! V" R
      ja     A                  8 b7 |! |4 o; y9 j( P4 i
E:2 s; V% v. H: t4 F) I- b
      push   eax         A3 c7 c2 z" U! s3 v4 b+ Y
      call   PRT                ; i6 t# X, A+ @4 ^, S( f; r: ]& i
      pop    eax1 E- K$ q1 \* M# m
CExit:
1 P' J' @+ o$ \+ D# o! E% a      ret
" h) s' `8 R; u9 b5 ~! N, bChange endp$ R( F0 y- ~- d9 T2 @
;------------------------------------------------------------------------------------------------
( n+ r8 R, i; N" RPRT proc near
! a) k8 O6 z. J7 L      mov    ah,02h
* ^7 [( }9 G% C( P" n      int    21h
" V& r8 S; \) \6 e% E/ l% Z+ s      ret
- D6 o7 C+ x2 q" _+ n- QPRT endp
' W; m9 X6 I- l  ?4 w; C* z;------------------------------------------------------------------------------------------------
( L4 [, E  n4 N- n/ U) }% B& \crlf proc near; G; S$ T! k; Y% N$ [; x5 w7 ^  R
      mov    ah,02h1 Q' }8 ^- W/ |* A' [' U( C
      mov    dl,0dh, L) g$ f5 B; P2 Z  |# B
      int    21h
+ l5 {! |1 I3 b& I# p0 ]8 c3 c      mov    ah,02h8 _; w+ ?  D) p3 p. P4 P- P
      mov    dl,0ah
& |8 b0 L& F8 r4 S( o, t& F      int    21h. v' _1 @' ]9 M& P# {
      ret
. ^# j  H! K9 C. q$ ^crlf endp% W9 N  n  d7 A/ a) A' k% E
;------------------------------------------------------------------------------------------------
8 E% U5 W6 v6 |8 W. z_32bits proc near6 C. ?' t( a" L& h! g
      pushad0 _' A! j$ [2 a. k) m
      mov    cl,4' T6 b1 k6 D+ s# J- G6 ~
      rol    ebx,cl3 ]- O8 t" K! o( D$ _( t. V) V
      call   print_4_bits
2 b4 T. V9 `) U+ u8 I/ r7 q      rol    ebx,cl% g: I6 q6 o7 O
      call   print_4_bits& Z( z: _1 f( W+ S+ y% w7 y# J
      rol    ebx,cl" G+ i4 v, C) v2 U( G
      call   print_4_bits$ I! \- k* E6 |' b  q
      rol    ebx,cl
! P6 y% H+ K+ I" L" h/ u      call   print_4_bits. ^6 F8 h0 E3 s7 z+ I: @/ V# ?1 q
      rol    ebx,cl
% z7 v5 B( `0 r. `% T      call   print_4_bits
$ h  Y! H9 p* n( \# W. y7 W/ N( T      rol    ebx,cl' @7 p1 B8 j+ x5 R# [9 ?
      call   print_4_bits; D  J+ z3 P% K; k  g. u
      rol    ebx,cl
+ o8 b* g" `/ B2 a- b" q      call   print_4_bits
" [/ x  J$ V" U* h$ a* a      rol    ebx,cl
1 V( b" k  ]2 M- I( v2 q      call   print_4_bits% }$ ?) [. J+ \3 r9 p% z
      rol    ebx,cl
) {" I# {1 I  M, S      popad
8 ~2 ]' J) i: K' D  }      ret; l2 K1 X* Y7 B4 g! ^* B: a
_32bits endp" z% P  t& H  G' ~6 A
;------------------------------------------------------------------------------------------------
5 i, }% @* c- z, }8 }6 G9 a' n_16bits proc near0 B5 K, F1 F$ O/ K# j
      pusha        4 `5 M7 k+ V. c" y* G
      rol    bx,cl4 |  w% P* ~( y& I
      call   print_4_bits8 B2 ~& m1 R/ l4 v
      rol    bx,cl: A% z$ t# g1 A$ r$ r: }
      call   print_4_bits
: V& P6 D# V) B* ~9 e' Z. z      rol    bx,cl2 h* B9 a, l1 u0 D
      call   print_4_bits
5 B- {5 p; z: A* G! V4 |. i      rol    bx,cl; ]- [2 ?" q, ~) }
      call   print_4_bits
  ?+ `: P* V2 e2 L      popa
+ ~5 F/ Y  t0 N      ret
7 w9 _# }* {: v0 \_16bits endp
2 N( y; M/ D2 p# s8 x;------------------------------------------------------------------------------------------------
. n- L6 y" `4 e_8bits proc near! V! M% w, `+ b5 A+ T! L- p- X
      pusha        : M1 Q" w5 T& i& T3 k0 `
      rol    bx,cl  w% i9 N- D. P2 _6 I# N3 {/ `
      call   print_4_bits
+ Z8 R% A. }+ P) E      rol    bx,cl; L; g, b/ ^$ Y6 x- f1 C
      call   print_4_bits
1 y4 q& m& R# d% d      popa
  h' m& Z  l- q! r( G/ }1 P      ret
& d: w; x5 ?# E7 K$ H2 {' e_8bits endp# P+ [0 v/ f5 V8 P+ ]/ J( z' B
print_4_bits proc near
0 J8 W/ z6 m1 K2 C3 g      mov    dx,bx9 f( I( N7 r5 F5 `
      and    dl,0fh
/ h* F5 ]8 m. x. D4 q      add    dl,30h& \4 v- n6 C/ R/ B8 {
      cmp    dl,3ah5 g- T; M# Z! L+ X
      jb     print8 M9 t( A0 Z! A3 j; \: I6 F
      add    dl,7
; ^* a: J) @! y5 x, mprint:  
* j# P5 M' l0 g" b7 {+ z      mov    ah,2
" A5 J* Q) m! m, Z' T5 |      int    21h; d6 O- _/ |9 d
      ret
5 g% j7 H! c$ ?5 n1 Z% qprint_4_bits endp    , B; I1 a! ]  q4 N! J0 o
CSEG ends. G6 J* i7 [& f/ Y5 B. b  X
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-4-4 14:47 , Processed in 0.786362 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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