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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)- F  F1 d5 u6 D) G

5 Z; T4 z: J# |% u+ b則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
; m4 w3 l: V% n4 d5 [/ I. c% i# D! M4 x, |# l
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  6 P: W7 m( D2 G& P
1 |- L( @9 E+ ?- O5 N
.model small
* A  I* S5 x$ J$ o/ ?) p4 E9 K.386p
) h0 ^8 B3 d& @0 N* k6 XDSEG SEGMENT USE16'data' 7 @3 K6 _0 i0 O/ g4 T& o1 M
2 [/ v2 i0 \5 M+ N6 x
DESC STRUC
7 `! q1 \, V8 H1 T% `. \     LimitL DW 0 ) ~6 U/ s) C! x
     BaseL DW 0
4 u: T8 k$ ~: v  s/ u     BaseM DB 0
! w; C0 o- A; Z# Y     Attributes DB 0 4 v5 F2 o- K5 E4 A9 w
     LimitH DB 0
: n7 X$ @5 t% L1 w1 K     BaseH DB 0
4 G3 e. K- m0 G) H1 v, ADESC ENDS
' m6 \+ n  C8 u0 Q9 U, r: I' a  B  ?( j$ ~1 S+ W3 |
PDesc STRUC
: B9 r$ n0 y+ D4 h     Limit DW 0
5 W5 K3 Q! U: d" n3 K     Base DD 0 + j- B: N1 U. d' ?
PDesc ENDS0 e% a) o, b4 N- j! t$ Y
6 e1 K5 Z& ~& s# t# g- C- a
GDT_def Label Fword, q8 L/ R% T( {
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>% E% U3 l8 N! T7 Z7 f
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
6 q, K0 T: i1 k  H; F% oGDT_Addr PDesc <$-GDT_def-1, >
+ s, N2 c# O5 _" f' q
# s7 J/ O% S; B- J3 c3 ^Maddress Dword 0
/ d0 L' o/ h8 X
  y9 f9 z" S) X- V3 T/ F$ ~DSEG ENDS . a+ w. U6 K# D% T$ F  c
ASSUME CS:CSEG,DS:DSEG% _" l- M; U( O4 F/ P6 L" n  a6 Q5 R

! p9 j% T( u, w2 M# x4 sCSEG SEGMENT USE16'code' 6 K  L+ E8 J* p: H" |- b, v5 u
      push   ds
3 H8 \# W, k7 x, \      push   es
3 |2 x6 m. N( w' g      push   fs! i% [# a8 |  D7 {/ P% `; |
      push   gs
& x" A  Y) h) C: C+ j+ @  W) F8 k4 Y1 m      call   big_real_mode     ; z+ V( ]2 s) C: s
      call   Get_Commandtail
4 l* M! r1 Q$ d% M0 w% v      xor    ebx,ebx
# `4 T1 M* O1 b$ R) j! x2 m      mov    si,82h
. M2 s- l0 o# x$ O) A      mov    al,es:[si]
$ X; p- W( W' A5 W9 R) v0 C+ M4 s      cmp    al,'r'- G$ S' O1 E* [6 p  T
      je     R- }' X$ F( g* y0 ^( O/ E! C  ~
      cmp    al,'R'
( L1 d& \. q6 r+ x      je     R
( V& J& s% Y. J! ]  ^# a2 N      cmp    al,'w'
" V0 _3 _: @) r9 j4 a      je     W2 l$ m" G$ D+ Y4 W  s; f9 b7 a* `* A7 W% k
      cmp    al,'W'/ g$ h" c$ W: b' S0 B1 Y
      je     W          6 C6 q7 w5 n5 L% _: r
R:- y8 t; w" x# X* Q6 e* t
      mov    si,84h
: D2 a* O# r2 ]      mov    al,es:[si]
9 l0 v1 k. r6 F4 {; |  x, H      cmp    al,'b'
2 k- x, T" w# W. i# Y5 w      je     RBT
8 e/ Q2 T4 t, C; U      cmp    al,'B'1 Y1 o5 Z- h3 e4 K) q4 Z
      je     RBT
+ K7 G" P- ~. j1 E3 v6 H+ g      cmp    al,'w'; t( ?2 S8 |8 \8 D3 U. @2 e5 Q* k
      je     RWR
# {0 W* W  m6 o& F, B7 G5 t0 I: i4 j      cmp    al,'W'- m+ [" V( Q! |
      je     RWR) j# K5 B/ N9 J: G
      cmp    al,'d'4 V" `& y2 l. }: F* k
      je     RDR
! ]1 J  q$ K- [      cmp    al,'D'1 G4 S3 \) B5 a* L6 T, x
      je     RDR            
) I, d5 R' C8 Z( v6 aW:      0 y+ F4 m( [6 i0 r2 T7 F" O
      mov    si,84h- U% v! i/ @* M7 A/ [& X5 }
      mov    al,es:[si]
6 o" p' ?, W; f: f      cmp    al,'b'9 i9 Y$ [  M, M
      je     WBT
* ]- r2 K& S) h6 K3 d: [8 [6 M; I' g- n      cmp    al,'B'$ \( I& a! N# h! \
      je     WBT
( e3 i5 H2 p' [- F0 P$ p4 ]      cmp    al,'w'
! K3 s! X/ u$ o  M( P      je     WWR
  w% x/ _- Y& q7 ^7 B& L      cmp    al,'W'! b' O3 T/ Y, @5 x3 d5 X
      je     WWR
  ?' Y' M- q' c      cmp    al,'d'
( F7 {2 c& f: Y8 m5 F      je     WDR, I0 K& R$ T7 h3 B& m' G1 |
      cmp    al,'D'
; _/ @, g5 X) K1 Z! L2 @      je     WDR
/ I# o0 z$ i8 bRBT:2 t  G( S; h8 ?, R" e- R
      call   PSP        : r# q0 I* I' U4 [( a, z* }
      call   crlf           * Q7 z7 @" b, s0 a, r* D1 j, X, B
      mov    esi,ebx
: n7 D3 n! O& \3 u      mov    eax,fs:[esi]
! O/ O7 h  W8 t      out    80h,eax
) O( d+ f% F" s      mov    ebx,eax
0 g/ ]4 I7 L" }% A7 X" G      call   _8bits" ]# \$ h5 F/ {$ e1 N( ]
      jmp    Exit) Z8 `0 o0 a9 F3 Z  A4 {! n6 o) X
RWR:' X' G" y2 Q% q
      call   PSP        
& W$ [; c& a$ L7 w" P      call   crlf           8 Z4 r4 |- p0 F
      mov    esi,ebx
3 E2 k7 s) B- S# I3 Q  s8 N7 S      mov    eax,fs:[esi]) M; L- _9 U) s
      out    80h,eax
1 j7 d1 ]  r+ F5 r7 X      mov    ebx,eax
4 r$ X& z/ t: v6 R7 S. q: b      call   _16bits
; w3 U5 F9 q% J6 N/ T      jmp    Exit
8 O# x5 E. `; Q2 x& P& pRDR:; t; _& j6 d! ^1 a1 @' L9 Q
      call   DPSP        7 P! X: I( j# \/ h
      call   crlf           ( g  c9 O, B# z. p( j1 B$ d- `
      mov    esi,ebx% f. C% H9 a) R& {2 [
      mov    eax,fs:[esi]
2 x1 G' b3 H: V" v5 q' [; ]6 L      out    80h,eax
8 F3 S3 \! l, s/ m& w9 V      mov    ebx,eax
4 S( O, n& Q9 S' N& [      call   _32bits' G" E) M% z8 r' a: I9 _4 U( V/ z* g
      jmp    Exit
- w" s: U" T$ d. c( h;------------------------------------------------------------------------------------------------- R" m( p3 _) R) F3 G$ c
WBT:" @3 A+ V% Y" ?$ |8 a+ n. P
      jmp    Exit$ |! Z' t$ f. l) g$ D" p5 _' u
WWR:( u/ Y8 H# U7 ?' E8 t' G! G
      jmp    Exit  h  E; ~! a4 Z& l& v
WDR:6 n7 v0 [- k) {7 _9 a; m
      call   DPSP6 v$ d+ _3 @, G
      mov    Maddress,ebx      1 ^) }3 C, a/ t1 X6 |; f
      call   crlf/ o# @0 b" ~' g9 a
      call   WDPSP# L6 B3 y+ m# A8 g3 N
      mov    eax,ebx
6 k) l5 q4 Q; S& r      mov    esi,Maddress          % w2 U' |4 y& h
      mov    fs:[esi],eax
8 y1 M$ Y3 w. r/ i8 P: Q/ X      out    80h,eax
: |+ ]8 T' K( U; `  e4 r      jmp    Exit% ^( {' |$ M& D* C# h7 j2 l
;------------------------------------------------------------------------------------------------       $ {3 |$ u+ M3 `8 h0 O: b
Exit:+ o# }7 z# v2 A+ _3 v* d3 S
      call   real_mode     
: J( i: a: K" |: O* y      pop    gs: g/ d6 c7 N2 ]1 o7 y7 V
      pop    fs
0 N  [# `7 v4 h      pop    es& q" c; k2 Q  c
      pop    ds       2 Z# ^# f; S2 Y5 k7 b4 `
      .exit
1 a3 C' ~2 K) S! G2 Q: _;------------------------------------------------------------------------------------------------
5 j2 _( v2 @2 l5 t. r& {big_real_mode proc near/ Z5 Q! ~% n# @3 U2 I$ u& X
      in     al, 92h" m$ t  \0 j3 L" I& G
      or     al, 002
& l0 t( z8 w6 W1 \4 y. Y; A6 g      out    092h, al
8 V% r8 G, [' J% ^% A1 a0 U8 f4 l      out    0edh, al& m8 S( g8 N9 d$ Y
      cli
3 ?& I) x3 M6 B0 A' r) A      mov    eax,DSEG
# @& _. t" _5 ?) G  [& H      shl    eax, 47 D' T7 t3 Z. Q4 ~% V2 c) `# Y$ M
      xor    ebx, ebx: I: ^& m" @6 l* n: q$ V9 ^8 o! [
      mov    ebx, offset GDT_def
7 q, R6 w! h! W# p% @      add    eax, ebx/ v- F3 n! X3 s$ Y
      mov    dword ptr GDT_Addr.Base, eax
+ I' a6 Y% H: n2 ^      lgdt   fword ptr GDT_Addr7 X) h* l$ e0 I; X7 \: }) B
      mov    bx, 8
  i1 i* S- A) D- z( _# M% G      mov    eax, cr0
( }; J1 T* k& O0 S% k; x& f- A      or     al, 1
) ?8 n# s/ _! U7 I" v, }      mov    cr0, eax
8 n% x) d4 k3 L$ y- Y% X( H3 {      jmp    PMod
; F% p* [$ R2 G1 WPMod:, [! O, F; x: J7 m' r) A: D1 E. M
      mov    fs, bx/ ]; F2 q" }; X5 d6 ?: H
      mov    gs, bx$ R+ _5 U* k, {* p: W
      mov    eax,cr0
5 m# G8 N2 W2 k      and    al, 0FEh% [  k5 Q. I9 S4 i# |% _' \3 G
      mov    cr0, eax
9 g: Q# m" ]7 t/ Y0 z      jmp    RMod
* t3 L2 P. c  O+ o2 H- _RMod:
: I2 j# R: U- c- f      xor    ax, ax
0 B1 y& G7 r' j5 ~      mov    fs, ax
5 o4 w" F+ O0 H8 @. a      mov    gs, ax     
$ x3 m; t5 L* `8 l& ]      sti     " {) w9 k: l+ o/ e: }3 Y3 Q
      ret
0 U) j( f" t/ o5 F; U; nbig_real_mode ENDP
4 V9 K! I+ v  J0 y;------------------------------------------------------------------------------------------------1 D: X3 _8 r* X  `6 Y4 c
real_mode proc near$ m; q, g6 c$ a5 F7 [. u0 ]/ O; J
      in     al, 92h
& l. m7 d2 c' `! n      and    al, 025 m5 I: k+ y& f* E/ ^* y1 {9 C% S
      out    92h, al   
6 e; F3 x; s3 u3 ~7 F: D      ret
3 [% H& b% H/ C2 R) y; H/ S; Areal_mode ENDP, o5 Y% Y% r/ x! x; y+ P. Y, J
;------------------------------------------------------------------------------------------------7 s4 [1 Z/ v: V
Get_Commandtail PROC near
8 P/ i- f- d' W3 }1 W6 }( F  ?      mov    ah,62h
$ f/ F6 M5 x: G. `% a1 K+ t      int    21h
' v! ^3 Q; n6 J% h  f      mov    es,bx, U3 ]) C5 W- z
      ret* A9 _. [4 o" {: P
Get_Commandtail ENDP    ) a7 A% [4 l" G; M2 W
;------------------------------------------------------------------------------------------------1 c0 E4 y9 ], D6 E4 I
PSP proc near
3 g' r' q' I& r5 B      xor    ebx,ebx$ B2 e/ n7 J# r# r. U
      mov    si,89h! F5 |7 v/ J! l% _/ D" Q
      mov    al,es:[si]
, L* ^% u1 _8 X$ {3 _* ?- ^      call   Change
3 w, F4 V/ j( z& ]  ~, L; F      mov    cl,4, F8 ]6 R: S- p5 w3 ?, _4 {: y
      shl    ebx,cl
+ n8 ^! H. R: F4 f& ^9 |) B& X) ?      add    ebx,eax* `+ c4 Q& \* K# f
      mov    al,es:[si+1]% h. O9 o* z8 W, U& t1 C4 C
      call   Change) N  L# O! v2 g2 ^& b, [/ z, g; Q4 d
      mov    cl,43 U4 F, f5 G( E7 |- {% R
      shl    ebx,cl
' i4 w$ D9 b' T  @: i      add    ebx,eax
( @, M( @) M9 Y( F1 a5 q, M      mov    al,es:[si+2]
/ `* C! |- k% \  l9 |1 T* \1 }      call   Change: \6 i) ^1 M+ g5 s/ T5 a* n
      mov    cl,4  P) B0 I/ o+ U5 P( x
      shl    ebx,cl
$ `3 y6 d3 G3 F0 D! [1 [4 P4 \      add    ebx,eax
2 f' {+ L$ V% d9 l: {      mov    al,es:[si+3]. B( ~' _$ J, n, T0 o; s! T8 {+ g
      call   Change$ T: q/ T% f% w, G5 L+ S" O
      mov    cl,49 z, b0 k1 m& I1 {) \
      shl    ebx,cl. `$ V& f) {9 T! G/ G5 H/ u
      add    ebx,eax
4 q+ T3 w, `1 n* {* n4 m      mov    al,es:[si+4]- {8 }7 i, }4 p4 x. l
      call   Change
7 x$ G0 |) G+ ~7 w0 C( V( r      mov    cl,43 S9 i3 W) X. f
      shl    ebx,cl
9 C. F; a4 F- ]: A# T      add    ebx,eax
6 f( a' C+ X! ~% E6 L( _      mov    al,es:[si+5]: }4 K- P, w" A
      call   Change, D9 r* f) d- ^$ ^+ n0 e9 n
      mov    cl,4% e! X- q+ |0 |8 D, Z( Q0 R+ g2 {
      shl    ebx,cl
4 P* L; h; i$ o9 V1 W) _      add    ebx,eax
9 T. C8 B- T- X' s* `      mov    al,es:[si+6]0 W4 g3 l9 c) l$ _/ A
      call   Change4 W+ Z9 {' J. b7 e5 e
      mov    cl,4
1 A' I% p6 K6 f* I: D" K9 T: v      shl    ebx,cl
3 r7 R- |- C2 m7 T5 h5 d      add    ebx,eax- L0 h2 X6 ^0 ?7 m
      mov    al,es:[si+7]( |  e: K' X5 u1 A" j! ?( R
      call   Change4 ?% X5 G+ @( ~' ~8 i% r! H$ J
      mov    cl,46 c# m$ m; y8 Y
      shl    ebx,cl/ B" r" F3 @. ^5 m
      add    ebx,eax) L/ J" q# y. h7 r! V1 n+ t
      ret) a+ T5 [# G/ s8 _
PSP endp
- D! S; v2 B! K% h;================================================================================================
5 ~! O& A; w& L/ D% w, o# SDPSP proc near
7 R6 I4 \, ]0 W% s8 Z; n      xor    ebx,ebx
5 V2 d" J: n  v% @' A( O( m8 E  r      mov    si,8ah2 e0 y  b8 V2 j7 a0 D2 s
      mov    al,es:[si]2 }) O5 P/ l- W" o* Q
      call   Change& Q9 H8 d- _0 a) k7 X6 u9 H+ k$ X- v
      mov    cl,46 t5 n6 \8 Z" [5 O, y0 W
      shl    ebx,cl
  ]; T( p5 B) k) P      add    ebx,eax' |8 N' {" n2 |2 I
      mov    al,es:[si+1]" y! A; ~) r4 T2 O3 z1 l
      call   Change2 b: H- a9 y1 B9 ]( {% {
      mov    cl,41 U. z# `: u0 t4 \/ T& D/ g
      shl    ebx,cl
" J: j1 D! b+ X7 Y4 \      add    ebx,eax' r+ s& _0 v/ b: M: V# E
      mov    al,es:[si+2]" a! \5 T& }7 |  Q1 ~
      call   Change
5 c; D3 ~  }% {, q: o      mov    cl,4
7 ?; w$ R) i6 ?% O! h5 E      shl    ebx,cl
; d/ I, a$ m% f, ]3 z$ _$ }' s      add    ebx,eax
, k9 c( m8 P* R3 @* ]3 k6 _      mov    al,es:[si+3]
7 z/ t1 }2 Y4 K4 V) O/ m/ ~      call   Change% p1 Q9 f! P$ S3 m7 h9 E
      mov    cl,4
( M9 W& X, E" E6 ?% p2 E' a      shl    ebx,cl) M3 ~6 y- [6 f% U3 ~6 R/ n2 d+ W
      add    ebx,eax
. _& v% K7 ^2 x5 ~" T4 s- X$ _9 D      mov    al,es:[si+4]
7 ]5 n2 R+ S4 A" O* R, \      call   Change# n) P. x$ l5 j* \, t, Q5 q
      mov    cl,4, |- }' c# h( H( Q3 X. s
      shl    ebx,cl1 U) m6 G( {) C; g8 }6 t
      add    ebx,eax) N# L! X3 f4 Z
      mov    al,es:[si+5]# Y( L4 B4 ~5 J1 J: x
      call   Change
8 |- w* ~0 ~4 H) D( t      mov    cl,4# y3 X/ t3 d0 a( O
      shl    ebx,cl) I8 |2 M' ?+ _9 }- U
      add    ebx,eax* E# d# T; e  f' M2 K, r: S( U
      mov    al,es:[si+6]9 D% I& a7 G3 m, f; p% }4 b/ v
      call   Change
7 F( F2 G! A7 k      mov    cl,4
, C: J3 n& |, C) Z2 e; B' C      shl    ebx,cl9 D1 x0 R4 ]. C, y- q, u
      add    ebx,eax  A* ^8 w2 e: Z7 _" o
      mov    al,es:[si+7]4 x. q- D/ F0 M4 y6 k
      call   Change9 r! s7 S' @6 g
      mov    cl,4
: z0 r8 g5 [+ x6 k' U      shl    ebx,cl6 F& Z1 K3 t) B! A3 g
      add    ebx,eax+ O5 L% Z) ?: J
      ret
; j( F) D6 J* d! JDPSP endp4 {& P% W1 g" s* ]( M8 D( d
;================================================================================================
$ \+ G7 S8 W" sWDPSP proc near
! v, L; g. O2 Z2 c. s  h' f      xor    eax,eax& V+ m8 G; n( M0 d1 t
      xor    ebx,ebx
9 X0 v/ Y5 J7 E  q' C; b& V* R      mov    si,93h4 g3 R$ k9 f6 K9 A/ A" Q
      mov    al,es:[si]0 c* {- y# F+ S) v
      call   Change& Q6 _3 L( B9 x& ~
      mov    cl,4
6 u! s% X+ D9 o) F$ E2 E' d2 ^      shl    ebx,cl7 _: Z/ T) h, k7 b
      add    ebx,eax( W7 V2 ]$ }" C# A, ^2 o: X
      mov    al,es:[si+1]4 u( C- I/ O# C. d
      call   Change
, q3 O2 _: f" I" R8 }      mov    cl,4& o, e/ A; l' `: I. D/ L
      shl    ebx,cl7 W0 x( {9 C/ p- ?
      add    ebx,eax
2 `# K: V/ U% {      mov    al,es:[si+2]. i$ N; V9 J; S6 ~9 a( D
      call   Change' _- ], ~( z  M) o5 v: d1 I3 `
      mov    cl,4: V5 ]/ u* B8 D1 c: W
      shl    ebx,cl$ @, `8 |# D) ]8 ~- A) {- U
      add    ebx,eax* B9 v' M; l& ^, n
      mov    al,es:[si+3]! K/ t7 d6 {6 v  @1 i" F
      call   Change
/ t& i/ i, U$ \  r( W3 M0 ^      mov    cl,4- r0 e  o& M4 y$ ~/ Y3 E
      shl    ebx,cl
, R* Y/ |2 x* V$ e/ a      add    ebx,eax
1 z( t5 ^! }: A6 z+ u) }9 e      mov    al,es:[si+4]6 w/ I: H- y4 W( {* n
      call   Change' k. r6 Q' i# I+ z3 d
      mov    cl,4
4 D& E  u* ]8 q" E0 G# M      shl    ebx,cl
; U5 E7 |2 T) I" R- x6 `. u      add    ebx,eax
2 o) E: n. W. `3 v( o      mov    al,es:[si+5]
. Z: h6 Z) c6 V2 ~+ y      call   Change
6 y7 w/ B" C6 d" C      mov    cl,4
7 r  ]' u6 L; Z( m. o      shl    ebx,cl
4 H7 P) ]) R  n( u) }      add    ebx,eax
. f3 Z! W* l& x% ~; s$ e      mov    al,es:[si+6]) @$ [  L- a7 E
      call   Change) G* a% Z, Y. t- O' e" X/ F* I
      mov    cl,4
& I* e- H! ^( S; N) s6 j; a      shl    ebx,cl* s5 a; J" Y  e! T% X6 h& }
      add    ebx,eax
- P. X& O1 c" V      mov    al,es:[si+7]8 X. Q+ }- b. n/ x  l- z1 j
      call   Change
, [. c* Y1 U8 M) Q; S      mov    cl,4
1 F3 B9 M. `" F4 l7 c' d3 `, u      shl    ebx,cl! b7 v; s) a3 {' l/ z, R& |
      add    ebx,eax# ~; E8 c; R# t) q
      ret0 \6 F: p! J2 p# I
WDPSP endp# R( v$ Q: H7 V# @
;================================================================================================, T/ e* C; C8 G
Change proc near
0 u# M+ e' s' {9 M. kA:    : k" t; w* J, N7 `2 c' w8 {
      movzx  eax,al' v) g: j3 j. T, P: t- u
      mov    edx,eax
6 O2 a- _0 }" w1 {" p8 _# l      cmp    eax,'0'            
$ L7 }- E8 W% B" y      jb     A
0 i% ?# y. }0 C8 P" Z      cmp    eax,'9'            $ i; b" q/ w2 s; w# Z
      ja     B
) a: C2 r; t3 D! d" A) S7 F      sub    eax,'0'7 i8 M7 Q: P- ?/ {$ g
      jmp    short E2 X& I! m. K+ f" h1 E; V" w
B:( }# w, Q- E( \
      and    eax,0dfh           : `* S& h/ |- d4 a0 C7 s/ `
      mov    edx,eax1 b0 c9 h4 V* X; P5 I6 n* U
      sub    eax,37h            
3 P2 t0 G4 q- p      cmp    eax,0ah* \4 X5 {( R& d! q0 X& k
      jb     A                  
) o( A# K( b" V6 O      cmp    eax,0fh
5 \4 O2 p4 U) e1 |) i      ja     A                  
$ J# F7 n2 L  Z4 ^% AE:1 N% m! g  L) u+ e
      push   eax       / y' j9 b" t3 [6 d3 T& m7 }; D
      call   PRT               
6 j6 p- D$ Q& K; A1 g- k$ r: ]      pop    eax
; _, w! N7 }$ ECExit:
2 @) b. {" `9 }# U3 H      ret
" X0 v& ^0 S& s& f5 i9 DChange endp% m* T- P  z0 X
;------------------------------------------------------------------------------------------------, p4 P+ c8 g6 K8 w5 R/ l* l! m  i
PRT proc near
; ~8 t  c% l% ^& r' A, q      mov    ah,02h9 D  \! L! X! i, ^
      int    21h3 U% O' L# K; C6 ~2 U- o
      ret
# p% q: r. B5 k; ?1 VPRT endp
/ {$ j/ N5 ^- c$ b- D;------------------------------------------------------------------------------------------------7 U5 m! t# @  d1 S2 F1 Q$ a
crlf proc near
$ Z" J. ~* A, ^, f+ Z1 v      mov    ah,02h7 e0 p( K% n: `2 j2 M6 J! i6 i
      mov    dl,0dh
8 _8 M! G) w. H3 b      int    21h: \) E# }: E' O  d6 X; t
      mov    ah,02h
3 @$ c. `! X. y. I- ~! h      mov    dl,0ah
) n/ O- L3 n1 c& u, _; ^      int    21h) j* w+ J) x; g  n/ V" @8 h
      ret8 ~4 ?4 A. g* l4 K' [+ r) [7 l2 K; A
crlf endp: n4 A4 v5 }- x7 U. F) A
;------------------------------------------------------------------------------------------------! ]' `- H) o5 Z2 ]3 C& f3 o$ t
_32bits proc near
- w0 c/ O) A  E0 ], ^/ _5 d      pushad4 n% P0 h- G- H7 j9 Q
      mov    cl,4; Y  y/ x/ D: f; z
      rol    ebx,cl' j5 W. k: Q3 Z7 ~2 ?1 z5 E; s) v
      call   print_4_bits% H7 C3 o& t" T- H8 J  w- E
      rol    ebx,cl
. p" D5 J! V/ g7 Q. ^8 `! E" q      call   print_4_bits
* K9 C3 i1 g6 z5 u; Q& Q* A# W0 ?      rol    ebx,cl; B  {* H% B2 Z6 @/ f- E# p% u
      call   print_4_bits
& A: o9 K% @' g' a" I      rol    ebx,cl2 y1 e" W8 t; W6 @1 w
      call   print_4_bits
- B4 u1 K" i" X# B3 \4 a6 M* O      rol    ebx,cl
0 h5 E8 r  u, O% w7 Z5 U. n      call   print_4_bits
1 u$ S; S" L5 U" l* ?8 a7 b      rol    ebx,cl7 ^* a( a; S% D4 q- J5 x
      call   print_4_bits  @, l) x; o- O) c
      rol    ebx,cl
" H4 T# _9 F. i' Z# [3 `      call   print_4_bits
' Z2 E4 T  q' A- v. \      rol    ebx,cl3 @( ]" l: T0 L; b6 u% P
      call   print_4_bits3 E1 E/ v7 r8 v' l# R! c/ u
      rol    ebx,cl) y4 a( M3 ]$ e$ Q9 _' M
      popad
2 q# S/ ]9 A3 q4 t5 p; ~+ e! {      ret
4 ^2 F" t$ T! X9 |  Y_32bits endp
% O8 P* I. T* r0 r7 H3 d. ]7 Y! R;------------------------------------------------------------------------------------------------
* i9 x0 L; A; S% D1 V_16bits proc near
- V7 q5 }# s8 H9 [) ?* g- }      pusha        9 O, E! s8 Q! B0 K; C# _( L" }
      rol    bx,cl
  z  J1 N% D" i8 A4 I      call   print_4_bits8 C+ r% d& G. K
      rol    bx,cl% ~! x! B  L  Y! i
      call   print_4_bits. Z5 v2 g0 L; q- {' w# k( e
      rol    bx,cl. h" \# W  I! x. k
      call   print_4_bits9 i& b' k3 ~7 \, R* U% z2 |  I
      rol    bx,cl/ E$ M2 l. P) e6 r8 i( y- i" j5 C
      call   print_4_bits0 H, r$ Q! J  W. @6 m+ @* N
      popa) V# x' s8 ]6 n0 ^$ t6 d0 o
      ret
: \+ o! i% u* s7 `2 {4 {_16bits endp
: P' i9 \! J- D! q  O) ~7 g& |! E;------------------------------------------------------------------------------------------------
( }  y2 k, {$ V0 H_8bits proc near; r( y2 U) ]: K4 N1 v4 Z
      pusha        % ^  A* s4 y) m+ _6 f
      rol    bx,cl
; i( ^' ^! f8 B& L9 k) `5 d$ ~      call   print_4_bits& m) P4 a; J, ~6 W0 ~# ^: n" C
      rol    bx,cl" h/ e! {+ d/ Y7 u2 G, E
      call   print_4_bits, {9 F  N: W4 F
      popa
$ T7 V9 s5 L, D$ i      ret
! p/ {) b5 b: k; @4 @/ q2 W_8bits endp9 {( E7 x2 S6 ^% z3 p
print_4_bits proc near
8 H$ E' V( {, O- Q' E      mov    dx,bx
" [. G; U6 R" b) n      and    dl,0fh( L2 ]' P  q. [/ U' \- V
      add    dl,30h; J$ u( P# O7 n
      cmp    dl,3ah2 Z* O& ]+ c8 h) {6 L
      jb     print
1 I4 d) f4 E( E( m5 t* ~      add    dl,7
# }) _! F9 @: B5 v4 yprint:  
2 b- Q" K: w: m; J$ P* A6 q      mov    ah,2
9 r! D: J; }( U  R" R      int    21h/ h/ c4 J3 f" S) D" g' U
      ret
2 W6 ~: J5 z+ U, tprint_4_bits endp    ! [! Y+ X. g1 f( `* M) i: u- c) Q4 ~
CSEG ends
8 T5 D2 l( s8 KEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-8-11 16:59 , Processed in 0.050498 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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