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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)% o" y, J* q7 `. n0 e  a% y" o+ [5 w$ [
0 Q& y7 Q- m4 ~9 R9 u' k) c
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
) y3 U8 o" Q: ^+ |
2 A3 L9 N8 Z  \* o6 W0 j' z' R宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  : G. R: p% X) X4 s% K
8 I0 w( z" f% Y! U0 E8 X" X8 Z; U
.model small
3 Y9 A5 z: p* Q.386p
- G& D# p4 x1 MDSEG SEGMENT USE16'data'
* `2 ~8 c3 X- r, g/ j8 B! `" L% x2 s4 t& \5 @& J
DESC STRUC
) j7 x$ P6 i+ u# q  @  l" {     LimitL DW 0
/ u( x- V# s& C     BaseL DW 0 8 L8 e6 d( W) A; Q9 p7 d7 I2 A
     BaseM DB 0 ) b; s. P3 \" ?% d7 ~
     Attributes DB 0   ~/ h, G: K; E  W( q
     LimitH DB 0 ) Y; [2 y8 l6 U. O
     BaseH DB 0
( b7 Y9 ~6 C9 N2 |& h9 l. {- RDESC ENDS
* b0 o8 z" U  A, W" D9 ]
$ g* A2 D% ]$ N: JPDesc STRUC
4 O- @# I6 D8 Y4 a" Q- L     Limit DW 0 ; C6 v+ Q" q7 \3 R
     Base DD 0 ! W: F" _! n3 y' _9 S1 T" j
PDesc ENDS# K( W' f( J+ u! t' X
$ ^7 `. m4 d5 S
GDT_def Label Fword
# w2 E, [8 _' Q- Y6 e- nNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
2 a2 _, F! J3 [. L, Z- c0 LData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>+ i5 Q% e: C: o( X1 U' }
GDT_Addr PDesc <$-GDT_def-1, >
) k" Y6 S9 O& H7 `' V- O4 X% ]3 z3 p* Y7 `
Maddress Dword 0
, m) K5 P% q9 Z/ Y5 O( ~7 [
8 p' L6 ?5 m( JDSEG ENDS 6 \' c9 h5 l( Z5 S) q# H
ASSUME CS:CSEG,DS:DSEG) _- N; e- H& p

( O0 C" p% e( B5 |; l7 [CSEG SEGMENT USE16'code'
% M7 d( y$ {9 z3 C6 G      push   ds
- `8 T) |$ R5 U. J( w      push   es
8 U7 ^' R! @6 ]9 b! O# p      push   fs
! H! K0 i& L' A2 Z( P( z% r      push   gs: J# X4 g5 `1 u) C! d6 {
      call   big_real_mode     0 F0 v  H0 I1 y5 M, v& b4 @
      call   Get_Commandtail
1 V$ ^5 U+ M( ^+ t! j1 f6 _      xor    ebx,ebx
8 V* Z2 n0 a# Z+ m      mov    si,82h$ ^* j( C. P5 Q+ c4 }
      mov    al,es:[si]# b2 |& O; v6 H9 p5 Z
      cmp    al,'r'5 o( q0 F" N: Q- ?6 A9 P
      je     R# c8 f0 g' G0 J- ^0 J) ?* I
      cmp    al,'R'
: h7 Z1 b3 F" e# O9 S3 d      je     R
8 J/ D5 N5 I$ F/ D$ @      cmp    al,'w'3 P! `4 C3 P/ M- L
      je     W( M3 O# a; C& S* a" ^
      cmp    al,'W'4 Z) z  H7 [1 B
      je     W         
1 \8 Y% x: [( RR:
: O" D+ s) n5 m3 C      mov    si,84h" j0 S# f4 a* x" C
      mov    al,es:[si]
, Y' y2 n9 n1 T2 x1 g      cmp    al,'b'2 D) a/ a* a/ L* D9 d
      je     RBT5 J4 \+ Y+ A7 L* u( ?4 w( Q- s
      cmp    al,'B'
  c% Q5 |" I8 d2 ]      je     RBT
: H  ~. P( M9 v  `      cmp    al,'w': x9 t  o  U3 L4 o
      je     RWR
: m5 [) H8 ~/ F3 e      cmp    al,'W'% L( H; @0 R' m1 t8 A
      je     RWR! r# g: B+ L3 G0 Y
      cmp    al,'d'
' _. \+ x9 @0 ]4 B6 G/ o7 B3 |      je     RDR
9 C; |) u4 H1 N  `( c- h      cmp    al,'D'* H% E0 }7 {: k3 `4 I
      je     RDR             * R4 I. z8 C2 p3 \6 c9 m
W:      ( A/ g3 U2 S& T$ Z
      mov    si,84h
" b/ s% i8 d- p$ q& h, S) A      mov    al,es:[si]8 ^: M6 |. `, }
      cmp    al,'b'
8 T1 K( |, q% w8 ~' o8 V5 ]/ p      je     WBT& ~, P8 g/ [2 d6 D" K( Z1 ?
      cmp    al,'B'
/ y; }- _/ L6 V5 W      je     WBT
9 t4 o/ q( q( m  ?' v% m8 `      cmp    al,'w'& {( t4 K- `2 Q3 C) G: f' `! a, P6 \2 P# n
      je     WWR. M* a7 P6 ?/ V6 |) _. v% _, `
      cmp    al,'W'
2 O: I2 l' P. `) Y      je     WWR6 f; l& u( f) ^8 S3 j" e" r
      cmp    al,'d'6 y  `3 m# m) [, r0 I
      je     WDR/ f+ K2 K2 c9 Q% H
      cmp    al,'D'
7 G: h2 I$ K! f; f# `9 V# m9 I      je     WDR
7 M" B/ b: h# zRBT:" x( k; ~7 U; b' i
      call   PSP        
' l! W2 P- a# y% C: {: r) `) U      call   crlf           
' W: r% T6 k% u" F/ @, j      mov    esi,ebx
' _, w( N9 t6 ^, u' t      mov    eax,fs:[esi]
: [* [2 N& {; w6 J5 M2 l7 C' x      out    80h,eax. V2 v1 ]; B0 o; _" d" C& C; y3 w
      mov    ebx,eax/ h+ g$ s$ i% S
      call   _8bits
: L' ?# v' J8 G4 t; f6 g9 _( @      jmp    Exit. ]; F; l/ y% ?
RWR:
! K0 D# ]# r3 J2 M      call   PSP        
% Y/ y+ T: L1 q1 z& e      call   crlf           
" U0 Z5 p6 ~. L' o8 N0 j      mov    esi,ebx
5 u8 H" |' P% \# Z$ N. [# Z# {      mov    eax,fs:[esi]
. i, v2 s9 _( o4 O1 s      out    80h,eax0 v1 h. U0 o) T$ g
      mov    ebx,eax
- @* w+ N. [  q8 R      call   _16bits
* b8 y, `9 f* t/ L) V4 Z      jmp    Exit* }: v+ L  V7 f" [% z) d
RDR:* W, r6 h5 v9 t( M
      call   DPSP        
- ~6 K/ ?  F& a8 |7 _2 |! U% E      call   crlf           
* B4 M: h; s3 y      mov    esi,ebx
6 I- U7 B( C! P2 f7 B; {9 f      mov    eax,fs:[esi]8 Y$ v* N5 r! s7 Q4 ~
      out    80h,eax2 g2 W; I& V  q& w9 r( Z0 S
      mov    ebx,eax
- u; ~1 }* x8 R; }      call   _32bits
& g3 W$ x! F( J% E      jmp    Exit/ p  N6 |- g% ?, \
;------------------------------------------------------------------------------------------------% C, D9 L+ J0 r
WBT:# }4 [, U6 ^5 J" V9 A# U
      jmp    Exit8 k( o6 y! J! t: Y  K* O
WWR:8 U4 ^" o2 G# P1 B) Q1 _
      jmp    Exit' E9 t* ^$ B. A0 O/ [1 q* v( q
WDR:% y; [. y3 C, C
      call   DPSP
; p5 Q6 p! Z( p5 w6 }# P! L" a      mov    Maddress,ebx      * B2 x" W( o8 B8 ]
      call   crlf
/ I: y  h& w7 k$ `- N: a      call   WDPSP$ W6 t6 ~& e" \+ ]; H
      mov    eax,ebx
4 @& t+ g! |+ ^. h      mov    esi,Maddress          ) V1 V5 a6 o' ?) D9 e0 D% s
      mov    fs:[esi],eax, ~* r2 [3 x) x+ w, T
      out    80h,eax
7 k$ P% N5 |! p9 y$ F$ T! p      jmp    Exit
7 A/ l4 T: m8 m* \; ?4 R;------------------------------------------------------------------------------------------------      
2 C+ f- H$ M/ j" _Exit:
6 Q6 Z9 o! V$ g' p1 n5 ]      call   real_mode     ! x  x2 F) Z2 q* r$ s8 `
      pop    gs
  }1 k% k+ {6 ?8 I! p      pop    fs0 |* q& F+ @9 n8 H8 R
      pop    es. r4 Y3 G4 m' ^  K4 w, Q
      pop    ds       ! {8 D7 U) \' L9 d
      .exit! U8 C" U4 y- O, n' k( j' l" v
;------------------------------------------------------------------------------------------------
# M% G* T* \0 \3 lbig_real_mode proc near+ g' }+ u+ ?. t* Z  U1 B
      in     al, 92h; `8 C6 Z+ q; C# y9 E; Y6 M+ Q
      or     al, 002" @+ ?5 m& J6 t7 f5 @
      out    092h, al* \/ C, {- i% a- N1 f) f7 s% m' X
      out    0edh, al
3 n& H8 `& J3 }% r6 b, D      cli
  P/ j2 U8 e% e  z8 o      mov    eax,DSEG
8 c( k0 C9 i8 M) z$ u      shl    eax, 4
; O; S& l: V0 ^      xor    ebx, ebx$ M* `% R1 u9 r# c9 m( `
      mov    ebx, offset GDT_def" S% O" l* l1 g6 W: g: R) o+ D# `
      add    eax, ebx: z' @( ~6 n6 U# E: p1 Y- q
      mov    dword ptr GDT_Addr.Base, eax) J& E/ O8 B$ u/ F: {( N( k
      lgdt   fword ptr GDT_Addr
' c! J( r2 r; b) f      mov    bx, 80 \) k4 f$ S# y2 l- l8 B
      mov    eax, cr0
, i- p  r5 o& f0 s# l" V5 g      or     al, 1
( z1 W: N) W( P) P+ S% l$ o9 X% ?$ u      mov    cr0, eax$ Z  j+ ^; P6 N5 Q+ J' d- J; L
      jmp    PMod
- k% Z) K3 n8 M5 k; GPMod:
3 e& p- [! [* a$ P9 }      mov    fs, bx
9 D, V; m6 d2 i; S      mov    gs, bx, K* U% C+ i& }
      mov    eax,cr0- d  Y. H; H' o7 C0 t8 X: F1 @
      and    al, 0FEh
+ a% a. T  g' G" M& u" t      mov    cr0, eax   {* i+ E  [- I$ }9 G: D
      jmp    RMod+ V5 q5 F5 B0 J6 b! |+ f9 s7 N% M! c8 P
RMod:
4 g7 f1 b- \  S      xor    ax, ax
7 u5 F. w" Q0 I: J' A4 P      mov    fs, ax
) V) ]4 O! I2 F% _; k$ g/ }      mov    gs, ax     $ f  f# e5 h+ k3 C! k) A% |
      sti     + S$ O+ u! T) O$ a+ T
      ret
! _1 S8 d2 h" u  W, [1 Fbig_real_mode ENDP) L+ d0 w) W% N) {& W1 W6 T
;------------------------------------------------------------------------------------------------: s; f8 a' ?* X+ b$ U
real_mode proc near2 M# ^" O% ?0 Q! e1 i" R
      in     al, 92h
8 _) _( D5 O# @+ `6 c      and    al, 02
5 [1 p6 R9 `+ X% o* E      out    92h, al    * e8 }( o: Y# A5 `% l
      ret
! f- n* Z- j  n$ S6 Greal_mode ENDP# L! K1 X( i1 s
;------------------------------------------------------------------------------------------------1 \' S" W2 D# q& j& |3 v) ]
Get_Commandtail PROC near
! {0 R9 Z8 k) C7 F2 t      mov    ah,62h # b5 [( A9 b) ?; @0 ~
      int    21h3 S4 p( t7 B1 G6 z6 T& o6 d
      mov    es,bx2 @3 ^, _* y- m. ~! v
      ret0 W! _+ r: u/ ~% Q" Z8 `1 _
Get_Commandtail ENDP    ! Y- l' b+ P4 Z2 y0 m) {9 M
;------------------------------------------------------------------------------------------------. d, v" O1 f% q0 O8 r; L* A
PSP proc near
1 d! m  U8 @9 }& o( x( ?  R8 `7 `      xor    ebx,ebx
; r  P7 [/ z+ x      mov    si,89h
3 V  C% ^2 _( b9 m. F% H. }      mov    al,es:[si]
4 F/ \3 ]; N; ]/ L) G) G+ L4 \      call   Change
  v: r1 W! s; O( r0 l6 }      mov    cl,4
  {" Y7 m  P* p4 t+ `      shl    ebx,cl
0 D  b+ P1 ^& Z0 G: F. [& ~# m      add    ebx,eax' e% a. ]5 f2 T* j1 G$ v
      mov    al,es:[si+1]
! O0 x" @7 N) p* L" W6 T      call   Change
  t: j# O/ Z# C' E! u      mov    cl,45 i) a. V  X+ `+ t  Z
      shl    ebx,cl8 m8 X: T0 r" x$ B/ `4 M# V- u5 B
      add    ebx,eax
( p" c/ L$ i  o, A7 L; h* ~5 K      mov    al,es:[si+2]
: t# z* b6 ~9 J' Y3 c0 G4 m" t      call   Change
9 I# g1 N9 M, v0 L2 b* U$ r      mov    cl,4- u, i+ J9 A; ?) n6 ^  v* e
      shl    ebx,cl
  o+ i, i- M. a2 r$ O9 [      add    ebx,eax
# K, h3 u+ u& B! Q, }% l! `& J& m      mov    al,es:[si+3]
# d6 R3 V, x# w0 S      call   Change
! ?" i1 N5 S/ X: V$ O7 d& v) m      mov    cl,40 a; d( W3 U1 B3 u
      shl    ebx,cl
- _6 Y8 B' U5 h8 j" }8 L      add    ebx,eax
8 i' J2 P/ `+ C! A  M& X      mov    al,es:[si+4]
( t# j2 a& j! ?$ Y2 R+ L      call   Change+ p% _; \( w" E6 H
      mov    cl,4
5 P8 @1 T: A9 J: G! x      shl    ebx,cl
' n- E7 _) f  h: r7 R* F      add    ebx,eax
$ Q, z6 e, B. G      mov    al,es:[si+5]+ ^! F5 O2 S, _3 b9 G' Q
      call   Change
- ^, [' Q$ [3 I      mov    cl,4
9 y0 ?) S- j0 P( X5 G' L      shl    ebx,cl
3 g* W) X- ?$ y8 v' z( N; a      add    ebx,eax
0 l' Q& j6 n/ q& g4 h$ J& V      mov    al,es:[si+6]$ T( B) `0 Z1 Y& H7 ]/ c
      call   Change
- r$ ?) r, d7 r9 e      mov    cl,4% i8 I$ u% x3 Q0 ^! P3 H3 T4 r% z- H
      shl    ebx,cl% O" Z5 _) n# E7 s" Z! t7 {8 l+ s
      add    ebx,eax% u: F8 k" x1 {+ c
      mov    al,es:[si+7]
+ ^4 C) v$ Z/ ~, L6 M# W4 b  m      call   Change$ {/ ?2 L8 M0 I" N) O& o5 |
      mov    cl,4
! W7 U$ c8 p4 P9 y6 Q$ m      shl    ebx,cl6 C6 R- N3 z% [0 u+ r) G
      add    ebx,eax
6 q) {% K! }  s      ret
3 W: V, U- c2 C# ^PSP endp$ W/ ^- ]& R* z6 ?
;================================================================================================
* V, ~9 J# o5 B& i+ G# ]: H; gDPSP proc near. T3 k' O, k* y! ]
      xor    ebx,ebx7 ~+ Y' D* s' q" c4 x  z! g
      mov    si,8ah
; G3 l7 V7 Q2 z5 ~      mov    al,es:[si]) C! I: {0 I+ H8 c# \; P8 E0 _
      call   Change& u. V) |2 F9 `, q6 a7 \9 s1 H
      mov    cl,4
/ E0 G% b/ e0 ~+ s3 D3 K8 ?      shl    ebx,cl
, H- ^$ X: ^# A: ~- I      add    ebx,eax: I/ U/ S4 ?% f' F$ ~
      mov    al,es:[si+1]
( V" x0 V: ]5 u; a; J& s3 l+ a      call   Change
' A% Q( \1 a1 w9 F( M+ L( }      mov    cl,4/ p9 P: O  S8 `* ?6 F+ t3 k$ v
      shl    ebx,cl8 b) @. ]# ?( z
      add    ebx,eax
" I9 q# O0 q8 m: \; q8 \+ Q      mov    al,es:[si+2]
4 S* G# u0 ~' s, a; i- ]4 w" a+ G      call   Change; v: O7 o9 R/ ^: O# H+ w) `
      mov    cl,4& [: e1 x  z  m. L; P9 Q$ H
      shl    ebx,cl0 M# t9 ^* a# l1 G3 ^
      add    ebx,eax
' W  r% t  i1 ]4 e      mov    al,es:[si+3]# g; m5 `- h. Y
      call   Change
  C0 f9 X$ }6 c! H7 J      mov    cl,47 s% P* s  T/ j
      shl    ebx,cl
5 G' {9 O: H5 v" S      add    ebx,eax
9 Z. T  W, M0 H8 C: P      mov    al,es:[si+4]
% w. i. W$ J( L3 ?' i% J3 @9 m1 C      call   Change4 J) O1 F! q+ X6 Z( {
      mov    cl,4! L. _1 m# `9 i9 v( d" B
      shl    ebx,cl
! e, v$ O. F' i/ |$ p% n, w      add    ebx,eax
4 N# i- N- ~9 |& M6 H; E& ]1 G5 c1 T      mov    al,es:[si+5]1 ?$ p) O1 A* P3 W
      call   Change  L" O' m) n* p* l' |' K
      mov    cl,4
' R& X1 c5 D9 r      shl    ebx,cl
% r' \. g& G8 Y      add    ebx,eax
! Y" C; B' ^, b, q4 j      mov    al,es:[si+6]
4 W: `( h& n( }) e      call   Change5 x% y" b; v# J) t
      mov    cl,47 R. z8 I; Q/ k% V( U
      shl    ebx,cl
  ^& x8 e2 P4 p: S      add    ebx,eax
# m! t  K7 S) v/ D4 A4 |  N      mov    al,es:[si+7]+ M6 ^) i( |; L6 Y* @
      call   Change; i/ ?5 K6 w, B: w3 N
      mov    cl,4) y. r, h9 s8 @! T; b, M6 G5 L
      shl    ebx,cl+ N, @. g8 {. W8 g& ]
      add    ebx,eax
3 g4 D' x- K' A) Z- j9 U      ret0 a7 ~# y5 l' E6 h' H% m. ?* [$ P
DPSP endp* T' Y# b. N+ g2 k  }
;================================================================================================
) Z( e- W. F6 ^WDPSP proc near
/ \0 J3 C' p7 U: v3 D; G2 s) d      xor    eax,eax2 u  L; H8 \& c3 [' h
      xor    ebx,ebx9 `$ S* ]; V; r
      mov    si,93h8 t* s6 C9 w5 S* a# q$ C) B
      mov    al,es:[si]9 D1 Y$ y; c% |) J5 E6 C- l3 I
      call   Change+ {+ ?: Y0 p) g7 l+ u  @1 k& b& d
      mov    cl,4
3 g7 h* s4 z& v2 e      shl    ebx,cl1 q3 Y- p. `: G* i
      add    ebx,eax! s6 M" Z3 j8 B. b# z
      mov    al,es:[si+1]. O9 m" [: `- W$ o
      call   Change" n) G- I( T4 Y! V# O% @
      mov    cl,4
- F* Z; J9 h2 T% R9 H, |      shl    ebx,cl
0 v7 E2 Q5 D* t  t" ?      add    ebx,eax9 T1 k/ O9 G2 B& F
      mov    al,es:[si+2]
5 A3 g! E0 G7 m+ G9 S& }      call   Change
! P/ I9 ^0 y  Q4 P  r      mov    cl,40 Y5 H% ^* x4 y1 W7 D' x, ~: `) o
      shl    ebx,cl9 Y; f' v+ q1 O9 z
      add    ebx,eax
, o9 i4 q+ j4 Q) A      mov    al,es:[si+3]" r+ t# [3 J# a  ?, q% t. }8 X9 `
      call   Change( Y  ?) L9 A& i4 O3 P
      mov    cl,4% P1 F$ S7 y8 ~) Z# B
      shl    ebx,cl
) ^/ l! Z9 ~  u      add    ebx,eax: X0 t5 R! W, h! k! `
      mov    al,es:[si+4]
1 F$ T% _6 G3 A# k* w9 G6 N      call   Change
5 v  ~( l2 \$ V: T      mov    cl,4& E3 A2 i2 G2 V
      shl    ebx,cl1 _/ P, v; T* K- d: Y4 ~
      add    ebx,eax
& v$ O4 e8 a5 j# S% B1 M$ {      mov    al,es:[si+5]
. S- E2 Z4 @/ _6 |1 v* b: p      call   Change0 ]2 C: d% b/ C6 {  }
      mov    cl,4
( h. q4 z0 f( r8 d+ o! D      shl    ebx,cl
( G3 q+ Y3 O0 i      add    ebx,eax8 R. Q1 a7 Q6 q& ?1 f$ s
      mov    al,es:[si+6]
/ z* `; k2 z  f: E: E7 F      call   Change
  n  `+ V8 a0 U2 r3 |- L      mov    cl,4
5 c/ d' ^3 x7 f1 C: s8 ?" t" p      shl    ebx,cl
8 d1 Q) g9 L3 }- T' c6 K5 ?      add    ebx,eax
6 P8 F+ C, e0 y  [/ k8 r9 C      mov    al,es:[si+7]
, T! P2 d5 D) r: n      call   Change. A/ S! O1 }, b* \
      mov    cl,4
% [6 ?3 ~2 Y. g& I; U      shl    ebx,cl" J! P5 Y1 n2 O, p
      add    ebx,eax# q& {+ j3 O+ G4 V) _
      ret+ m% S$ y1 W9 _
WDPSP endp( J" ]% K- \9 X
;================================================================================================8 k2 N' l$ s/ c- ?( S+ G: y; G
Change proc near$ J# a: |# U' n. l# \- I0 k0 t
A:   
/ B6 p, \" ]2 d% y0 P& q0 {7 N      movzx  eax,al1 i+ I- m" _* D
      mov    edx,eax+ {2 b5 U9 w" |& s' |- q
      cmp    eax,'0'            
  ~8 n2 C' W1 G+ P# V' ^      jb     A
2 ]0 X1 ], K" I7 Y9 c      cmp    eax,'9'            
' m$ @3 u% l2 w' p" s: ~      ja     B
) t, I  u2 n( D% d      sub    eax,'0'
' s4 V% v' N: W/ [7 q      jmp    short E
: |7 J" G/ E* H1 ^$ OB:
9 i+ _( h7 g* `! F/ h- a6 o! B      and    eax,0dfh           
$ c9 }9 H. l% W+ L' c% {' y      mov    edx,eax/ g- F, [9 c# t' t- K3 U
      sub    eax,37h            % s- C3 l5 B2 ]. S. i0 P6 }$ c
      cmp    eax,0ah
3 q: A2 \+ H/ ~3 P+ f+ B      jb     A                  % L: T' J0 U9 k7 F
      cmp    eax,0fh5 D8 Q. r1 y. S! ?- g, k9 @; D
      ja     A                  
4 T# x" D9 r, M8 r) @" v2 R5 ~E:# l) z+ I- i# k
      push   eax      
% c$ w+ R/ q/ R0 N! Q5 H      call   PRT                3 A  a1 K, L+ r
      pop    eax7 s( O" l" X& b1 C! a/ p  c& D) g; |
CExit:! `$ o8 u8 w3 A+ W6 ~; O5 z
      ret2 U- J) n( Y, S  |% h
Change endp
9 s0 \1 F: \/ Z7 k$ N2 Q1 j8 I4 q;------------------------------------------------------------------------------------------------1 M$ Q$ |- [. z% r' i9 o' `
PRT proc near9 \" F. `& g- u5 U
      mov    ah,02h
. N% v7 l; w# O, E' U" o      int    21h6 D9 R: f9 W) S$ s! n
      ret+ l' Q# G) a  E! y1 m, A; r
PRT endp
9 G& g* G9 _! r% j! {7 N& W: }1 U;------------------------------------------------------------------------------------------------
8 W( J% t7 G6 \8 s5 o$ }+ Dcrlf proc near. d: ^. n" k1 u$ K( O; ^
      mov    ah,02h
/ g$ F8 S1 {- g& U5 w1 V7 t# l      mov    dl,0dh0 t1 Q3 u- Y* c4 v) ~: |$ G3 B
      int    21h7 V0 J7 A8 c7 `- `- J
      mov    ah,02h
: Y* i, }9 T& F$ N6 J      mov    dl,0ah! {3 a7 N+ k% \% f
      int    21h
+ V2 [! z( f( C1 i7 t      ret
. a+ p4 F( s1 \: e" e, t3 W0 c! K; Hcrlf endp5 Y7 I. I- F# t7 E/ g
;------------------------------------------------------------------------------------------------
1 D* S# d3 b$ P1 s2 F- ?7 y" A& E_32bits proc near
# W4 I7 l: P. Q0 C- g2 O      pushad4 Z, M% ^# ]$ F. |2 V, c
      mov    cl,40 |- @9 h- \* e: M
      rol    ebx,cl* F( k! b4 @% H2 ^5 x
      call   print_4_bits
0 z9 D* n: P" N+ Q      rol    ebx,cl/ H4 A9 c! g# `4 _& q: A. G
      call   print_4_bits
2 f5 V' v) _  {, l  |      rol    ebx,cl
5 y0 A) C! F# A  [* H1 R9 F. i* `      call   print_4_bits, X* y8 U# D; `2 _; m8 c
      rol    ebx,cl' \: l. ~# O1 u: Q" b
      call   print_4_bits8 b, X: C$ p$ Q  E6 R! `
      rol    ebx,cl
' b8 V. K7 A3 Z0 g      call   print_4_bits
1 w: D7 W0 {9 j/ w$ [' }6 O* e      rol    ebx,cl
% }" i# C) T- F6 F( P3 {$ f# Y      call   print_4_bits
4 T' G5 `* v4 {2 N5 j+ U      rol    ebx,cl
  _4 a' ~5 S" c      call   print_4_bits
  R& J  u* J! r, m! c4 X0 B, ~      rol    ebx,cl
* M" ]; H" a8 g1 B+ A: `) B      call   print_4_bits+ p: \8 Z1 M( W( e0 _
      rol    ebx,cl
$ C9 b* \6 ~9 W) t2 r& V      popad
! S' K& W; x& s1 H      ret
5 c% t2 F) O' W% n- C+ C_32bits endp
' E. Q/ w. i( k4 O- Z4 x. P; v7 u;------------------------------------------------------------------------------------------------
! j- R4 A" x3 b; s& U+ m_16bits proc near8 i9 z& k0 A4 l  Q
      pusha        : x% g- ~9 ?0 b& u2 M6 w
      rol    bx,cl
( n6 _0 E9 A# V: s      call   print_4_bits
4 t; {7 I0 e$ j2 ^3 [" y4 S      rol    bx,cl
. h+ v/ ]5 @+ k7 _) t5 |      call   print_4_bits
" a1 b# t, F% {  X: w      rol    bx,cl& t" s# Y2 z7 s. E* C" O
      call   print_4_bits( {1 l( ?4 K# ?
      rol    bx,cl
! ^" X: O; i8 g- t( Q      call   print_4_bits: `, O! H" C# E: R  Z% V% c: d
      popa
( {' {0 `; j$ a      ret
% I4 a4 p- w6 G1 y_16bits endp4 k" @& \2 J9 H* M, W8 l
;------------------------------------------------------------------------------------------------' R6 k0 D+ P- L5 r  S
_8bits proc near; ~0 f+ P+ p  R/ F+ j
      pusha        ( X8 l. T! h6 X
      rol    bx,cl4 f1 P7 e1 C, T( h, b- w
      call   print_4_bits3 S  x+ `( ~1 {
      rol    bx,cl+ m( l. `8 x/ z
      call   print_4_bits" p7 A6 l9 D* `) \+ w
      popa* q' m, T. W5 a
      ret
- C! n/ P( s4 J, g_8bits endp
) s8 I4 C8 X* `! ?1 z+ B! Q& hprint_4_bits proc near
* E0 g1 z* Z: L. n( n6 z- l! C, I. t      mov    dx,bx
% }7 f" K$ j, Q# V4 J  L      and    dl,0fh! X4 ]# k; @& j2 @* r, L. ?
      add    dl,30h7 L0 L1 b1 A1 M2 I  ~3 R+ @( e, n
      cmp    dl,3ah
5 I  P+ X& J; K' l$ q# @      jb     print3 F* o6 C. O9 q3 M
      add    dl,7
' q" d) B+ w6 o( Q+ Nprint:  ( L" s) E- [- y, y! W  i* {) Z' S
      mov    ah,2
# ]# b; @6 p$ a8 p1 D% a      int    21h% B% E; H: d1 w& P( P9 D$ L
      ret
) c7 q8 b9 l9 Fprint_4_bits endp   
3 g0 g4 G) w" q# N5 e) q) OCSEG ends, Q. }. l9 C: e" A; Y8 g
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2025-2-19 07:14 , Processed in 0.039612 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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