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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)
) ]3 z$ E; ^1 z# v7 Z/ K/ ]
, z. S+ D3 J# i' l" n則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data') B7 H8 y- c# u5 c* Y' S& z

7 ~3 r4 }4 a" Z2 M* m8 ]. ~* p) ?宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
$ J  c5 i* M/ N, `8 c3 d$ R9 \4 x0 t/ t! f; ~5 l
.model small
, E" h$ k6 ?2 V  k1 U.386p+ f) [7 P* a/ \" s- g
DSEG SEGMENT USE16'data' 3 B8 y4 ~; x5 v  {

7 Y% P! ]0 q. {% W3 q7 FDESC STRUC9 Z: |6 H: }& q6 `
     LimitL DW 0 9 ^. M6 l+ d6 ^( m4 y" ]) X3 P
     BaseL DW 0
/ X& e4 X7 H' p! E     BaseM DB 0 % z# I$ P2 R9 r# h" |
     Attributes DB 0 . \9 J0 T' i+ x/ U
     LimitH DB 0 * u1 }. X  I# N
     BaseH DB 0 & [/ l% W) w6 |7 M5 g
DESC ENDS
; N, }# ?& V( R' e1 f" D2 ]  H" r3 S: Z3 D7 I( e) \+ O
PDesc STRUC
2 F. V. j2 A  S2 Q/ }2 D3 @     Limit DW 0 9 B9 m. t0 x3 [3 C9 |* a
     Base DD 0
7 x  u* p. l+ W' D. g4 \' z) W, s& ]PDesc ENDS
( d; x) v) @' g" ^* ^. y# f( t# E' A- Y7 g0 s5 Z
GDT_def Label Fword3 S& u4 L+ u' L; F. U0 R( _
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>2 O7 u5 c8 `: N. O  ^& t# B1 |
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
8 j; V! _6 v# P: A  MGDT_Addr PDesc <$-GDT_def-1, >0 C, M# V5 \: W" H0 m$ G
2 c  s8 N5 S$ `. `- H/ s6 ^3 z6 q
Maddress Dword 0
2 b' N- I! k- [' h8 E. _$ u5 _/ F3 \) b- j1 j) O# l: v
DSEG ENDS - a$ t$ R, e2 ?2 s* W" i8 H
ASSUME CS:CSEG,DS:DSEG8 a$ M  S; @; R0 t

9 Z2 X) D6 F! x8 I' q& C' J- P  v9 ?CSEG SEGMENT USE16'code' % ?: E: a% p: Z! ~4 K$ q# y
      push   ds! e- M3 t4 p1 `, S" o0 ~* C0 W! J
      push   es. o6 M$ \5 G! Z' W
      push   fs' V0 A5 Y, C& g& M4 ^0 b0 x
      push   gs
7 ~) R7 w# p0 d" R3 A) e1 q      call   big_real_mode     
7 x! q$ M& r3 U4 L+ {. u& L, c* i      call   Get_Commandtail+ C; V# ?# M0 n
      xor    ebx,ebx# W! k& b) }; q# }
      mov    si,82h6 a4 ]* i3 n! M* U; h5 l4 ?
      mov    al,es:[si]
; I+ n' H: N  `/ t' S  a      cmp    al,'r', a% p8 t5 F; v; ?
      je     R! B7 a$ E0 ~) b7 }
      cmp    al,'R'
2 x2 ^, u+ c) v: `) W  F4 w      je     R
; w. V7 Y  [+ g' V: G% G: L7 h$ m      cmp    al,'w'3 h. a- j0 g. t2 D
      je     W
- S6 U* T: K+ _9 k. x! D- q      cmp    al,'W'0 d. s7 u1 a1 H
      je     W          4 m5 ~( E. P' U# D% q
R:( z# [  X$ I; g: v
      mov    si,84h
* [, R( W0 h, C7 c      mov    al,es:[si]
; i" f% H0 ~- n' S9 G- ^( _      cmp    al,'b'4 _1 H% P# N; y  [
      je     RBT
) [1 O# I. {! C' Z7 H( \  M7 d      cmp    al,'B'$ `2 O1 E2 I. b, b! s, ]7 q& N0 F7 K
      je     RBT
. B$ K# D3 a/ {- x' F% C' `2 W      cmp    al,'w'
; B- Y3 ~5 V; ]5 W$ W" P( @      je     RWR) }3 o% z$ H; M1 F
      cmp    al,'W'! [+ G3 K" c* r4 _! I7 q5 K
      je     RWR7 X. N) @! l4 z6 Z8 s
      cmp    al,'d'
" t, q$ m/ N0 a( C/ H. o6 L      je     RDR
! F+ T; s; s4 t; m      cmp    al,'D'
0 a  ~4 ^9 n( ]" @' x8 D2 n$ P9 m; Y      je     RDR            
' W. S3 e* v5 M  _" n. B" EW:      
- ^. R/ L1 T5 `6 x      mov    si,84h
& |# s" `" ?% X' N+ F: n      mov    al,es:[si]
$ [3 A5 y6 h+ ?- @5 A* y      cmp    al,'b'% j' q5 A& z5 j* N+ F# {% @
      je     WBT
3 f1 d7 Q' _- V      cmp    al,'B'+ r& @' Q' v! N7 e: k7 d
      je     WBT1 ~9 N- f4 w3 a1 G# i
      cmp    al,'w'. b: D; Y& S$ p: ^* [! I
      je     WWR
! W  a4 p! d  \* B3 H      cmp    al,'W'
+ l; r$ ^5 Z2 G+ T5 x2 u+ U3 ~      je     WWR6 u# N# _1 H3 n
      cmp    al,'d'
& r" W5 ?& s$ c  v  I7 |      je     WDR; r2 K8 J6 n6 ~" |% Y8 ^
      cmp    al,'D'' b7 f" t1 S% w9 O" Z
      je     WDR# F/ t/ {. V! f+ O; {* u( O$ N
RBT:
* U- K# ^: X& y+ X5 d: W$ P3 r      call   PSP        + f- v, v: S. x. C8 g1 I! {1 W8 b
      call   crlf           / l+ ~/ I, N; Y2 T+ B: x
      mov    esi,ebx
- Q! n5 e8 u) ]& m6 E2 B' D+ m      mov    eax,fs:[esi]
0 Q: _" e& [" g3 A; P' F      out    80h,eax& ?7 e' p3 z1 s& Q" r
      mov    ebx,eax! M3 O: m$ H  b; F0 P9 ?$ E+ ]
      call   _8bits/ }% Q* i: y4 H" A! y9 F
      jmp    Exit# G: b9 t3 J  j' I* L4 U# a( o% J0 b
RWR:! h4 K8 @1 H5 d% n* Z4 s
      call   PSP        
# m+ ]8 n: |' Z, ^; Y      call   crlf           ) _0 D7 U) n* Q) [  B/ F4 x. L
      mov    esi,ebx' u7 u( p% q$ c2 @1 B3 H% M- _1 ?
      mov    eax,fs:[esi]
; X. k4 S: Z+ U      out    80h,eax, L( h3 m! h+ I5 B2 @$ r3 D
      mov    ebx,eax
; o6 a4 }+ d5 |; o# o6 {      call   _16bits: a. K% W" e% z* n& F! V. ]* O
      jmp    Exit5 m# x! V! q* K; C
RDR:
0 D( T" u0 c: c, {9 v2 U" q$ w) }      call   DPSP        + l! Q3 J% j& D& L6 P/ a+ z5 w
      call   crlf           ; S) V" Y, I7 r2 b" f1 y
      mov    esi,ebx
( w3 T' g0 |. C' B9 i+ a      mov    eax,fs:[esi]
% p. R2 S1 W; l$ F7 O      out    80h,eax
% L- Q1 G2 a, t" \" y      mov    ebx,eax* V- w( M6 N4 e: M" C
      call   _32bits1 o5 K- ~; U. h& N
      jmp    Exit5 p8 _2 ?4 `6 v( I& x5 B
;------------------------------------------------------------------------------------------------% k9 b$ B, m4 j. ^) b
WBT:7 t3 x' q! h# z( h( ^
      jmp    Exit7 Z6 m: c; Z+ {; C% O. z9 O) j7 U
WWR:
0 U% Q" G4 ]  @" C      jmp    Exit+ @3 L( i+ @! I* G! d3 G
WDR:( \8 O3 }) w, o$ I
      call   DPSP! x4 I# j" Z. K& K" G$ y
      mov    Maddress,ebx      . G% M& @/ g  w0 t  R7 [
      call   crlf1 }9 J# Z6 U3 f' P& }
      call   WDPSP
- Z1 D, F$ p, U8 w/ n      mov    eax,ebx
' h! Q6 u" c* Z* V  w' w      mov    esi,Maddress          9 V8 L# S6 C4 I( k" t: `- B
      mov    fs:[esi],eax  F  V* b3 y6 f, Y8 G- U1 `
      out    80h,eax2 S/ ~; N# m" v- Y
      jmp    Exit
8 R! \* |( _( ?) t# {4 R;------------------------------------------------------------------------------------------------      
' e: Y( k! d/ R" C: h2 j' \Exit:
" x4 r' a: t: L9 U1 @8 S      call   real_mode     
( M" U5 G  D, q, [6 E      pop    gs- x5 k! F7 T; ?" v! `  i1 B
      pop    fs5 \" ^1 ^/ h* K7 ~$ o
      pop    es
& o& N6 R  C/ m4 S  g/ w/ D! {% x      pop    ds       " M7 k8 Q- X0 [! o
      .exit
4 p( d  D* h  Q: ~+ E;------------------------------------------------------------------------------------------------
* c7 j$ `' {+ n' C& sbig_real_mode proc near
/ i* j& |5 |6 e- c      in     al, 92h' u2 B- L8 \! q
      or     al, 0024 {- w" S2 P" g/ J
      out    092h, al1 J+ s6 Q2 z1 R- E9 t- a" A& Q+ F
      out    0edh, al
7 r# ?: G; e# G; s# j      cli: |6 y$ S( D( O+ b5 C3 }7 }8 R% a
      mov    eax,DSEG+ s* ]7 w5 F0 D: P$ ]
      shl    eax, 4  A! C4 c. i5 ]6 n
      xor    ebx, ebx
/ l, f1 z: u: o" O      mov    ebx, offset GDT_def
# j' G5 A+ r# c; f8 `( W      add    eax, ebx
" O1 h& D/ j9 ~+ g      mov    dword ptr GDT_Addr.Base, eax
$ g* Q; C! s: u; M      lgdt   fword ptr GDT_Addr
0 P, D( {/ I6 H: r+ H      mov    bx, 8
  h6 m# S- d; w% a# L      mov    eax, cr0
. s) N; Y4 R- z! B2 ^9 N7 V      or     al, 14 l' E( w& ~/ p9 h
      mov    cr0, eax
5 l1 U; r+ Q; a1 n! t/ I      jmp    PMod
( l& P* h7 F9 ?. ~% v' A2 E3 aPMod:
8 M9 ]/ [& _; K      mov    fs, bx
: ~6 b4 T, [4 ^' t$ W, [      mov    gs, bx3 Z& I& |# e0 ^) M
      mov    eax,cr0
  ~% u8 {6 F; T6 A0 j- O8 f9 Z      and    al, 0FEh3 l1 N- B$ C, }
      mov    cr0, eax
2 Z/ z) g. _2 \' s      jmp    RMod
0 ^) @& U' ?- d6 x( J$ HRMod:: i- `: `$ Q2 k, {4 W5 R2 i
      xor    ax, ax
2 K, J9 T/ |5 Y. B, {7 I      mov    fs, ax- [$ z$ {% ]9 f7 A% l+ n6 ^
      mov    gs, ax     8 j$ F% b' r' d! s3 V# M
      sti     / I' T7 Q/ E; C7 |% e- I) Y3 ^
      ret
& U0 w0 F4 ]( C* i+ Nbig_real_mode ENDP
$ p, P/ h3 \8 E  C+ l! @3 r/ m;------------------------------------------------------------------------------------------------
: |3 z' P( p- L8 e) q- yreal_mode proc near& N7 J/ _2 e# P1 R
      in     al, 92h
. I- L" @6 G5 \; `7 @* P8 K* i      and    al, 02! k5 ^. y. |& y( j- f5 T
      out    92h, al    7 W. l3 k9 U+ O# Y6 b2 i: G
      ret
1 m7 S+ n4 t) Nreal_mode ENDP
! x* ^2 ^$ a4 p. P/ w;------------------------------------------------------------------------------------------------
+ u; u' W4 i2 [1 d2 nGet_Commandtail PROC near! Z+ a1 h0 U1 c+ e( K
      mov    ah,62h ( \- `6 }* I" W4 P& D
      int    21h
5 V' V/ x% g# @! G/ W      mov    es,bx
# [$ h- N, D" {1 x# N      ret
% n  G: D' E) ?( ?- a4 n6 v) W% xGet_Commandtail ENDP    , K( F, J4 x' Y
;------------------------------------------------------------------------------------------------
2 A$ g  m1 Q6 G: ZPSP proc near
0 f  J3 q& }2 Z0 q6 w2 j; @      xor    ebx,ebx
. y# k& G6 b. B      mov    si,89h- j2 x- G6 u* N3 e
      mov    al,es:[si]+ r% N! h4 b; G# t) o. z
      call   Change! o9 x2 e; `4 E$ ^, T. z" O
      mov    cl,4
4 S" Y1 X$ \0 B% F- I      shl    ebx,cl4 E3 C$ J  t$ K* K- p$ C
      add    ebx,eax, `: e7 C" S& n0 F" y9 I" K
      mov    al,es:[si+1]
. N; x# y$ Y( O, J      call   Change
/ H' F. O6 b5 D8 o# Q4 }. G      mov    cl,4  W# h- k) f: ?4 L' v& e
      shl    ebx,cl" l& n! \+ n. z& z* f1 P1 R4 W. l2 x) Q
      add    ebx,eax/ z( A$ I3 r8 t# g* z
      mov    al,es:[si+2]
6 C6 c; ~; O0 a+ V7 b4 J, [      call   Change
9 {. i6 e. U& g, c5 {" j2 ~: F  M' q      mov    cl,4: k9 e. h9 v/ Y6 h8 u  X5 D
      shl    ebx,cl" ^! Z+ r' ?" H" {$ X% ^: H7 E
      add    ebx,eax
: _* x4 F3 f! ]) h5 ^1 m) w$ V/ |      mov    al,es:[si+3]
# ^8 d! ]3 {7 d2 J7 B$ \      call   Change# T5 C' A$ e% N$ Q+ Z& I( N
      mov    cl,4. X3 y9 u+ d0 w
      shl    ebx,cl* d' F2 r$ u( R; v7 o: A' ?8 t
      add    ebx,eax' ?4 N+ Z- x$ ~: h- V
      mov    al,es:[si+4]! {/ A, Z2 z2 i; q  k6 e4 w, L( v
      call   Change0 ]" J* F  X2 e3 L* G5 H
      mov    cl,45 o" E  z. Q6 y& o4 u
      shl    ebx,cl
' Q1 {( x& e0 Z) U      add    ebx,eax
3 m$ M( T- M, ?/ u7 x6 |7 F) a7 I      mov    al,es:[si+5]
1 g8 O* S$ E( m# f' P6 G' a" d      call   Change. k% k6 [, T  n! z% l- R- j4 U9 z
      mov    cl,48 h  t) `2 L8 b% @
      shl    ebx,cl
/ `* C8 I9 Z, R7 I( X1 `9 i      add    ebx,eax& k- m$ R7 W( E% s7 z) \% {& j
      mov    al,es:[si+6]& K$ B5 K2 @1 o/ ]( ~
      call   Change" {& V, S" o% m0 J, J  p! g
      mov    cl,4
0 _# e4 U( ^0 R1 ~7 Q, C      shl    ebx,cl
/ w9 @9 d+ {3 ?- J6 V      add    ebx,eax
# S+ Q  p! {4 s" Q1 A      mov    al,es:[si+7]& A' C% j  L( ]+ S0 R# B
      call   Change
9 w* u7 \/ L# R# g) q3 C      mov    cl,45 G+ l9 y5 A. |$ W! U! R1 h
      shl    ebx,cl
4 u2 s3 i3 v3 w& E  S( m      add    ebx,eax
; ~3 k& e( l$ f8 c0 I( y: \/ W      ret
) m2 F. d' |) k+ H- p) |0 nPSP endp
2 U$ v  H  B6 J" f;================================================================================================4 @& Q5 ^) p. B$ N# Z% q
DPSP proc near
+ W. z; q6 {- F# w6 u; |$ n      xor    ebx,ebx
% ^( m6 @( T6 j      mov    si,8ah
6 q9 _7 B" p5 f6 X1 W      mov    al,es:[si]
' z& \/ h8 `. |. e0 Z, a      call   Change
: E8 ~3 V' p  w/ }5 Q0 G      mov    cl,4
0 E8 ~* ?% g( |8 O: i      shl    ebx,cl4 R  I, A5 f6 F, C* h
      add    ebx,eax8 E- O9 N4 |8 e+ t) d# f3 j4 |( E2 S$ y
      mov    al,es:[si+1]
7 U6 x) U5 |/ h: b3 U7 ?/ f      call   Change9 K9 U  a2 }7 k, v% m
      mov    cl,4
' G, E; ^5 c& c- k1 a      shl    ebx,cl: R2 P  T/ c2 C0 p; a0 Y0 f
      add    ebx,eax
1 L! B3 n1 ~" o* p4 Q, l      mov    al,es:[si+2]
: F2 T4 a+ u0 ^      call   Change( k& _& Y. h/ i! }0 O) P5 |
      mov    cl,49 B9 H( t; t3 ]& o
      shl    ebx,cl) G' g4 l5 d0 J3 R+ q
      add    ebx,eax
9 t7 O( g( e& V% f      mov    al,es:[si+3]
3 {9 N; r  e, _( O' {      call   Change" S  D2 k4 N$ }) p, i
      mov    cl,4
. \5 \; b/ a1 R3 }8 E4 x      shl    ebx,cl
- O" e& X# Y' t% V1 G      add    ebx,eax; z% h0 u2 _$ Q. q( s8 p
      mov    al,es:[si+4]
: y" A; |; e, K      call   Change6 k4 t8 K7 u2 w. r4 o5 Z
      mov    cl,4. [* W# L7 ^, k; N, I- T
      shl    ebx,cl# H& K- K& a; d
      add    ebx,eax
% U* U& u, p" E0 D  ^$ B4 j      mov    al,es:[si+5]* [) a! J  o' X, ?& A$ e( E
      call   Change9 f$ `& l+ L* Y4 i
      mov    cl,4& S$ B/ `# P/ Z
      shl    ebx,cl
. t5 ?; n2 ]8 J7 {+ k, s) _      add    ebx,eax
% T- q' q, f% ^- o) E4 v9 e( d      mov    al,es:[si+6]
$ b" r7 ]" A$ q      call   Change, L8 R9 U( T& H
      mov    cl,4
( P% J; L0 k& l, z      shl    ebx,cl) f+ O- t  \$ C2 D+ n( }- B: P3 Z
      add    ebx,eax7 E0 J: j4 S! Y/ ]
      mov    al,es:[si+7]1 X& F+ c- C2 }5 s( _
      call   Change& u( X* `" H; [$ v3 f. o9 o2 K
      mov    cl,4
8 v; `& C) R% ^: J+ Q& H- Z' d      shl    ebx,cl
: _& V$ C2 W( x2 K2 _5 p      add    ebx,eax/ K; R% h; D5 o: B3 \; Q1 D
      ret1 h# L/ U' K( v* _8 A. v% s
DPSP endp+ q3 F: r# n* j. x3 c
;================================================================================================$ Y# K/ j- t6 V6 R+ I( Q8 Q
WDPSP proc near% L# v8 N( D. {5 W
      xor    eax,eax
4 w' i- X) M% x8 R) J9 L  n* K      xor    ebx,ebx+ C; |0 f; H. U
      mov    si,93h% }: X& A  p+ F' X2 B( q: ~
      mov    al,es:[si]
/ a% w, b  H' a+ D$ o; ^" J      call   Change
& y1 u1 ~# A9 F% J8 x! Q      mov    cl,4
# y- ^7 V7 e/ Z1 m+ L. H      shl    ebx,cl
5 d9 ^1 {- q0 n5 ^      add    ebx,eax% J: _# {& w4 G) a' }
      mov    al,es:[si+1]
4 C4 i  R; G6 g      call   Change9 b5 v3 S; b+ J4 \) Q$ s& n
      mov    cl,40 D1 d1 j# a8 f
      shl    ebx,cl+ i* E3 L3 D) q# |
      add    ebx,eax
2 O  w3 {& K3 C      mov    al,es:[si+2]8 }5 M2 n! p; f4 l% p8 x
      call   Change
7 X8 H) ?- |- _+ V      mov    cl,4' P2 E+ }+ x/ A( h# L+ F- \; D. v
      shl    ebx,cl8 q) o. W# K  B6 R3 A* M/ v9 N
      add    ebx,eax
9 S$ ]' I: P+ S      mov    al,es:[si+3]
* ]% W2 F6 _+ C" n- ~# S. i      call   Change
1 `; _8 c+ F) ]: [1 u! Z* |      mov    cl,4
) X6 o  O# P+ ^8 L6 r( C% v      shl    ebx,cl
3 Q) U( y/ J2 l; i% R/ v      add    ebx,eax
# i/ c  `  w1 R      mov    al,es:[si+4]
/ ~# K) j: ?# d6 F2 f1 |& o4 C3 b$ P+ g6 |6 T      call   Change# p/ p- D# L. v; ~2 e
      mov    cl,4& {  p, `$ n% [7 V& I3 j
      shl    ebx,cl8 ~- |1 w$ @+ k2 t" e% e
      add    ebx,eax( D! r- p1 ^8 W) c, o
      mov    al,es:[si+5]
1 }6 _5 O: U8 F3 V% Q      call   Change5 E3 b" D) Y: k% s* ~
      mov    cl,4; b8 c" a2 b! x" i
      shl    ebx,cl  n' G7 d' E4 K2 f
      add    ebx,eax# H+ W* U# x7 q' I) q9 X0 j
      mov    al,es:[si+6]* ~4 f) E4 T/ F/ f# d) e" y, n
      call   Change0 Y9 M% t( x; z# N/ D$ y1 j
      mov    cl,4
7 P8 }: M! K. N! H! {4 x& B      shl    ebx,cl8 g! N) t  ?0 C5 n" e" @
      add    ebx,eax
1 D) `& v+ p7 Z- f9 M* R      mov    al,es:[si+7]
( k% ]8 L# U- p" O3 D3 m, g; }- ?5 S      call   Change6 j2 Q+ g4 c6 }, m" e, z
      mov    cl,4
, f  ?0 x2 u! D2 ~+ D      shl    ebx,cl/ O5 }4 d* H# J+ K$ W
      add    ebx,eax
8 d6 r. j* y( z$ z- ~      ret
& a$ o/ N. e6 X- P* KWDPSP endp7 v5 \; ?. `' u
;================================================================================================
5 x+ T; B  e( P  EChange proc near
' L+ a3 x. ?, W' ~A:   
2 Q  y( p3 I5 F, A6 d& R      movzx  eax,al
' J; U8 N$ ^+ X3 L' L      mov    edx,eax8 e& [" ~2 |& _: E/ l
      cmp    eax,'0'            
& {2 @0 E" d" I7 f% I1 C      jb     A
- k5 ?3 o  e: }0 M      cmp    eax,'9'            
( i3 `' J5 |  D) ^0 v4 P+ k& }' Y      ja     B8 _8 V! `# D9 s4 r1 _
      sub    eax,'0'0 m, ^* V) M( r
      jmp    short E) c8 Q4 o8 ]4 c* H. a9 E4 h" B/ M
B:/ m6 T$ C; R9 i* n3 e' Z
      and    eax,0dfh           . W. {& p2 ], x! H
      mov    edx,eax
9 s/ Y2 w3 w" f: d+ b. s3 W5 g4 |      sub    eax,37h            
' K+ N+ Z- Q1 Q* V( b, T      cmp    eax,0ah
7 j9 F7 n1 K* c+ z      jb     A                  
$ n* y: l& N; y" a" F/ u      cmp    eax,0fh
; T# k& }* s# L; V      ja     A                  
4 ~8 m2 z" i4 E7 u) lE:1 j: i* |" m& D8 u
      push   eax      
- D3 \; ^( X- e      call   PRT               
5 |; e8 X. E$ s      pop    eax
. A, ?, a0 v0 I- `) JCExit:" P6 P% t9 V, ^; p% z  r: y
      ret
: K1 D/ i5 q5 P7 }2 g8 p: VChange endp
, I' @: f7 a. ]3 S3 j;------------------------------------------------------------------------------------------------% e. F1 p! F# J+ d9 q
PRT proc near
" h( v5 E) K; i/ |      mov    ah,02h
1 f/ M9 b# ^- p0 e8 b' M      int    21h
7 e  [. P% m' P) i& P/ e" Q2 @      ret
/ `( K0 C/ l- N6 e5 |PRT endp- a% g9 V1 F# _! {
;------------------------------------------------------------------------------------------------. E- z& g9 ^! T- s# A% u2 V' y
crlf proc near
# ?+ S/ ?3 H( }- b      mov    ah,02h( Q  f3 a, R  ]1 n' g3 v9 j
      mov    dl,0dh* C) \( @/ X6 }/ S& ~' Y1 O
      int    21h
% J. R, W+ R# }: A5 Y  ^( u# \      mov    ah,02h0 _  {4 e# N& Z* j' u3 V
      mov    dl,0ah
* e$ V  U( p- _: x      int    21h
( E. R$ O, k! t* b% A      ret  ?8 c; U3 C, b% R  D" U3 [
crlf endp1 N; k1 @/ t( c, k
;------------------------------------------------------------------------------------------------
8 b; p- a6 D* h8 [! a, {6 Q_32bits proc near
5 \4 e" C3 _8 b$ F$ I0 g      pushad
. I9 l; d: H- B+ `4 T( |9 C4 {5 ~      mov    cl,4. o1 U$ \$ C# |9 d  r+ V' ?
      rol    ebx,cl6 L% [2 e; F! x
      call   print_4_bits2 B6 C9 `0 h, w$ G& Q+ u0 r* B0 U
      rol    ebx,cl
" N" m/ h( O' J  f2 F: K5 w0 U      call   print_4_bits
. F( f9 c! ]: q+ b( a      rol    ebx,cl; G. H' p) t, [% W% ~# g0 ?
      call   print_4_bits1 p' B) a% X( n7 W+ k
      rol    ebx,cl
7 _. g! ?8 R; o4 I& y      call   print_4_bits6 b5 M; W* A9 k3 P  R: r
      rol    ebx,cl3 {3 W  B( \. E' _
      call   print_4_bits
/ n' `$ F) x7 }& m2 O( f      rol    ebx,cl1 X9 k+ m/ s( `  r  R
      call   print_4_bits
9 m9 T, ?$ o7 M' L$ U$ c      rol    ebx,cl
" e/ I) `: P6 Q      call   print_4_bits1 q/ M6 `3 F" |
      rol    ebx,cl* v/ P  ~( W, Z$ d9 Q+ W. n
      call   print_4_bits- S( O$ b4 A" ^6 q7 N. R; L
      rol    ebx,cl
: c2 U! \% J9 ?! p. x      popad6 ?! s. f' g0 B6 Z8 c* X( S
      ret  z  |. k1 [& M2 y* R# e5 H9 M
_32bits endp
- X! @9 q7 Y. h1 z) a. _9 u6 f# f2 w;------------------------------------------------------------------------------------------------  k# @2 R1 }# |5 L& [/ P% k
_16bits proc near
! m/ v0 F3 w0 {1 ]) ]% z      pusha        
( }  l7 W$ q1 G; N3 U      rol    bx,cl
! e( o) I/ m2 J- E1 u+ E      call   print_4_bits1 W. Q- s. }* {8 t
      rol    bx,cl
2 E/ A/ o1 T9 o  N# U      call   print_4_bits% A1 o2 o( h8 ]2 b& y  Q$ k  B
      rol    bx,cl+ J2 `+ x. q: V! F: M% H% b
      call   print_4_bits
* U* L3 L1 C( J9 Q& D( v0 K: q      rol    bx,cl2 \$ H6 d- W' o1 w
      call   print_4_bits
- h4 }/ E% h8 y1 S  D      popa  g1 z& {1 N4 E4 I" ^/ S; f6 q
      ret
9 f# h, ?. ~) M  q. P_16bits endp
0 i4 f4 V# {4 G" }% k;------------------------------------------------------------------------------------------------0 N# t3 x- R, W* N% P
_8bits proc near
) y0 y# O  y7 F5 Y      pusha        
1 e1 j- S- G  R1 }: A: c/ Y  P& V      rol    bx,cl
' ~5 ^  |! Y' D& n7 i1 X2 T, |      call   print_4_bits
) K: S( T! D1 s0 B      rol    bx,cl
; S1 E/ j; H* b2 G& h; S      call   print_4_bits
9 v. t1 M, j6 K! H0 C      popa
' p2 n( Z: L  P$ ?* z      ret
1 ]) U" T0 A- ], A7 {/ ?% k_8bits endp
# G# i1 l4 M& n5 w* X  Y; Cprint_4_bits proc near
7 X, a! B6 |" Q5 Q2 q1 t      mov    dx,bx1 g! J$ z+ i+ |. n( k
      and    dl,0fh& g7 U% d! F8 e3 q- e% H
      add    dl,30h
. i- l9 j! i% g, D% Q      cmp    dl,3ah! @5 R, z. B" x/ o. T
      jb     print# c, h4 k9 y" [6 R# }
      add    dl,7
2 W* t- X; S+ Aprint:  & R# M" {$ |1 p1 |0 ^+ H. E
      mov    ah,28 G3 F8 _% b! |% I
      int    21h! v4 R; Q* o7 D& i
      ret- y) b! f: M0 D. O
print_4_bits endp    4 M8 A4 ]* b1 {. E$ e
CSEG ends
& e+ ^% Y! S8 t& BEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-9-18 20:10 , Processed in 0.075915 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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