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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)
7 {6 o' K$ _# g: R8 q7 ^1 i3 w2 a( D: j
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
: _  L% P. t8 i. Q. v+ M9 M
/ h  n! I5 O% L  G: @宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  / r) R0 X* \/ y5 c' n
* p) w2 I8 F" P: }& f( m" _' y& t
.model small+ k+ z- [, L2 I) |% n
.386p) |! C1 z9 U) _8 m& r
DSEG SEGMENT USE16'data'
1 t# E5 d+ M4 I3 D  A. i5 F- u! a+ j+ y7 I$ W& ^
DESC STRUC
: U4 u2 Y1 R1 h. X" l7 p     LimitL DW 0
4 |' L& L/ H" s: X, |( E* T     BaseL DW 0
# k- h1 ^2 [2 f# i/ M+ ^1 F, q     BaseM DB 0
7 Q% b1 [$ V7 X+ }1 b0 s: ?# D     Attributes DB 0 7 _+ q; @% I$ ^( H9 L
     LimitH DB 0
5 U- J% L$ M, }1 s/ k' K( u     BaseH DB 0
/ u+ {7 J; w& O$ ]9 c+ m9 q5 d+ J: HDESC ENDS  _. E+ l" @' e% L
2 c0 m+ T- _& S+ G7 f
PDesc STRUC$ B! A; |) X: K3 a* T
     Limit DW 0 ( O0 t3 Q" l5 ?2 S1 E) K6 g9 C
     Base DD 0
4 F% T% Q! [) nPDesc ENDS
/ }7 N9 ]2 R/ v+ v: a; e  e2 h  h1 M! q: U: ]  ~3 p% _
GDT_def Label Fword
& o' f6 ]: K6 L* ^Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
2 E0 r+ d2 \; {* d3 k! w' T, VData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
0 s1 C( ?% l; a( r( {8 e; |GDT_Addr PDesc <$-GDT_def-1, >. M# C/ ?- o  m7 m4 K! u% b; \

! @- L  m+ S  K- x! UMaddress Dword 0
" [# ^! x( Q% i) {
: Y$ ?2 z* ^$ }# d: y  A* ]DSEG ENDS 5 u" ^/ z' `3 k
ASSUME CS:CSEG,DS:DSEG+ i+ a3 C) n% ~1 T3 Z2 u
5 o* A& _" I% a/ f
CSEG SEGMENT USE16'code' $ e" W, K2 c0 @
      push   ds0 z! `! G! Y0 b# g) x7 Y: P1 I- L
      push   es6 h  G7 W- R( h! N5 e1 B+ O$ f
      push   fs3 @) b) R/ I$ O; e
      push   gs5 R* K! ~, s, f/ M
      call   big_real_mode     ( ?' q! K# C: t5 Z3 w) Z
      call   Get_Commandtail8 x6 L# P- i$ h  g  T- T  b
      xor    ebx,ebx! ^0 }3 z: J. @, B
      mov    si,82h- {2 @2 @9 e) F  o! C
      mov    al,es:[si]+ a1 e! U8 R0 I/ _5 q
      cmp    al,'r'
0 j/ `2 N1 b* [1 |5 ~  j      je     R3 w. C$ }2 ]* Y. t
      cmp    al,'R'; C1 p' s. U6 {; q; z9 N' _
      je     R$ G7 }! C+ f, |" l/ Z  I
      cmp    al,'w'
+ `/ E: S8 [9 C* F      je     W3 A; L0 g  s+ H4 [
      cmp    al,'W'8 O4 D( C1 `. Y% s8 n
      je     W         
% G; l  P) l1 d& P  ]' k# NR:
5 w7 ]1 G' T$ R) F' y      mov    si,84h$ w6 M. d$ u2 }  g) T
      mov    al,es:[si]
6 D: p9 w1 u" c$ }      cmp    al,'b') v4 x! F: l- J
      je     RBT( B7 h$ H7 D# M7 b
      cmp    al,'B'
2 r( c) S4 ]1 G* H9 B      je     RBT. S% L8 s; X) e" h3 N
      cmp    al,'w'0 v6 Y7 k& b; I- u4 M; R
      je     RWR$ Z& Z  `% V+ E2 u* S
      cmp    al,'W'6 H) L( O4 \2 \. w  Z% f' Y
      je     RWR
1 @3 a( N2 M5 C1 [' u" U. W, f      cmp    al,'d'# |. M5 _; m$ b( h5 y6 t9 R
      je     RDR
1 g: w% j8 `7 K      cmp    al,'D'
2 F! s! N4 r1 ~& y% \* s+ x      je     RDR            
. p, I2 v2 g1 @  x* `% ZW:      ! i" C& @! X7 ?
      mov    si,84h* o; c2 o+ U4 K6 h- Z3 ^
      mov    al,es:[si]! R6 D% w7 z5 h0 l3 T4 e1 Q
      cmp    al,'b'3 Y0 A% [/ i2 f. P  f; Z4 E2 f
      je     WBT
7 z2 G$ R5 U9 n* R0 Q( b* I      cmp    al,'B'
+ b3 o# `# g0 i5 I/ f      je     WBT9 _. _9 D( o! _- T0 f' c
      cmp    al,'w'9 m( |4 `- f6 w$ p: N/ _& ^8 f0 y
      je     WWR
% W0 Q/ q( d6 z3 C      cmp    al,'W'
' m/ i9 ~  N0 Z7 r      je     WWR# j1 E  ]7 R7 M9 F# z$ b
      cmp    al,'d'  Y" i/ |& h( s, g# M
      je     WDR; a% Q  C  `: Q6 q9 W
      cmp    al,'D'
0 e% O8 K4 A. |5 U6 `8 ^      je     WDR
3 t  s2 t4 u1 hRBT:
9 Y$ o- c0 M1 T- a2 O4 j5 g) `      call   PSP        
& n" _% }, t" E8 N! i& L; t      call   crlf           : i6 h' I8 N) k. C% \  c* q: W6 a
      mov    esi,ebx
! Z! D" Z  P/ G* o: r: I      mov    eax,fs:[esi]
5 {2 `, k1 u2 k      out    80h,eax
0 \4 g' U* M7 `5 H7 `# [      mov    ebx,eax* v9 |+ @/ v; Y, }
      call   _8bits( m- m  i' l0 x. M
      jmp    Exit0 n" g! N3 L4 \+ t: a
RWR:8 ^( M; t- ^4 h. d  e: X
      call   PSP        ! F# P# `; U& m
      call   crlf           % A2 v4 ^  [( o* `" z5 F
      mov    esi,ebx6 q8 a- O- Q; f0 U; V% V6 k
      mov    eax,fs:[esi]7 L# D2 w2 \" u$ F% [6 L
      out    80h,eax# J" t) }; z+ s2 o; G6 g. R+ G
      mov    ebx,eax
) g/ P! W; X% U      call   _16bits( r. s/ \( W, N) X0 e
      jmp    Exit& y$ w. @3 e# x, B9 E9 U+ \1 f
RDR:
" k# }3 X5 Q! `' v      call   DPSP        
. ?. R9 B1 x  U# ?8 B      call   crlf           , H; j7 }$ o3 Z& X4 q4 [" Z
      mov    esi,ebx
/ J9 W5 b( O6 b" \$ B, D      mov    eax,fs:[esi]
- V9 G$ T4 ]) |! ]' z7 p6 c      out    80h,eax" D% h2 w6 b# V
      mov    ebx,eax
# Q! o6 l4 V, Y* M! s# ~      call   _32bits
. a- j7 J6 c2 y$ x: T) n; r      jmp    Exit
7 c5 P  g7 u0 h# l/ f;------------------------------------------------------------------------------------------------
, L  d5 g8 m: Y1 T1 l- A+ [) ^WBT:
' I; E# e* P; g" q; k' f: m5 @      jmp    Exit8 ^- t4 }# ^- U# V# W$ Q! t
WWR:
7 V" r8 Q- ~( G7 [      jmp    Exit0 _# i- `5 j& u% V
WDR:4 S7 ~6 n. Q9 M7 c
      call   DPSP
+ D. M1 F$ ~0 I6 a# C      mov    Maddress,ebx      " l; v; ?& [! ?9 r9 m6 Q7 ~
      call   crlf: B! q: u- E3 T) G' ~
      call   WDPSP
0 ]( b2 l' T9 h4 J" T      mov    eax,ebx9 f  t6 M. {1 i6 F2 S4 n
      mov    esi,Maddress         
, l; Z, O; w$ v5 g      mov    fs:[esi],eax% U' r6 }3 L/ x' U/ H, T( q
      out    80h,eax, s& A2 x4 R7 V. n3 _, d7 ]8 o/ |
      jmp    Exit
2 k0 M& U( x" A, t+ T;------------------------------------------------------------------------------------------------       2 @) S$ |: c& `) s% `
Exit:
$ W# e1 k/ ^# F$ D: p" w: L      call   real_mode     
+ [2 K: }( C9 I$ b      pop    gs5 \- {% n6 e# W+ a, h* a8 l7 {
      pop    fs( H) V7 e  N- D3 X
      pop    es
3 f3 B, R2 l* \: e      pop    ds       + J' u3 p. Q: L7 l" \, d
      .exit
* b9 T% e3 G* H) s0 a, E7 _;------------------------------------------------------------------------------------------------) Z/ O& C" l# T1 ], f
big_real_mode proc near# C: G7 R$ a" @* s
      in     al, 92h, x6 H! s/ ]- d  x5 N
      or     al, 002
+ m' n: v+ c  p      out    092h, al
! n+ v; M+ E6 k      out    0edh, al
$ v) I+ B- E1 L" H. m; I, f      cli  h) ^1 f4 a2 M, k8 \1 V: Z
      mov    eax,DSEG) s- M2 P2 `* w8 p
      shl    eax, 4
$ o9 L( w9 n4 ^      xor    ebx, ebx
" l* l; K. \$ _. A      mov    ebx, offset GDT_def
: ?  _0 i# o, Q1 E      add    eax, ebx
+ Z: ?3 J/ s' j9 l      mov    dword ptr GDT_Addr.Base, eax& i$ F' z1 F2 I! F
      lgdt   fword ptr GDT_Addr. g9 q0 }4 _' N* A
      mov    bx, 8
2 Z& M; U5 O( e6 D      mov    eax, cr0" w' `. u% B" A% y; D. o
      or     al, 11 W4 a. t. c6 @8 Z% T6 X) H
      mov    cr0, eax
& b) X9 O) Q* \* s      jmp    PMod3 W  r. m, ]1 }7 k+ W+ h, |. A4 k# A% @
PMod:) Y: q; _) y' A- l0 U$ R4 M
      mov    fs, bx# a- x$ e1 p, y  f# i- ~
      mov    gs, bx. O; h1 Q+ u1 w- j
      mov    eax,cr0; z# a, y! k0 `4 m& U
      and    al, 0FEh
6 O5 u# o- R# p) v: ]      mov    cr0, eax
8 d# t. y- v6 H' G# T      jmp    RMod2 y& s  Q+ g- K1 P! n
RMod:, {; R7 {4 r4 W+ X/ G& k
      xor    ax, ax
9 L7 g- o& u9 Z3 s      mov    fs, ax
. _$ A- H! \2 U9 M) W      mov    gs, ax     
4 E0 u) O. d2 Y* \4 L      sti     % X3 n0 R5 B4 ?: Q! n% Y0 l( R
      ret( m3 }3 l% f! q3 T7 u& d" r
big_real_mode ENDP7 G( R; d" G0 }2 G. B
;------------------------------------------------------------------------------------------------- J/ z8 Y, z+ K' S7 f
real_mode proc near
1 _; a; B3 `* W+ ~( F1 R7 z+ C. T      in     al, 92h
8 _+ n7 i, p% D; T, @      and    al, 02' G, N3 F5 P2 E0 y: o0 T! w
      out    92h, al    ; O' J1 ~( X. Y
      ret
8 e& a) y: I6 yreal_mode ENDP' A( i8 ?4 ~  ]: n
;------------------------------------------------------------------------------------------------
& [1 H1 w% r+ {9 D2 U: Q0 A" hGet_Commandtail PROC near* n% g" z3 n; L
      mov    ah,62h
% ~& l0 Q. H  K      int    21h. y$ e8 [- w% q; h" V
      mov    es,bx5 W6 L* [! Q6 N; G. ?, P3 G
      ret/ ]5 a- }& C8 u6 [" _
Get_Commandtail ENDP   
! g8 y* n; j* q4 O8 x. O;------------------------------------------------------------------------------------------------0 I% L) c' ~7 ]1 h2 h
PSP proc near$ L; w" L* B  q% h
      xor    ebx,ebx  y- }- n4 Z+ u& ]* w
      mov    si,89h) Z9 b* N% x0 a
      mov    al,es:[si]
+ X* f, T: G+ u- G( u/ ]      call   Change+ ~4 k! u+ P: R
      mov    cl,4
) f/ |1 y$ `+ m/ C6 `. Z      shl    ebx,cl' P0 t. }: U* B" H2 v8 D) l* w* v; X1 q
      add    ebx,eax8 _: h/ Y* f5 i  v! }8 i  x
      mov    al,es:[si+1]
& @1 V7 w7 c! U5 v! ~      call   Change. O' ?5 X0 F3 D( O
      mov    cl,4" q; l4 I8 w% c  {! A
      shl    ebx,cl( O/ ?5 U% m* A' m) P: f
      add    ebx,eax
; A6 v: }, H1 U, d2 E# t( n      mov    al,es:[si+2]
3 y4 X3 [' B: M" v      call   Change5 T  e( G! i% E7 N7 z
      mov    cl,4
1 J; X+ k2 w. i, d6 b      shl    ebx,cl
- E1 ?" m  g$ P( o+ y# _4 c1 A      add    ebx,eax# a" R3 E) |( ~
      mov    al,es:[si+3]7 V* h' o/ J- n0 u+ S4 M/ }' X
      call   Change* l3 s. T4 s4 g
      mov    cl,48 A4 u, |* x: |
      shl    ebx,cl: S. `3 N& q4 e& ~  ?4 Q. R# S
      add    ebx,eax& ~( B' |$ I3 o' q
      mov    al,es:[si+4]
; c! R  u0 U! v0 o+ s8 N, Q      call   Change
' I5 a1 r( l6 {: `" X; e      mov    cl,4. G* e3 a1 F6 M
      shl    ebx,cl
1 o+ E! p8 O, _. g) _7 f+ E' w      add    ebx,eax
2 J+ e" Q3 ~2 t+ Y) {+ O+ C      mov    al,es:[si+5]
4 V/ a, T0 _  z+ B      call   Change
) _3 ~) q; ?( d$ Z# l/ z: `9 j      mov    cl,4" g& G7 W* D" T7 b5 J
      shl    ebx,cl
% u; P, F3 v- A: p: W* R2 q- C5 g% p      add    ebx,eax4 ^+ c& e/ j/ r0 `  D/ i
      mov    al,es:[si+6]
$ j3 }3 m( M! b* z, O* z      call   Change2 q* v8 x9 f' N2 E) X0 T
      mov    cl,4  k2 q' p8 N7 l' r  _0 j
      shl    ebx,cl! `9 @2 i0 t+ o2 y2 ~
      add    ebx,eax
: W( ^4 U1 s; v( o      mov    al,es:[si+7]
  M  e2 N+ O; m% ~% z& P      call   Change$ b/ ]" G1 D2 k8 j& ]$ I
      mov    cl,4
5 n. ]6 X1 X8 r: q2 G- s' {      shl    ebx,cl
8 J" r( ]% c4 x; i4 u4 J3 e      add    ebx,eax
1 A$ S. g7 j; U! c( n; I      ret  n) F% t+ P  F
PSP endp
/ Y1 ^( Q5 N9 P6 V. Z6 w: E3 M;================================================================================================
! V% @" k% H9 i# m( RDPSP proc near9 z; Y2 \9 u% x2 F6 I" V4 n
      xor    ebx,ebx" c# x% J' T: i" D' k; q
      mov    si,8ah+ O! q. T% P8 P+ G2 R' U4 R
      mov    al,es:[si]7 Q: n2 B9 H5 S
      call   Change" D/ y  p3 @! P. ~& t
      mov    cl,4
7 J6 }! {5 [0 ?) p& \. h9 B- u3 [8 p      shl    ebx,cl
* H9 V# M5 o3 C+ J8 D* i& Y5 A      add    ebx,eax
2 O9 z+ t# O% x' {7 S      mov    al,es:[si+1]
) B* g$ q5 r' V. a1 l- \3 p      call   Change' I1 m1 n3 P6 ]5 V
      mov    cl,4
  f: D" I) C$ L* d/ K6 ?      shl    ebx,cl: m1 k+ R( ~* Y% R: `' I6 B
      add    ebx,eax
7 d; J8 i8 L# z      mov    al,es:[si+2]" T% d& b2 E4 y/ T, ?5 D$ }
      call   Change& b1 d$ ~1 t4 p4 o( k
      mov    cl,4( d, u4 c* a9 }
      shl    ebx,cl
1 a2 u; s: I8 V. a9 O1 }      add    ebx,eax* U6 M# p% y" I# b$ [% l  V; M
      mov    al,es:[si+3]' M: R" e0 b" C- a; X( I
      call   Change
  f  D/ g( [: O( G( n      mov    cl,4) V# }7 u- w3 ]8 _& r0 [
      shl    ebx,cl
! k0 |1 b1 o! x" \7 D( j2 Z      add    ebx,eax' i! ^( b% S9 ^6 y
      mov    al,es:[si+4]
- r$ u" @* j0 O      call   Change. D7 P# }. i4 c1 Y* E5 ^' U* F' C; D
      mov    cl,41 x1 `' j2 Z% G  `' ]2 m
      shl    ebx,cl
( `' X0 W4 Z9 P- \7 Q7 N# o      add    ebx,eax& b% F( h3 i2 n$ n; w3 _
      mov    al,es:[si+5]
# Q1 b( ^* z/ ^1 F  `$ q      call   Change
' O. P! u, A7 E0 {) t      mov    cl,45 v" c$ g/ O3 D' l! W! P
      shl    ebx,cl% p6 E9 e: E2 [( U  N- D* Z3 k
      add    ebx,eax) o0 x9 ^' I6 b, D/ G, M1 c4 N
      mov    al,es:[si+6]
8 ?0 m6 s/ \0 P5 V      call   Change% c1 b. W  O4 f' G2 |$ p4 e
      mov    cl,4
1 g5 B& I2 h. l* G      shl    ebx,cl
* \- _* q' u9 @      add    ebx,eax
9 V1 ], j, \, v9 J5 n      mov    al,es:[si+7]
1 r9 t$ p& w2 O5 f      call   Change0 w, k, a# q  q( M9 n# L: s
      mov    cl,4
7 @- x9 |; `( Y: g9 {* Y      shl    ebx,cl: d0 g1 r2 J/ a" t0 `
      add    ebx,eax! W3 Z" w- V3 f  Y
      ret" `) k: J0 H, \) h
DPSP endp* V, C- p) l4 P& {" D
;================================================================================================( E- |  z% p- Q
WDPSP proc near5 ^' U8 }- m9 M( S, I
      xor    eax,eax8 p; w9 Q' w& D) E
      xor    ebx,ebx
* d+ U: B( S' [+ E      mov    si,93h, O+ ^3 q, W4 J  e. [
      mov    al,es:[si]
% T' c1 h' n1 w" q* L! b      call   Change
' C& k" E5 ^' M& R7 U3 U; Y      mov    cl,4( X4 ?) W1 V9 V* T2 I5 @
      shl    ebx,cl4 |. i; ^" H$ `1 r: U( {8 P0 Z6 \
      add    ebx,eax1 b: L& D4 L' v. f! Q# l: \
      mov    al,es:[si+1]
7 D" W+ j$ S' D9 _      call   Change) s/ Q  O9 w8 I. P7 K8 E
      mov    cl,4
& g  H- q$ ^% Z  [. I5 \      shl    ebx,cl1 m0 L' @* e+ L# g
      add    ebx,eax
  q1 \0 W: Z( K- _) h2 U, t      mov    al,es:[si+2]! e; {; `  q7 I5 j8 }
      call   Change6 E& x% Z- O8 L/ G- {
      mov    cl,4
: b" k7 k# t0 Z" V! B      shl    ebx,cl2 F- U+ @: M+ e% z2 @- z: ^- n
      add    ebx,eax4 _, \9 V0 ~& \4 a8 q9 T4 ^
      mov    al,es:[si+3]
. k! y  @5 j% _/ Q      call   Change
- Z! w& H- T4 p) r& v5 N4 u      mov    cl,4
! ]8 d$ {( r) L  d      shl    ebx,cl% K; p. O$ E, E6 ~
      add    ebx,eax
1 J1 R$ _* y" ?1 N      mov    al,es:[si+4]
; J) I7 q" g0 ]! W      call   Change
7 p% `5 N+ X* B6 O" U      mov    cl,4
3 M3 D7 ]& _' O: [      shl    ebx,cl
. F( y7 s! o. i* `# P      add    ebx,eax8 c) m2 `$ I, W# X5 U2 G7 a
      mov    al,es:[si+5]5 e- `9 k0 b* k0 V6 O
      call   Change3 N* s$ _# X) X! k( ], g
      mov    cl,4
! J# M% Q- B9 ~3 v- N( \! j      shl    ebx,cl7 }3 ]) s1 M6 e- O) E( P
      add    ebx,eax! r/ S! q8 n7 d6 p4 v8 `
      mov    al,es:[si+6]
5 t; }" Y8 G; C% s      call   Change) m2 C4 G  L2 G$ D6 S
      mov    cl,43 c+ m# [5 b3 _( M7 O1 p) Z5 [
      shl    ebx,cl
2 L+ W3 H( M7 S  j  j      add    ebx,eax
( `4 p' V. g0 z& V      mov    al,es:[si+7]/ f5 Z) A, Y) ], J) ?
      call   Change, R$ H% h+ R+ _7 P' E! [
      mov    cl,4
( f. W5 \9 n* f, j. H      shl    ebx,cl
% ^5 `' _6 q8 t      add    ebx,eax
+ o; R1 J1 N& u  ~7 g  F      ret
" E- \+ @3 @; [" RWDPSP endp
3 b* t: ?1 Z' f* G6 s- C! ^6 W;================================================================================================
/ }9 C# ]3 X2 g' X3 d( MChange proc near
, t$ n9 ^5 C$ G- iA:   
9 F9 K2 r4 T+ `6 T) S      movzx  eax,al
+ ^# I, v5 w0 c, P* ], N& O      mov    edx,eax
5 X6 q- b% f2 L% C1 i1 S      cmp    eax,'0'            1 ?5 c: x4 ~; K/ J- `6 p3 M1 w' {
      jb     A0 X+ ~" E% {* A0 A' O7 ?/ J
      cmp    eax,'9'            
* @1 D0 g3 ]/ x# y      ja     B3 C4 I. t: K% q. P" q
      sub    eax,'0') o; F% o9 d5 D( z* _
      jmp    short E
& b" G0 T! Y0 V  M- a, cB:
7 n9 Z" I0 ?' g      and    eax,0dfh           
/ G/ a# \7 u6 C) K      mov    edx,eax
( N' i$ }0 c6 o# y0 g      sub    eax,37h            / ~8 J' ?% p8 O& R/ \
      cmp    eax,0ah" m& M( P0 I% N9 m
      jb     A                  
3 |0 Z: z4 k8 v( H* _5 ~      cmp    eax,0fh; j$ q. ~/ ~' G3 [% U( ]0 e1 C
      ja     A                  / l! |' W$ z/ r( ]* z1 \
E:
6 S. y5 W3 |0 Q  F      push   eax       ! E6 g7 A6 z( G
      call   PRT                3 d; U" P4 V  f; A
      pop    eax8 E8 E. g4 O8 r. m5 n
CExit:
, G% Z/ M/ p# e/ ?) [* m. U      ret
3 a4 o, u- t8 Y4 }6 e) W8 p% ]Change endp
4 V! O# j* h, d' m) H! R$ n;------------------------------------------------------------------------------------------------
2 `5 n" o, G* rPRT proc near0 v# i1 n& ~2 P( `6 q  K
      mov    ah,02h2 y4 n5 A1 Y: r! [3 ~& z6 u
      int    21h0 J! Z. P4 a# W9 w0 H
      ret
/ d. ?* X2 Q# _+ {7 RPRT endp
! @8 \( a. J' T9 i. v1 b/ ];------------------------------------------------------------------------------------------------  h) w6 d  W; v+ r' T& W% v7 R
crlf proc near3 b3 q. G% d  a. B1 Y
      mov    ah,02h" g/ u% S4 l' S  z- a
      mov    dl,0dh
1 I7 ?4 q: X* F% s      int    21h% n, K' f9 }. l
      mov    ah,02h  N/ _" e2 b/ L# p- m  m
      mov    dl,0ah; c: `7 E: ~/ ?' D! l% e0 J
      int    21h
+ V: y% Z9 u8 t/ I0 f4 j$ |  @  I* e      ret# t" U6 G3 G4 F5 Y  i2 i; g
crlf endp7 Q& s2 M$ R! k8 x3 A- g: J4 y
;------------------------------------------------------------------------------------------------
1 p$ a+ i; D  x0 y! U2 V' Y2 o+ `_32bits proc near1 D. }' ?; T2 ?" o
      pushad+ H6 N: R0 W# A# q: L  |
      mov    cl,4
" h  i" P* Z& M2 e      rol    ebx,cl5 H5 v8 U0 v- Q# U& ]
      call   print_4_bits
6 y1 x2 M5 B% N( b      rol    ebx,cl, w1 K- t) B- d. u) B# [
      call   print_4_bits4 g3 s  x  U) D$ B* Z' ?- ~! l* M
      rol    ebx,cl
: z( \+ T4 r6 Q1 C0 r7 W+ c      call   print_4_bits
: }, k8 v5 W" Z. P% f. ~      rol    ebx,cl$ M$ B0 o+ T' e! U
      call   print_4_bits- Y2 ]( A8 q0 T( W% {4 K1 ^
      rol    ebx,cl% s% a  @  @+ K7 }; Z' {
      call   print_4_bits& h2 L% D2 }1 i; c% j; U0 y
      rol    ebx,cl% l. f& B6 T: \+ O" X! z+ }. O
      call   print_4_bits8 q2 T3 k$ N5 \, b
      rol    ebx,cl. F' S$ x2 j' \3 i- S" _2 o
      call   print_4_bits% V: Q! U8 n3 G% J* e9 {( k
      rol    ebx,cl
2 B/ @9 X5 p. Y3 q. g7 t5 K      call   print_4_bits5 u. h3 ?0 R9 Z* T
      rol    ebx,cl
0 E1 H; {9 U9 m6 a( c* a, K( l      popad, P; W3 n! e) s$ g
      ret3 F8 n# c' W4 M3 y6 r
_32bits endp: I/ v2 t) L1 f( L  t4 \" M
;------------------------------------------------------------------------------------------------' [5 R: o( c" ^9 U
_16bits proc near6 u/ J2 C4 c* N: k/ G) Z6 k" d
      pusha        
% p& U* o6 t8 t- K( D) s      rol    bx,cl' o% u% p. z# G( \+ S5 I" v
      call   print_4_bits
4 T+ g, v7 X+ D& w      rol    bx,cl5 E. E: P6 R& |& ^+ Q
      call   print_4_bits  I3 r- z7 T3 ?
      rol    bx,cl
' L/ Y  f* J8 D; o7 S1 ^      call   print_4_bits" R/ \; [( o8 H9 t& d; A4 c
      rol    bx,cl) \; k5 a. C: b) K' L5 X$ e; z  r
      call   print_4_bits
& T4 {  ~& W" H! a      popa
+ w0 [+ c: g" \# ]* u* |; r$ ?      ret0 r! w7 @# }  R! C
_16bits endp
/ a  b1 v+ B( N( A+ _/ r;------------------------------------------------------------------------------------------------* {2 c" g) W+ R" w2 K6 j1 R
_8bits proc near
; z# A7 U5 @- v) z' E9 O      pusha        4 I! T5 N, S* e4 V2 W$ ]
      rol    bx,cl5 y. N2 v3 g) x6 q4 p8 C
      call   print_4_bits5 s; V" s! w* [, V
      rol    bx,cl) Q' W/ K6 c# c5 F. j8 r
      call   print_4_bits1 R/ w) i& Q7 j. r% b5 ~* t  _' R( v
      popa5 B' Z9 v2 X' g( \# P& Q* K- ~
      ret
! s  n0 O5 E0 o6 ?3 `$ ?_8bits endp7 D2 L- c, s8 ^7 u1 b, Y; H
print_4_bits proc near: q" ]$ z/ p' t* P- E
      mov    dx,bx
% o4 a: O# z- q0 t/ u3 b2 i9 c      and    dl,0fh2 O6 Y2 W$ O  l
      add    dl,30h
: ]0 l3 a6 \+ `$ j# k! v      cmp    dl,3ah
. b! m. J$ q. n      jb     print
! M/ U* i% B" H- g5 q      add    dl,7
# U& Z9 a1 u& w% jprint:  . s$ S! J. n& c1 Q/ b; w
      mov    ah,2
7 K, }! @, c4 _+ i+ k' h- Q9 Q7 g      int    21h
0 i9 E* O1 X5 _* h2 ]3 L. Y3 E* y) l) J      ret1 m, W7 @& `' F: r; R
print_4_bits endp    9 u5 i4 E( \; g, R+ B
CSEG ends' {  z  _+ Y# i& _/ P5 I& `
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2025-2-19 06:10 , Processed in 0.029254 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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