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

關於SEGMENT 宣告變數的問題

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

9 S( w5 t0 {: o. g則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
6 W$ O5 u, J8 L; ?" ~: E) U0 C
3 V  G; W9 Q3 T- M( h2 a宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  6 S3 w% m6 |" a1 i& @- {
+ g2 h' E$ H  t3 [# x: X
.model small
6 @: z( ]/ R1 H( |2 e6 `- Z) I  V" R3 }! x.386p: a0 l/ h  v( c1 K0 [
DSEG SEGMENT USE16'data'
$ j1 f- r; S# P) r* T+ o1 Q$ W$ h2 O+ A( C# ^0 [" n
DESC STRUC/ W6 c5 G% a  X% }) q. Z+ c
     LimitL DW 0 1 t/ ^8 C: D  M
     BaseL DW 0 ( w! z6 T' `- Z
     BaseM DB 0
% X! p. _/ }, L% G# Q6 c2 \     Attributes DB 0
% o& v+ E4 P; |  {, I2 R     LimitH DB 0 % W; ?/ g+ ~9 Z2 N3 Z  A. F5 }
     BaseH DB 0
+ J7 Y6 J- p' `" ~( k2 N, n' ]DESC ENDS, X9 B0 D% v3 f+ I. `5 {0 j) @( {

% y$ M  r8 t$ @PDesc STRUC
- _& i: N6 R0 ~7 V) q' j4 ~     Limit DW 0
4 {9 h: |; i( ^4 E  Y' v" p" @- U2 ]# h     Base DD 0 . ~$ z+ S9 V) W! N2 U
PDesc ENDS
8 p" |* Q% o) i( S1 }4 c7 o* X3 P7 d4 ]' O$ s# ~6 z( ^
GDT_def Label Fword: }' c) p, ^. P# u+ U, b: f
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>0 s4 Y+ y6 h3 m: |
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>9 w- R2 H: l1 X3 q6 O8 v* l' ?- F
GDT_Addr PDesc <$-GDT_def-1, >3 O% t5 C( Q5 `7 z" q  |! k- }
, J. Z6 i$ d/ [7 }4 n
Maddress Dword 0
. n  b7 l9 D' F% Q  o+ i
9 q9 A8 \; g! g- A( ?3 sDSEG ENDS
! _6 V3 Q. a" M9 u' T9 OASSUME CS:CSEG,DS:DSEG; q0 Y: a3 S# R3 ?" m0 ?
( Z3 P/ X0 v4 D/ O$ }
CSEG SEGMENT USE16'code' # ?6 P% U2 a9 ~8 N2 {4 p( X
      push   ds
6 Q$ B" K6 G4 j5 ]3 ^7 i      push   es
2 B; ?  F+ t( z  J& [: d( h  u      push   fs
" u* X7 p0 C! Z! c. C      push   gs
* w$ R# `; J2 W1 a8 K      call   big_real_mode     " j2 l% F' j: Q& ^5 U
      call   Get_Commandtail% B5 l- U1 A3 O8 |# o$ @, f) p
      xor    ebx,ebx
% R' H4 ~) D! h; s2 B      mov    si,82h
2 }# u2 p* i* v% N      mov    al,es:[si]4 i; I5 i. J7 o; g& V2 q
      cmp    al,'r'
3 R4 M% G% b" q- w& i      je     R
$ T7 L. x, F# R/ n0 [' m      cmp    al,'R'
2 H- O0 G3 n$ B' o5 ^      je     R
1 V3 P5 ^" F& y% e' ~- r& S      cmp    al,'w'9 X! t5 M/ e3 X5 h  i
      je     W/ l2 a5 Q  p; s) n- u6 h
      cmp    al,'W'/ c- G' @& A" m( `
      je     W          5 k/ O  g7 v- Z' s* [; a' n8 b4 S
R:
! r$ k* V0 H6 j- [) ^      mov    si,84h, `; _/ u: ]5 Q+ H) ?7 K7 U
      mov    al,es:[si]- v' k3 C( R. ]; }4 u; E
      cmp    al,'b'4 Z( L( |( Q! G5 o0 N. y8 i: x! t
      je     RBT
7 }; i  {$ p6 d9 A      cmp    al,'B'
$ _+ w6 b- g: ^/ g- M      je     RBT$ s' \' M1 F) E9 K: h+ p7 ], v
      cmp    al,'w'
3 T' _7 z8 }, X$ @+ I      je     RWR$ a9 g$ F/ o& R8 l
      cmp    al,'W'  Q2 y8 J: U1 x
      je     RWR0 |& X. r" N+ L
      cmp    al,'d'
& `. B  K3 \2 T      je     RDR/ c' _+ u# Z7 l$ }) h
      cmp    al,'D'
" M. v  ]3 }# {      je     RDR            
6 a, ~* r$ q: v, F6 d; ~W:      
" _7 h+ n8 N7 ~( L; x4 p, Q5 Z8 v      mov    si,84h5 ~3 B- u; n/ w+ G7 e1 G+ _( V0 B6 e
      mov    al,es:[si]" V/ f0 ]7 r4 x: L
      cmp    al,'b'
& S$ |: |; ^0 V      je     WBT
9 s8 v  F5 G3 Z  r4 T& X" F      cmp    al,'B'
# P1 k4 u. P# t      je     WBT% I0 N, X0 S6 B# b% \' s. v
      cmp    al,'w'4 u' Z3 V9 S- x) k' x2 j. M
      je     WWR3 _% {6 }( z! @, V
      cmp    al,'W'
  C4 N" d5 S/ s% C1 z# S2 J      je     WWR
4 F4 F7 A6 ]1 I6 p8 ]! X      cmp    al,'d'
1 t) F9 ~0 ~. b7 |. L& @" h: b4 X      je     WDR
3 M6 c. F. o/ c; l5 s      cmp    al,'D'# W7 M- K  M7 ~
      je     WDR3 P3 V% }2 }# o; ?4 C
RBT:
; e8 h& ], ]; e' w      call   PSP        
4 [. h: h" N/ Z4 G* T; H      call   crlf           # h; ^' G" f  U8 R# W) ]/ P+ _8 g
      mov    esi,ebx
. e& W% v' @5 c+ N. l* P, k      mov    eax,fs:[esi]2 u" E9 G9 F( v- U6 y
      out    80h,eax  ]( N% f$ o2 N  O2 l
      mov    ebx,eax
$ C+ o( _. `) o  {: J5 }      call   _8bits- m& D4 h3 F1 J( [. o
      jmp    Exit6 \  V" X- _9 i
RWR:2 d( D! `& F1 k& j" z( ~$ ?2 R
      call   PSP        & i/ v/ Q" b6 }1 i" p8 k( x4 P
      call   crlf           # n; a& @7 X9 ^5 w- C1 h
      mov    esi,ebx
, S0 Q, X, }# ?/ O      mov    eax,fs:[esi]
7 I- ]2 ]5 z- n* K6 n      out    80h,eax
" E; p1 }; |; Q' S* K: T' O      mov    ebx,eax0 q1 \4 ?) H& O" E" g9 B
      call   _16bits5 A( O& ^- T( [3 i; c9 T3 g. U
      jmp    Exit
9 H+ a' V- d% ?' p* k# X0 D2 A1 J8 jRDR:) {$ m* W1 q9 }; P* T7 r
      call   DPSP        
! ?4 I7 M( e7 b      call   crlf           % k* D( K$ B& {
      mov    esi,ebx8 ]  W8 u, H  s- O
      mov    eax,fs:[esi]
0 \. E9 Z' s. K, y      out    80h,eax7 V: S: ?: }9 i. J
      mov    ebx,eax7 \& Z, [) h( d8 [+ V/ C
      call   _32bits
* [: D) R6 x. Z  Y8 U      jmp    Exit
) M+ R3 j) v, l" d1 F8 D;------------------------------------------------------------------------------------------------
/ V$ U( Z* m$ A2 O5 WWBT:
7 @1 x$ L$ V+ x4 X& A/ a9 o      jmp    Exit
- U! S) p- [4 z) T& PWWR:
% C! _. W- E2 |6 b# e- O) Y- P4 s      jmp    Exit
9 L* Y2 ~, `! m) `, q  |6 SWDR:+ D8 z$ C- J: Q
      call   DPSP- U; x* {6 D9 {& o
      mov    Maddress,ebx      : i# j* j/ M  g' o
      call   crlf
8 A, n* w( [+ T+ |5 ^; \      call   WDPSP
" o6 b) y- C' u/ d5 a2 t      mov    eax,ebx. b8 G( o8 W9 {9 Z+ X: A
      mov    esi,Maddress         
: D8 {: b0 m, r8 H  z9 F      mov    fs:[esi],eax& w0 h7 E2 s1 M) R" W1 g
      out    80h,eax8 Z8 G: U5 z4 R- _6 X" g5 @! A
      jmp    Exit$ U& H& }: R3 [" y1 S
;------------------------------------------------------------------------------------------------      
7 t3 _$ p( X0 m7 L& n; _Exit:0 \* `( K! B6 d  _: q! `+ n
      call   real_mode     9 Z5 A" h# S9 |
      pop    gs+ q2 S; I  N( j  r4 D
      pop    fs  x3 ~# m0 M# ]8 Y
      pop    es4 ^0 s6 V& o! B7 p9 k" R8 S
      pop    ds      
# p# H0 E! `- }8 q      .exit
% k4 C' w# ^8 h( [;------------------------------------------------------------------------------------------------
  q8 ?+ R3 N: n$ }$ v( L' R1 `! pbig_real_mode proc near& H) M8 ]2 C, Q* b3 t9 x  d
      in     al, 92h0 G+ D2 O8 n" d# E* O( v2 S
      or     al, 0026 {  e- k, x  S% q0 o& I  r- Q6 d
      out    092h, al
, c2 E4 F; g% S5 e5 J      out    0edh, al7 ~  b6 {8 F6 G2 v
      cli; @; [6 V# p8 N/ s& V+ _& i
      mov    eax,DSEG
! \: W# W7 ^& |9 G: \      shl    eax, 41 R) m7 R6 m* C  k$ B
      xor    ebx, ebx. k) J, V, ~- O8 {7 p( d9 V$ c  D
      mov    ebx, offset GDT_def- |0 v9 a. \) `( t4 b
      add    eax, ebx' E  E2 e; p% A, }- k6 t" [* g
      mov    dword ptr GDT_Addr.Base, eax  C8 B" T4 l; `2 V
      lgdt   fword ptr GDT_Addr+ p" y+ ?$ Q# ]% g
      mov    bx, 8
9 v+ C" p6 t7 ?' _9 o2 X0 E# Q      mov    eax, cr0" Y0 Y" g$ r! V8 k
      or     al, 1
, B( Y2 g, a9 n* k* k1 A      mov    cr0, eax
; b4 l% e+ b9 X      jmp    PMod. c; `' _1 X* k  [( g
PMod:
! d" q! v, @6 ]3 j! I/ r. m      mov    fs, bx
. y1 \+ ^! A5 u4 P5 }      mov    gs, bx4 V4 t6 h) F0 M  g$ z# j
      mov    eax,cr0
0 ^) j6 J% ^: B4 x. m5 j+ w      and    al, 0FEh) k- j  b4 ~8 g/ W4 p/ e
      mov    cr0, eax
2 _8 O! g, y0 @# U, E" Q: ?, ?: V      jmp    RMod
- C  y1 c* c% B& IRMod:9 k$ K; O0 ?8 E: h8 {; ?0 p
      xor    ax, ax
0 e' i4 g6 v0 e: L' X      mov    fs, ax
8 G' h4 C, v- y' Q" I      mov    gs, ax     - Q+ R7 y' Q/ J! j
      sti     
+ m( F1 U5 ~  o' A; v      ret
' c' a. a# i* M) i2 u, E; Ybig_real_mode ENDP
9 |4 z* j' n/ H+ A; h  v8 f;------------------------------------------------------------------------------------------------
+ q! G" J6 s' breal_mode proc near
2 ]: h4 ^: N% B      in     al, 92h2 k8 B7 Q, t; y4 _- {; {  [+ T  q$ U
      and    al, 029 {* |. X# u  l9 `  ~" c, G
      out    92h, al    7 N2 R1 H4 t$ M" H& B
      ret( n" B$ f/ `* {  Z1 h1 u0 g5 N
real_mode ENDP
* L' x3 l# }  s3 j6 r& _: I;------------------------------------------------------------------------------------------------
) q0 \5 J, D' W7 VGet_Commandtail PROC near
3 W2 c( f& B. \7 i' F      mov    ah,62h 2 y# q* A4 m" I! S1 k
      int    21h, ^. p7 ^/ e8 A9 b4 y
      mov    es,bx8 l" i0 x3 M9 X0 ~) y
      ret
2 R. @3 x8 T7 I5 l  O, ZGet_Commandtail ENDP   
4 ?! ~* V. ^  m+ M5 H;------------------------------------------------------------------------------------------------. q6 L  X+ u/ O4 n0 x
PSP proc near/ u+ O$ L( V* S/ Z& n; `0 D
      xor    ebx,ebx- _7 \9 T8 Z' U! V
      mov    si,89h/ v0 w' D. a( O% V6 c
      mov    al,es:[si]
& Y* p& D1 d. ~: J9 U1 c. c      call   Change
5 i' L: h" E/ a8 v( w7 [& J      mov    cl,4
2 R/ J8 X4 h0 I5 i, Y8 T7 |5 `% \      shl    ebx,cl  R9 B) ^' A8 e0 \5 b# d! y; V% N
      add    ebx,eax
9 X7 n* s$ m! M( ~      mov    al,es:[si+1]* o( X, A. K0 r
      call   Change) _5 H; B& l/ [  S# {
      mov    cl,4
0 c1 V$ s' q$ X      shl    ebx,cl
5 o5 o) P$ [4 c; \8 V1 e  \- X      add    ebx,eax' h3 t8 ]2 h+ k& R2 C2 i& k& N9 y
      mov    al,es:[si+2]  |6 r: a' v! W" r. q" v
      call   Change+ z7 n$ {! M, D4 v6 L" U- F
      mov    cl,4
- @0 {4 T  a/ H  D4 K      shl    ebx,cl
9 j% d: ^- e/ d2 ?. [, i' f      add    ebx,eax
0 m% t! ~" {5 v' I$ o; j% R      mov    al,es:[si+3]
9 n  H5 b, ^" W3 M: L, I      call   Change& Y: \, u8 U* K. ?
      mov    cl,4
$ m6 e: p* @+ n6 k% X      shl    ebx,cl; U* P2 o) O: n6 U- S$ z
      add    ebx,eax; O! N% V: _2 L, L- M
      mov    al,es:[si+4]
( r, x" A( u7 a2 M" w4 `0 I  [% d) u      call   Change2 z, N* I# p( C: p3 Y7 w
      mov    cl,4$ Y. S1 O, x/ _! S; j7 }
      shl    ebx,cl& c* P& M* j! J! L
      add    ebx,eax
- v5 @6 q* X7 c* G& `4 y6 L  E; h      mov    al,es:[si+5]  g- J0 l, Q6 f
      call   Change
) n2 ~  ?3 e+ w/ t% H. @, S      mov    cl,48 m: R# g- b# m+ T) E
      shl    ebx,cl/ s* H6 N; {1 t- T) C" N8 s% l
      add    ebx,eax
) J* d! `; w5 O0 z) N' E* i0 D      mov    al,es:[si+6]. l+ }$ b# r  P0 a9 u" p+ l6 H
      call   Change
; K1 O) O" M+ C0 D! M4 B* b, \      mov    cl,4  n$ r# D, I; C: U+ |$ Z1 j
      shl    ebx,cl7 w1 y1 o0 e. h
      add    ebx,eax
4 q2 L, Z. Y; O! v3 i      mov    al,es:[si+7]
; j3 l5 M' l9 s! a' i      call   Change% P! O: B, h8 s( ]5 j- u) n0 |
      mov    cl,4  m9 n  h) M! e, ~: [0 I
      shl    ebx,cl
8 C7 g6 `& y+ {" @' n1 L& r$ a      add    ebx,eax2 K; ?3 i) h, ~9 h% V' V) x7 `+ }
      ret
: P3 B( w, s) \) r1 j1 F% CPSP endp
1 j6 v2 \% ~$ s;================================================================================================' U3 E( k) R& j, G4 p9 f
DPSP proc near# I& e6 X0 ]9 n7 Y8 U! t
      xor    ebx,ebx
! @$ ?2 P$ N- A      mov    si,8ah
* J% V( Q& H5 f4 k  }/ I6 x! e      mov    al,es:[si]5 U' D- ]8 L% p
      call   Change
' G  e1 G/ L# O- p$ V7 u      mov    cl,4! e; t6 \8 n  ~- D8 Z( a
      shl    ebx,cl% s+ I4 Z7 _0 T3 a3 @1 C0 ?
      add    ebx,eax% K) x# w  k. a$ b1 t
      mov    al,es:[si+1]
6 P( ]3 [4 x1 e  E% \! G      call   Change* o. I- k5 V. q. A
      mov    cl,4
2 Z3 C, E7 n% y1 W0 b3 l: @; A      shl    ebx,cl
8 @5 I2 A3 ^6 t3 B: F$ \      add    ebx,eax
$ R# C2 v5 ~% a; `. x      mov    al,es:[si+2]' h3 Y0 R! w' S4 D- ~* C+ q' L, L
      call   Change
2 x3 B- d. s$ z" H      mov    cl,4  T% w4 ?8 w" P- r% N
      shl    ebx,cl! d$ t1 E) B" B, p; |. J0 z
      add    ebx,eax, z1 e! R4 g6 A3 ^- X, y8 h& Y' w
      mov    al,es:[si+3]1 h7 @2 i) H5 A$ C3 g
      call   Change3 u% G+ `, X: i  B. }
      mov    cl,44 B0 i+ K& ]. z" U2 ]1 O
      shl    ebx,cl
- B2 M; R# f9 c) N2 x2 Z/ G/ y) K- K      add    ebx,eax
8 u4 P1 w# S/ ^; p5 P8 [      mov    al,es:[si+4]% o$ t# [$ z2 n; v( A& O6 R
      call   Change
. z2 U/ V$ t/ V2 O2 T- w      mov    cl,4: m6 ~% y3 y' Z# J0 h
      shl    ebx,cl9 m7 Z- y) h% \/ q: t% i/ A
      add    ebx,eax
6 H/ J, T& A" I3 C+ e* W/ F  t      mov    al,es:[si+5]
# K5 v- J; ~* r, |& \      call   Change' p4 d4 a$ T: x! t# q: J" a
      mov    cl,4$ f# o0 e: E- P- h
      shl    ebx,cl
6 o- b" q% a/ R! r9 l3 {8 X      add    ebx,eax
& s, O7 P$ @& w1 _1 r# G" O      mov    al,es:[si+6]& ]7 _: q" `# j4 A4 M1 h
      call   Change8 _$ Q/ r4 @6 u4 E
      mov    cl,4
9 j; u6 A% E& z* T" w8 _& e      shl    ebx,cl
) Y5 n9 p/ ^4 h5 U2 v' ^      add    ebx,eax" {3 C: |2 L) H; R8 X7 P
      mov    al,es:[si+7]( C' u. n- f) {
      call   Change, E) h% p! q% s* |
      mov    cl,4
2 n+ O" L: w! p5 i* r      shl    ebx,cl
' B. l# q6 V* O* K" G7 O, o- ]      add    ebx,eax
! r' y( `; W9 Y7 J& H      ret
+ g9 {$ A* _) r2 TDPSP endp3 c% }( O  C; {, `* E
;================================================================================================6 A3 ], ]' z8 s% E  f' z
WDPSP proc near4 B  F  A6 n& U( L7 @
      xor    eax,eax* m3 ?2 ~7 x4 c) ?9 x8 L9 d( _
      xor    ebx,ebx
" o1 W  o$ [0 d8 L# r      mov    si,93h
5 x$ N; O- {& f0 t9 c7 i# V      mov    al,es:[si]0 y0 l. ?5 v$ F+ l6 j& J
      call   Change
$ f5 ^/ V9 ^  V# w+ Q. n" ^: z      mov    cl,4
* N) w6 W; X4 N! l9 l5 R( T! ^      shl    ebx,cl
, M5 f& S) Z6 p! l2 D2 {" K      add    ebx,eax
  r6 ~# B; ]2 ~) B      mov    al,es:[si+1]" p4 ?' M6 f6 W1 R8 B; J
      call   Change
4 q2 S- Q' ]( K  y/ k- z      mov    cl,4  \( r* d, f1 ~* T6 O* b
      shl    ebx,cl& \4 t  Q+ @  C. c% |) ?
      add    ebx,eax/ u( F  u) v5 W& q/ q1 c! x
      mov    al,es:[si+2]
( v9 [5 s) d7 H7 ~0 j- T/ A# X      call   Change
/ W, ~- {8 N5 H2 P3 ~0 S      mov    cl,4* m# I% }# E1 z' H
      shl    ebx,cl9 f5 k- M% ?0 Q( h  E
      add    ebx,eax
1 @9 h0 }2 m7 g4 F% K- l. {      mov    al,es:[si+3]+ N  N9 v! N3 F; S% L
      call   Change
3 E8 \- e2 P7 ^8 I2 v" p      mov    cl,4
, A  N" K0 S* _      shl    ebx,cl
7 d) N0 \2 \; U4 e0 x9 Y; \      add    ebx,eax$ i0 d/ [, }) E' L- f
      mov    al,es:[si+4]9 R8 A4 u5 p- H, Q- E
      call   Change8 f! L5 _& F; t' t  c
      mov    cl,4. G. p# F" T/ I& t4 Z
      shl    ebx,cl+ v  M2 P7 J3 Q
      add    ebx,eax
: K, ?, |3 D1 ?/ [- v+ O2 D      mov    al,es:[si+5]
; g: l+ W+ r" S: [, v      call   Change( \! C0 d1 V0 O1 x$ N
      mov    cl,4
& X% }1 |; J+ O, P5 p4 ?      shl    ebx,cl! l! E4 \" O. D* X( ?6 X9 {
      add    ebx,eax
6 n9 v* H2 m4 g' g! Y; C' Q/ q      mov    al,es:[si+6]2 v; X1 k4 U7 ^( Z+ F1 j7 E
      call   Change5 u* q2 L$ g5 B1 i( a% ~" w
      mov    cl,4
1 \! I" Y8 S2 C( S- _      shl    ebx,cl
! a) a! W* N+ H2 D' Q      add    ebx,eax
! D( q) K+ m- X# P, N      mov    al,es:[si+7]& D$ e' o0 J2 C, p
      call   Change
& ]! p8 r* P# `8 p' }3 [/ |& A      mov    cl,4
  |9 k0 S: s! m) \4 t9 {      shl    ebx,cl
* H7 @8 X8 M' x  Y: Z! D5 U      add    ebx,eax
) x! g2 s" |$ j% Z2 X! @      ret( a4 v: Z3 p# p9 H  c) x
WDPSP endp
7 Y# F7 H- Y9 b* H8 r, k;================================================================================================/ h1 N* O; f+ b4 x' y
Change proc near$ P; t- D% h  Q' ]# A
A:   
( U6 F1 E0 }+ u7 k; G      movzx  eax,al# q) S5 Q/ L7 g: L8 i) O
      mov    edx,eax) T2 B$ W* u  x$ y# l8 n8 O" ~
      cmp    eax,'0'            
9 R7 h* F' N5 `  d# b      jb     A1 z0 M4 p. O" C3 c( N. e  |
      cmp    eax,'9'            ! q# Y) Y1 ~& b7 g
      ja     B9 t) L( ^! H& P# C  |) `" x
      sub    eax,'0'
& u0 P4 V3 N7 g( Q9 f- X* b      jmp    short E
# r7 e7 T' K, m) @2 P- q* W/ V- iB:
9 F5 H# Y" c8 i! a1 f      and    eax,0dfh           
! U' o+ x9 X$ L4 a2 R3 f- S1 ^% R1 z      mov    edx,eax
. V3 v7 K$ a' L, n& W- X  \* ]3 u      sub    eax,37h            4 t0 B& P. C5 n7 \! h- w' S2 A
      cmp    eax,0ah& x+ P8 [2 U' k8 G8 N, M1 F" n- i
      jb     A                  - y2 l0 ]* G6 F3 i
      cmp    eax,0fh/ ?" V. Q3 I' ]! |1 V$ F7 ?9 H
      ja     A                  % D/ v+ n( s5 u) H$ x" U5 {. ?: Q3 _
E:! v# q2 e) q" S, k9 F$ H- t: }
      push   eax      
0 ^  @1 F6 L2 ?% G% \$ t) }      call   PRT               
& }2 |$ ~" v$ ]& M% O: [2 }      pop    eax1 {! `% i( h$ b( p: v. l
CExit:
: z/ X- L+ D" v$ e) \' R) Y! b& w$ I      ret  d- l& Z7 l/ A$ q7 [  s3 G
Change endp4 D* g& f8 J, |6 a+ M+ O
;------------------------------------------------------------------------------------------------7 j- A' u3 [3 n( S( T- Q; a2 e
PRT proc near9 c- S) F) |' Z$ S* i3 X) N
      mov    ah,02h5 [" _$ P0 S& U1 I" Z+ {  d
      int    21h
, _! ]3 K# T9 D( c, L* N      ret
8 x" G7 H, R, G4 \PRT endp
/ ^7 i5 C8 d9 P" l: L5 M4 c( n;------------------------------------------------------------------------------------------------8 [9 |% z1 ~( j. j6 r( R
crlf proc near
& m9 E% ~9 b0 z      mov    ah,02h
) I/ w2 J) i$ [; P      mov    dl,0dh6 @- k5 x$ W4 _% M! A4 M+ Q4 i
      int    21h
+ x) J" ~0 F, m2 z' ^      mov    ah,02h- L# l7 X# }1 B2 i- }
      mov    dl,0ah+ d5 L4 p; A  @- U& d
      int    21h  J2 V- ?* g  ?+ N  H
      ret( j) S1 e* R2 a$ {& ]& m* X
crlf endp
/ H% d* S4 }: d: Q8 K! h;------------------------------------------------------------------------------------------------
" d4 G7 X% `% G: Q_32bits proc near( ?/ h, g) |, n
      pushad1 v" ?! P5 Z7 q) U4 ]) Z6 w
      mov    cl,4
  ~5 l! j9 q; s      rol    ebx,cl
1 t- I( H; y; H" J& h      call   print_4_bits
1 f  V/ S9 u0 k7 ^; x      rol    ebx,cl
# h% Z- W6 @1 Y2 o$ A8 o1 x" J; j( u0 x      call   print_4_bits
$ z5 M+ i7 v" g) V/ F9 ]      rol    ebx,cl
6 C* ]* w* H) [  g" g: l/ W7 ^      call   print_4_bits
8 g! h( m9 }  M: S3 h      rol    ebx,cl1 H4 x4 k+ K7 J
      call   print_4_bits( v3 e5 r0 Y. |% f& i5 Z9 H
      rol    ebx,cl% u& e8 O* }8 j# ~" i4 P
      call   print_4_bits
: I# R* G) n# Z1 Y. K0 u      rol    ebx,cl9 z3 H% |  L' [) y( ~5 a2 Y
      call   print_4_bits6 H( a1 T! h+ |1 l; M& g
      rol    ebx,cl
! P' Z) H% J' @5 a3 Z      call   print_4_bits/ g( a4 T+ q1 ^
      rol    ebx,cl# g9 E9 N' y: K! b
      call   print_4_bits
* L" ?4 D( O( Y" [5 e      rol    ebx,cl
9 X1 G8 z, Y7 f      popad. W1 d( t& l% m. E- F5 S: J7 c) W
      ret
5 R5 h- R/ X  f_32bits endp% Y; g( T, G: ]2 G' ~. E/ ^, {3 X
;------------------------------------------------------------------------------------------------* t$ b' v2 d! b/ {' G) T9 ]
_16bits proc near" p: h9 P0 `/ p/ a
      pusha        - `  u; Q# o( b/ B, G* U9 C8 l: c8 A
      rol    bx,cl
+ |( p" Y0 Q# n4 M6 ]4 y: w      call   print_4_bits
% f" _$ v; J; j" I# Y4 t3 n" F      rol    bx,cl% n3 q* }1 k# G: T
      call   print_4_bits0 e9 [# \; j2 W2 V6 x  c  ~
      rol    bx,cl
! F! E& y' ^& a! O      call   print_4_bits
/ n8 ~8 M  H4 e      rol    bx,cl
, J  V- Q5 Y* F, _; N/ o      call   print_4_bits, q  Z/ H" F1 w. y
      popa
) ?/ B! N  v4 y, u; @  _      ret6 ]! q9 F- F- z3 ~' }8 l4 s& h
_16bits endp
/ p- G+ Q# c& k5 K; I;------------------------------------------------------------------------------------------------
9 V. I7 L3 m& U; F/ u. e) ^_8bits proc near
. M2 T5 p) }# {5 Y# M      pusha        + p4 P1 E2 r4 U2 J
      rol    bx,cl
7 H/ v- k6 F' o# {      call   print_4_bits$ `8 \) h) r! j' w4 \& t) W$ }
      rol    bx,cl+ H2 |8 h% {7 R" h# ^
      call   print_4_bits
- H2 A, ^! }8 R1 P      popa
/ r0 J9 F* K% N8 {2 r7 H& b      ret
5 {$ U, u# t, e& [# d_8bits endp
" m& y/ r1 `% H8 W8 ~5 qprint_4_bits proc near' }- ^" x  B, `4 a9 @
      mov    dx,bx/ S( D$ l" K, g" y+ O1 @: s
      and    dl,0fh- C# D# G2 ?, S9 s2 ~2 e
      add    dl,30h
1 l! Z7 B2 D1 Y8 y+ f/ x      cmp    dl,3ah
$ c) S' Y; r/ u7 K  ~      jb     print! q/ o$ O3 U5 Y; M* H
      add    dl,7
# V6 y# `3 _: Hprint:  
# F: y" W9 W% K) r0 j" d- c3 G! @      mov    ah,2
  v* f& o+ ?% F1 m! F7 z8 \9 n      int    21h
- t3 t/ a! F2 g# P6 M      ret4 ?) X1 w; j  V
print_4_bits endp    7 N9 s; s' Y# M- g3 `
CSEG ends- L  w' Z$ }& M: u
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-4-20 03:41 , Processed in 0.040167 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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