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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)) L, Q4 x' u. d3 H* K( k! [

/ h. o: r) ^; g2 b則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'8 X- V6 |; m  K7 M: X" M

  q! o2 {; s7 q+ D% q宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
( [- M2 f; M1 u! o+ E; }9 e0 g9 F4 Q* o4 b( _' f4 m- Z# X: N
.model small
# k9 {; A, ]- m5 f0 x.386p
5 z, K! A1 z# x# r8 R' `' [7 PDSEG SEGMENT USE16'data' 0 m; x- H$ w( J

+ C7 r8 b  c! j2 h& C& `" D8 mDESC STRUC7 z. n8 f% A/ ?9 m
     LimitL DW 0
1 R2 m1 v! E! {1 v" a7 R% E     BaseL DW 0
" c8 n1 E* V3 [2 _  [     BaseM DB 0 . O/ B4 a0 _/ b# v8 Q8 \, {
     Attributes DB 0
  k" u" e$ E. w     LimitH DB 0
. {% T6 x9 }1 @8 Y     BaseH DB 0
$ C1 [" Q- o- u/ f. BDESC ENDS
2 g  q: w* e" r. K. q5 U  y7 q1 d* v# K3 o+ Q6 Y
PDesc STRUC: t" ^6 t* t! ^
     Limit DW 0
" R- h! i- B' o, j% J" ~: J/ x5 Y     Base DD 0
/ x/ s0 H0 E- ?' Z- {; ePDesc ENDS
$ L$ r1 X* l. K6 n8 y  g
2 O( @0 L; _. p* p/ yGDT_def Label Fword
9 R: q" w$ z+ m& p$ QNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>2 d  U% [0 E9 f3 I8 h& N' S
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
' z; d2 w8 K! C; t4 Z2 KGDT_Addr PDesc <$-GDT_def-1, >5 v; @6 c" ]; z; w
; a, r$ [/ y+ Y8 \
Maddress Dword 0
$ k. c* J9 H4 A  B2 D0 C. q( r; S6 I$ v; B
DSEG ENDS
6 S: F0 P7 `; a; K$ C+ _2 g* DASSUME CS:CSEG,DS:DSEG
8 X( z# J& ?) R+ B$ i2 O" u' {9 @
$ i4 h3 s% d- fCSEG SEGMENT USE16'code'
; s. L. g$ r) D6 L) X8 J, @      push   ds
6 f# J; ]+ l* ]: X% b      push   es7 g+ E0 ?2 U4 W+ Q4 ]
      push   fs
5 E, x+ y! U' @: u  ]$ Y) Q8 r      push   gs
, ~, Q0 F6 R6 Q/ A      call   big_real_mode     
0 f0 c% ~* P+ B: Q      call   Get_Commandtail
$ J5 o2 j, H: p2 c6 e      xor    ebx,ebx
4 k  R" F6 I5 r1 Q" _      mov    si,82h4 k: f  S+ l# ?" A& d( o
      mov    al,es:[si]
& A; d. y' j8 M* R" w      cmp    al,'r'
9 y2 t" N5 B& z% F7 {- Z" p      je     R
. \2 y) R( G- Y6 {      cmp    al,'R': f, l" a, H9 _3 J
      je     R
% }$ c) e3 P  n; Z* Y' e      cmp    al,'w'" a: |" }4 d5 y& c, h' h3 w
      je     W3 _9 X, G5 O  g! K5 b, y, K" g
      cmp    al,'W'  t. u) i7 I! c7 H, G
      je     W         
1 v2 W# n& F8 C, QR:" n2 u! b2 ]: p8 Y0 a' `6 {
      mov    si,84h
; X: t0 ]2 p) L( D      mov    al,es:[si]9 W1 F/ }4 F& Y# @( o9 G
      cmp    al,'b'2 f' s6 b% r' p( X/ E
      je     RBT
! i' ?/ J7 J% i+ D# x' f1 r5 `      cmp    al,'B'
+ @" D; L% L. k5 B      je     RBT5 x6 F0 ~& H7 X* q  D% J4 o, u/ G
      cmp    al,'w'
) B% p0 P1 Z# D4 m3 e. q3 V6 ?      je     RWR# T* I5 T3 f) E+ A
      cmp    al,'W'
7 j) P$ d3 X+ b8 M      je     RWR
1 ?2 T* o& l, I1 c2 k4 l      cmp    al,'d'. {7 V# ^( x) G% h
      je     RDR
/ ]0 h" G5 ~& a: q      cmp    al,'D'5 @- c& m+ [$ C2 y9 C
      je     RDR             2 E0 K, u- C2 \. H
W:      , o) ?  m7 ]! u
      mov    si,84h% e" C0 n  x. D4 d6 J" R
      mov    al,es:[si]6 O/ ]7 t8 w7 V- m  v
      cmp    al,'b'
' P- S9 ]- h+ q+ L) ]! |      je     WBT3 T6 t( J2 R7 X) ?+ `" @: n0 i" Z
      cmp    al,'B'
2 N! M2 T% [0 Y8 q! @6 I      je     WBT
+ `' K5 x  r$ {9 R; g  v& u      cmp    al,'w'2 P& v; o6 g; ]. z( }& G
      je     WWR
6 C; B6 F, L1 p$ J4 Y/ H8 C      cmp    al,'W'
# s7 ^& W- ]3 k& Z" p8 A+ B. s      je     WWR  A) w7 m# O& q  C* W# b
      cmp    al,'d'
; N) ~! u* ^" r$ ]5 O% g  a+ r      je     WDR
" c, P) v7 S! h/ b" [      cmp    al,'D'
2 s. z5 x% }. a8 f5 y2 E. y      je     WDR
5 _! e  D  f, B; p9 H8 L) MRBT:2 v  I4 X/ i" [# B
      call   PSP        
8 M, t( P2 H& k* ?- ~0 Z0 i+ B      call   crlf           
, [( @# J, T) P4 _      mov    esi,ebx
9 L0 A$ }4 k3 M0 \) d0 Y4 e9 q6 @1 r      mov    eax,fs:[esi]
0 }) s& ^! X. N      out    80h,eax* x5 j) M, o1 z. ]9 M
      mov    ebx,eax0 A* G  o! U& s7 R
      call   _8bits
3 a- k$ y) c$ h( M0 r: e; U% I      jmp    Exit* E; u' I3 |& U" V/ U" @
RWR:; @: t6 w) P0 T1 m. n2 T& x
      call   PSP        
" q& P% ^2 G! a: s" A" q      call   crlf           1 ?( Q# C5 X, I- h4 A: M
      mov    esi,ebx
1 c; G4 V1 i! S/ u( z* v8 l4 g      mov    eax,fs:[esi]1 X  V$ ~# x% m
      out    80h,eax1 g8 r2 I. D) V" I
      mov    ebx,eax
2 w! q) f: `, m/ L$ o+ p      call   _16bits
; k' Q& H& K( I% _" e      jmp    Exit
3 K2 P9 Q* _# g) f* ~RDR:
- z, n8 [& x4 H2 G/ {* ~      call   DPSP        
! t% l/ }; ?% Z1 Q/ _, B      call   crlf           1 j  y0 E4 J5 o8 q) b/ e' u" T  p: M
      mov    esi,ebx
# n4 G! C# m' x% j      mov    eax,fs:[esi]
6 t: [# u& Q& Y+ A  k      out    80h,eax
5 }( e% J* v- g; W/ O8 t( N1 i      mov    ebx,eax6 q- J4 m" ?8 Z3 H9 b
      call   _32bits
5 x9 ^4 n( Q# p0 f' [9 o      jmp    Exit
$ f* A: n8 T* n;------------------------------------------------------------------------------------------------% @2 I8 _9 H* ^
WBT:
) B/ D+ Z) x2 v' w" t" T      jmp    Exit" f+ I( g( A% M% M4 ~
WWR:3 U' N% C; ?. I% K; h) j
      jmp    Exit
* n+ B7 n+ q; H1 yWDR:- n8 U5 B0 z6 w6 A- W5 ]0 m( K
      call   DPSP; k; U% M* Q; |) a7 h. g
      mov    Maddress,ebx      : _& A. B6 N, K* [
      call   crlf, S' ~# i# w/ r+ x
      call   WDPSP4 n# W9 j( H' _9 f: y* X5 ^
      mov    eax,ebx# M( }0 ]% L7 Z$ F
      mov    esi,Maddress         
  F! e7 j# x: k0 Z  ?" b4 h      mov    fs:[esi],eax7 ?; P$ A$ V3 t: q1 i! g3 F4 q& A' L! b
      out    80h,eax8 K7 y" Q1 _1 `
      jmp    Exit
1 E1 F9 i: w9 x/ d9 S) p;------------------------------------------------------------------------------------------------       # ~7 J# q, N4 P" @1 E9 h7 O
Exit:1 P' Q2 b3 [1 O
      call   real_mode     ) ]9 ^$ ~0 z1 {
      pop    gs- e& f) B0 ^2 t+ \5 x7 z- u# `
      pop    fs
$ Q+ Q( D! K" f% X      pop    es
1 G( z+ w( k- K8 O; ?2 _1 W+ _      pop    ds       - q5 h0 a4 ^! G
      .exit
0 N: J+ _1 i+ @8 `' ~;------------------------------------------------------------------------------------------------6 I5 v* ]% r9 M0 H2 u- [
big_real_mode proc near
- @9 A  \! ?  j1 N& V: d6 y7 O      in     al, 92h8 W1 e$ G3 Y% X7 A
      or     al, 002/ @4 B1 b- h: F7 ~; Z
      out    092h, al
. a7 ]0 q7 u* p; Q      out    0edh, al& k! k! Z  K+ y4 `/ t' Y
      cli, c2 e% p& t1 y: t9 X1 y6 }
      mov    eax,DSEG
! G. p( l& A; C9 y: J$ ?+ X1 L      shl    eax, 45 R8 l5 Z5 ~& D: N% V$ |
      xor    ebx, ebx( y1 Y. S9 H; n$ X$ v+ J
      mov    ebx, offset GDT_def9 Q  E, g- H7 e- [- i! u
      add    eax, ebx
- `# c: l9 V' B      mov    dword ptr GDT_Addr.Base, eax
6 T* Q4 z2 E7 z$ f$ @      lgdt   fword ptr GDT_Addr
2 ?6 Q! {/ J# i+ s      mov    bx, 8
. B. \3 T# |2 j/ g/ P      mov    eax, cr0
! F1 H: ^3 i' J9 X, }      or     al, 1' P% d* D/ j" ^) A& {& u4 f
      mov    cr0, eax" B& K2 V( z) n: e
      jmp    PMod# Y% q6 @, U+ s
PMod:
% i$ M$ h' H2 R; t' a9 S1 Q) _      mov    fs, bx* [, Y5 f. P  m/ z1 j9 E
      mov    gs, bx
  Z% U4 q1 J+ i5 ]7 d7 O" w' c      mov    eax,cr0
+ d, i1 ^& L4 m0 g" j0 ^      and    al, 0FEh
: z' f3 J3 _4 v. O. k$ d' n8 C7 ~      mov    cr0, eax
# y/ [7 Q' S6 a      jmp    RMod
" W$ L5 W$ B0 u3 o1 QRMod:
' A& Q4 I/ `% C) c$ Z! I, l      xor    ax, ax* F* ^) J; X9 r( T6 i3 o5 i7 c
      mov    fs, ax$ L, V" o/ p- K9 P
      mov    gs, ax     - d4 u$ J, ]9 w3 B& H
      sti     4 M% _5 F2 f8 m
      ret+ \/ f2 k; w% Y8 m- ^
big_real_mode ENDP/ ]8 E; v" S; ?- D& H4 Q: ?
;------------------------------------------------------------------------------------------------
8 _7 e- P+ y6 S9 G! I1 R; Q4 rreal_mode proc near' P' X5 I* y/ N6 U' [* @
      in     al, 92h
  p# Y- y7 b0 s' B+ R3 \      and    al, 02
! E/ Z' f8 A6 j% V      out    92h, al    2 B' [; v# {. w+ ^
      ret
) e4 z8 Q5 m% i9 W3 Greal_mode ENDP
+ S4 C' R7 u( [1 G;------------------------------------------------------------------------------------------------
1 }& F- ~7 w2 {: g: T8 XGet_Commandtail PROC near
& O' h' l# m5 [" D5 D      mov    ah,62h 2 y  N1 B: q7 K
      int    21h; k+ P8 i4 q( p2 K+ y/ W' {# H
      mov    es,bx
( ]  h" n- s) i1 W      ret
- r. i7 {4 b9 sGet_Commandtail ENDP   
% @2 r: A# E. g' }: I0 D;------------------------------------------------------------------------------------------------1 Q' p1 n/ n- B# c9 n& n
PSP proc near
- f3 d1 j$ W$ s, s5 L  ]" V. J      xor    ebx,ebx
9 G2 S# M" J/ M( _$ @/ S- A      mov    si,89h6 m; R  [4 l3 q( q4 ]( R' V
      mov    al,es:[si]
; A) r# j% A, K$ d/ s      call   Change
: `5 i- p- D& c" ^/ Z6 w% j      mov    cl,4
9 Y# A, \8 S) K8 @) {) W5 u      shl    ebx,cl- h9 g" L. ?( l0 N2 u, F
      add    ebx,eax( X: z: v1 Q7 ?
      mov    al,es:[si+1]
, z, l% u& e7 _      call   Change
$ t+ Y; t1 M+ \) K7 |      mov    cl,4
# h! v% |9 Z2 O5 u: |; ~3 K      shl    ebx,cl3 T" q! Q9 g$ E, m) v9 j' u" j
      add    ebx,eax
0 [/ _! y( u7 v      mov    al,es:[si+2]2 T* i9 \: v$ z/ Y/ V% x) a
      call   Change
+ s0 p- a% b8 Q0 O  S      mov    cl,4" G! R+ _. [- b
      shl    ebx,cl# s4 |6 ]9 I: T# s2 H
      add    ebx,eax# ]' M, f2 s0 n! f+ `; o5 x
      mov    al,es:[si+3]/ Y8 Q- p8 F: N9 I4 i
      call   Change
9 k  H# y* {5 P+ ^" u      mov    cl,4
2 [$ |# q# A) C( z- B1 ?      shl    ebx,cl
3 t' C9 r4 D8 [6 |4 J, M, C) y$ Q      add    ebx,eax
$ @9 i6 A, D. D: n! f/ g& Z2 C; U      mov    al,es:[si+4]1 e8 _4 A9 x" Z2 m
      call   Change
  ]8 T8 f) x, g6 q/ q0 A' e      mov    cl,4  w! S  `& F/ K8 y- `  z- v
      shl    ebx,cl3 z  @( N, `& U
      add    ebx,eax- Y( c7 c, E1 J$ ?& ^! Y3 c. Z
      mov    al,es:[si+5]
: `0 Q9 D3 Q: }! j      call   Change
4 A& `, }* O- ?4 R6 k      mov    cl,4
8 }! k) g) g6 H* w. c6 |      shl    ebx,cl: K  Q6 g+ }) m9 \
      add    ebx,eax( G  [+ w  a8 `% l9 O( B( P/ z1 l
      mov    al,es:[si+6]+ }5 T1 Q, _* K4 k( n
      call   Change
# o, H  g) R- T8 C' X4 P& r      mov    cl,40 o9 ~' }6 l+ b) }- R1 r' L& W. x
      shl    ebx,cl
) N  t; w5 i: Z      add    ebx,eax7 {$ J- ^8 G! h' V' v+ h
      mov    al,es:[si+7]
' _6 y& j' v! J, f5 l      call   Change! M2 y- f* j5 M0 a/ z
      mov    cl,4
! H& ~6 `. k) |$ ~! M5 e      shl    ebx,cl
$ u$ D- O7 x9 l; }# R) g      add    ebx,eax4 [5 |1 ?1 N0 h. s. B/ q
      ret8 `8 |  u5 h2 W: X( f
PSP endp
+ j7 Q& P6 i# z' H/ C;================================================================================================/ W% l3 k3 d6 O" p, d  S! {7 `
DPSP proc near- c3 F5 }' |6 g
      xor    ebx,ebx' [2 ?# n' W; H5 }( K% o9 q/ P
      mov    si,8ah1 `' A$ d% I( g6 K6 A
      mov    al,es:[si]
5 f+ f: Q; j9 i0 H' a      call   Change! m8 ?' [: {. P/ l* i! U  \& `
      mov    cl,4; A& V+ D1 l  I6 ]; n1 b
      shl    ebx,cl
& G; y1 ^/ k5 q8 U      add    ebx,eax9 N+ X( ?! N! n7 }
      mov    al,es:[si+1]% U6 n$ ]" M0 b4 t) I8 f( z
      call   Change
) o% ?' E# e; U0 T" C- m' [      mov    cl,4: ~5 z6 c' Z  x% C9 ^$ d
      shl    ebx,cl$ N( m$ x; L- v
      add    ebx,eax
4 [; w8 a: `5 Q3 b: M      mov    al,es:[si+2]
8 i. C/ @6 r' X% i  h, z      call   Change
  \9 A, d+ _& O1 k( @      mov    cl,47 x2 {& J& u# Z2 v6 g0 T
      shl    ebx,cl
! {7 m* L2 u" Y1 E$ V% u) h  u      add    ebx,eax2 j: M' \( a' ]; }
      mov    al,es:[si+3]
! H/ A; ]; X! _, k      call   Change  C9 T- x1 J$ ?; k* g5 }3 t
      mov    cl,4
+ {7 k( E+ v+ o' S) `4 W8 L      shl    ebx,cl/ C/ E0 F6 O1 Y# B
      add    ebx,eax% I. o. T! v* T, h/ B; \7 c
      mov    al,es:[si+4]
# S: J/ F* H: v7 [8 o      call   Change
; Q% ^0 S% I$ x. p$ d' B# R      mov    cl,4$ N( i' j9 E& T  l3 I) _* g
      shl    ebx,cl
; F  K% S: C! G9 L      add    ebx,eax  \2 s$ B* u9 }3 p$ f7 Q% M( ^' _
      mov    al,es:[si+5]
+ V! J; P% }  Y* ~6 ]( r0 \      call   Change3 E, Z" W' u! C7 ~
      mov    cl,4
/ q( ]6 v4 X1 p: I5 U# D2 r      shl    ebx,cl5 ^' ^8 [4 q2 ]2 T1 n4 m
      add    ebx,eax
% p% ]# e0 @/ |7 m  D      mov    al,es:[si+6]: T; I' G5 a. p
      call   Change) x8 r! w. _0 S
      mov    cl,4" w9 w1 M) U$ }
      shl    ebx,cl* _4 \5 E( U' O
      add    ebx,eax2 E0 ^4 t4 F6 G% m% s( q
      mov    al,es:[si+7]4 x  A/ {/ I9 C7 I" e
      call   Change
  J, |) s. O! B) p: a( \% j( G      mov    cl,43 N$ c$ h3 u/ X2 z6 t$ }4 N- ~1 ?
      shl    ebx,cl
/ W" m" A- G" ?* ^, B. D8 a      add    ebx,eax1 n2 i2 r& N- i, {! R) L. g- K
      ret
. R+ }" }5 f" J7 }9 S* B0 Z+ |& KDPSP endp( s+ t/ Q! y+ t% a% P0 _
;================================================================================================3 T/ y1 a+ h! c
WDPSP proc near, [1 q1 Y9 K  b: i1 {
      xor    eax,eax! ]4 E2 w# U" O, g2 n
      xor    ebx,ebx; e5 j5 p9 D) d: c! \
      mov    si,93h
, ?6 b/ Y2 R) t% p      mov    al,es:[si]
: I3 B8 C3 \) S9 n" d, h      call   Change( H( P+ B9 y' o/ I1 l* _
      mov    cl,41 n; G. M' X+ J( P5 q( L
      shl    ebx,cl
; s0 ^9 Z: s8 ~      add    ebx,eax
  j9 U* e6 i/ ~1 z# C      mov    al,es:[si+1]
% C( q! \" t4 y      call   Change% M/ C6 e$ ^4 g
      mov    cl,4
4 ?' S" k  T+ E& G' c  S      shl    ebx,cl
; ^8 b, E5 T. R7 w      add    ebx,eax! q8 G2 r! t1 V9 }
      mov    al,es:[si+2]
, a. q3 n" d+ n& ^      call   Change9 x/ O$ ?2 f# ]6 w8 z
      mov    cl,4! }5 o- s5 r! D
      shl    ebx,cl
8 Z: ]4 C, N: h" i$ }& N2 V      add    ebx,eax8 o: ?; B* h' S/ q! J  V
      mov    al,es:[si+3]7 }  c$ B$ K6 _8 R) n. }
      call   Change: r* i& i! i- ]& L$ D
      mov    cl,41 c5 A% v8 Y; v) D! p
      shl    ebx,cl  N/ Q5 b7 C, j
      add    ebx,eax
$ U6 N4 T: n7 Z" J      mov    al,es:[si+4]
& V$ a$ j; q- n7 W/ ]6 a' {  {      call   Change
, {0 b) D0 T, f' u1 s% |      mov    cl,40 ]) Q: |# ~. Y6 n
      shl    ebx,cl2 Y' @! `4 k1 K6 d3 {7 C; A* B
      add    ebx,eax  \9 y$ c2 C( u2 y' \9 I- U
      mov    al,es:[si+5]. ^! Z! Q; H; C0 Y2 q2 _3 k8 ^4 X
      call   Change3 I9 ], k9 n, Y. ]) z6 Y
      mov    cl,4! n! o9 ^: z6 T' P
      shl    ebx,cl6 ~* R* }3 C( D+ l
      add    ebx,eax
9 k' y* D! Z; |      mov    al,es:[si+6]
3 S1 [; U: w0 @# b! g      call   Change+ x- R! N& e( @: d% ]' _# O: W- A
      mov    cl,4& F' b) [5 w: y" E0 R; Q
      shl    ebx,cl
8 d& |4 ~" d4 g0 z9 b$ _      add    ebx,eax/ {# T' O* P) X$ U3 z" z$ n! G# \" M
      mov    al,es:[si+7]
6 g% {, p1 h% X# V      call   Change; U  S! u- L- w  _
      mov    cl,4, ~9 J4 z" x( |
      shl    ebx,cl
3 X0 S% I) h9 ^  |$ e& C0 W' B0 S      add    ebx,eax
3 P7 g( Q, x# b8 L) b7 r      ret
) O/ T3 d& o1 w# u/ rWDPSP endp: q! q6 ?$ O7 c; s6 a& m/ s
;================================================================================================
. J: ~6 l: i+ k: q7 M- UChange proc near& X0 [! ]% E2 M( _: r2 o* C3 ~
A:    7 ^# }  m$ r" X
      movzx  eax,al' l" b9 I: @/ }* S3 t' ]& D
      mov    edx,eax
* A- z8 T/ A1 n. ]      cmp    eax,'0'            
7 C) l+ c4 X' q: G' z* Z      jb     A
& ]! h  Z" q# \. |/ J' f# w7 [; B: f      cmp    eax,'9'            & ]0 o; O0 ?' l9 R/ ~6 ]2 x' N
      ja     B/ Y0 a# R! L# x, w+ \
      sub    eax,'0'( L* B% A8 a2 A' ~$ q
      jmp    short E: M0 y5 D" t! R+ q/ q$ K# ]
B:$ W5 y6 i- B( y. J
      and    eax,0dfh           $ i0 ~' I+ R- }- @: _% D8 W
      mov    edx,eax
. B6 a2 _3 |& p, R) {# E      sub    eax,37h            
, O( e* j4 [  [# A* H5 v2 `      cmp    eax,0ah* x9 `: |1 }- k9 u" J. A$ W9 C
      jb     A                  ' l4 d7 H$ B$ ?2 k3 d% P' O1 @% _
      cmp    eax,0fh7 r8 r/ _# w0 a# _  L! o, t
      ja     A                  
) }% ~+ g- w/ _8 T: B) s# M7 RE:$ F. Z2 ^( h9 |5 Q3 m
      push   eax       5 R; o% Y+ R- i. `% |
      call   PRT                ) E3 e' r' c4 d/ a. g
      pop    eax
- ^) |& o- ~1 }  h2 ~# y2 ECExit:7 ]: D- h: _9 ]+ C; e0 H
      ret
4 b* y) P! H& _% ^: ~% fChange endp4 |: c4 P) g& R5 C5 ~: N
;------------------------------------------------------------------------------------------------& Q: W/ V" C# O6 L3 F( W- i
PRT proc near$ Z# B' e9 e4 p' i& E# U0 T
      mov    ah,02h
/ U, P7 y( B  O* D0 G0 w7 K      int    21h
6 i' a" l  `% z      ret
+ R  v( x, n2 `" Y7 pPRT endp. c, w) \3 f4 b+ `2 Y( d9 _
;------------------------------------------------------------------------------------------------' X: N8 e3 m0 L, t
crlf proc near
  n  y6 A" B: b# u      mov    ah,02h! M" B2 |. q- t* K
      mov    dl,0dh3 c, w2 d3 \, t( m* X' X" s6 B" S
      int    21h
/ o* C' ^  z( `/ F; K1 }3 B      mov    ah,02h
6 W5 k( S5 ]' d2 c4 l, o, c# T      mov    dl,0ah
0 `) k2 s  `0 L( C! j      int    21h) @  b* H; X% _1 s. h! L( E
      ret3 ~* C. q- ]( n4 W, j1 a/ z" K& Y
crlf endp
9 {. t# Y. F% \' c5 O9 E;------------------------------------------------------------------------------------------------* ]1 T# F' g0 s% D! U, r9 C; d+ X
_32bits proc near
7 l  O2 T! g$ w+ s$ D  B/ L# n8 R- P      pushad' L( D8 O7 g7 R! G
      mov    cl,4  D$ a. i* X  T+ D
      rol    ebx,cl
; u( R: H2 u7 {! j      call   print_4_bits3 P( K9 F" D2 i8 F4 g# {9 X1 |
      rol    ebx,cl
3 G# W$ p8 t+ J4 K6 s      call   print_4_bits
5 C- c! ^" P. B" V# }- E8 s      rol    ebx,cl
- Z  \8 ]* I2 b( E0 m& i      call   print_4_bits
7 l3 O! `* C3 R0 p: ~4 T$ x& d      rol    ebx,cl6 L0 z/ }7 H  Q
      call   print_4_bits
# ]# O6 Z4 y( k      rol    ebx,cl4 F  w" J* s( t+ |4 ?, G
      call   print_4_bits1 ^9 }- Z7 b0 ~" B, E
      rol    ebx,cl6 m% m' W; A0 F; f. P
      call   print_4_bits
) @' ?5 p+ g( T& Z      rol    ebx,cl
3 i( S1 H! q- m      call   print_4_bits; k2 z0 U5 e8 e" `+ f
      rol    ebx,cl/ l4 r7 K5 _1 K& I4 D3 z7 G
      call   print_4_bits
5 W7 P, k1 d6 i$ p$ m      rol    ebx,cl) [, l1 z1 d% N
      popad
6 }/ y$ w, F. r% M7 y3 w, c      ret) y. l* ~. o9 E1 `; s4 O) D& T' Z
_32bits endp
: A$ Z- c* ]$ h. m5 \" I;------------------------------------------------------------------------------------------------
( l9 u( Q$ M! i) n9 m_16bits proc near
; s9 x/ A  D9 s- E: m3 _4 e5 U      pusha        / v/ M5 m5 q5 n. S
      rol    bx,cl! Q' h: O$ q) B( T
      call   print_4_bits8 X( V, r6 I+ p
      rol    bx,cl9 ^) D, S: X0 o* n, R
      call   print_4_bits
% p6 p* A) y$ O. }      rol    bx,cl. x* H0 t) Z4 K3 e
      call   print_4_bits
6 U" e9 [( \) v* x8 A2 G      rol    bx,cl
5 v2 ]8 n* ~2 J" k" ]% @& z      call   print_4_bits
4 N- R  y3 x2 @$ b( F) A- [% B/ c; Q      popa: k/ k2 Z$ w  X9 O
      ret; v9 x/ d( q5 b9 J8 j- x
_16bits endp
$ F# N; ]. W" n;------------------------------------------------------------------------------------------------
$ W2 \# u1 l$ n+ }( K2 Z; r* a_8bits proc near* _6 \5 Y" M/ t/ d% o
      pusha        
& _3 A, B; n  b, f  r: s. h. K      rol    bx,cl
0 G' \0 |1 [0 x      call   print_4_bits& Y! v* G+ i( @6 g2 M- v9 B
      rol    bx,cl
& P9 {& J6 g3 I$ @; u      call   print_4_bits
, o- V- P! J& ^6 E      popa
, f3 t1 q7 z6 V& h      ret
( v0 M( u/ q* ?5 E2 o_8bits endp
( S3 s7 J/ C7 P' r9 J( ^, P; rprint_4_bits proc near8 l% P2 T: F4 |. A( ]# l& V
      mov    dx,bx
, k/ F; x& H/ ^  g/ C8 s      and    dl,0fh
; u; M4 |0 f  a! v+ S      add    dl,30h
/ w6 H" i5 }. ?4 O, L3 Q* \; W      cmp    dl,3ah1 ~1 I' k, h+ v6 b1 d
      jb     print. k2 q' I1 {; {: g8 f7 Z# }
      add    dl,70 z' H; E! o6 U
print:  $ b) f* e5 t' R0 ^9 [! ], ~0 X- }
      mov    ah,2
4 E" m! c) l! Y5 `, v: f      int    21h9 w9 G, `+ E' l
      ret
) R* o. x5 {& x0 Dprint_4_bits endp   
2 e& l8 k/ m' P4 q. VCSEG ends
7 a" L9 O( l) kEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-1-18 22:43 , Processed in 0.343803 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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