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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)
* ~% r! T4 H; G# T6 h0 k# ?2 o  n9 u6 i& [
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'1 q2 ~  v/ t" E% U3 T! Q$ f
& j: @, N$ u  v
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
. p+ _) `/ ~( a: o4 l1 D/ l' l; g/ x, O
.model small% z( q0 g. \3 O7 W) i
.386p. [" s0 Y( p, J: r3 A
DSEG SEGMENT USE16'data'
9 M; k2 |3 Z% u3 F5 w* ^; X+ w& b+ c0 c5 }; h6 z; c0 G: f/ o" Y
DESC STRUC1 W" k# m, ~: t' r) l; x
     LimitL DW 0
5 j) U5 I/ |0 L$ b/ l, k/ h- R7 S1 K     BaseL DW 0 * n8 m' N% `3 W6 \1 |# A1 K
     BaseM DB 0 % R5 R$ D* W7 p- C& [. @
     Attributes DB 0
0 R9 G3 z8 @; `" }# l- W% m     LimitH DB 0
! z) s7 f' P2 z1 e- }: d8 \     BaseH DB 0 # c: |. l; {" W7 b/ R5 l6 l* P5 Z
DESC ENDS) e- d( `& j- q3 m, V- X2 @; M4 l
  \+ Z' c6 Z* M& U( J  A% B
PDesc STRUC
2 ]1 x( Y7 e, }. Q0 @+ K% @, B     Limit DW 0
3 n' w4 e6 e% v5 G5 |: ?     Base DD 0 % n, R1 L0 `4 ]  k  x( s
PDesc ENDS7 x5 Z7 r" }* w% B

$ i6 g0 o; `+ NGDT_def Label Fword! a* G' u( z2 O8 M
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
. Z- h% s0 Q' K1 ]& M+ g3 fData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
9 |7 T8 b* ~7 y' `GDT_Addr PDesc <$-GDT_def-1, >, W; u' J' Q5 @7 C( Q/ M2 z, i1 v+ j) G
# s  l5 [7 I! N2 U% y
Maddress Dword 0
+ A! S. p0 w8 ?! _6 }4 C( S8 B
$ N4 F$ u) D# n6 T; Z3 VDSEG ENDS
. Y. D/ O/ N: x. _% Z: yASSUME CS:CSEG,DS:DSEG! |' l9 G# m1 N3 [

+ ]- S4 B+ _7 n  X: SCSEG SEGMENT USE16'code'
1 M0 a5 V2 ~8 T9 J      push   ds2 q' t- \9 b- x# F
      push   es' d4 G, `; c$ C2 k, A6 L
      push   fs
: G1 @- ?9 u! t, o' a5 o, X( l0 ]      push   gs- _( V0 m+ o" \7 M. {- G
      call   big_real_mode     4 D- t. D+ }; a5 z% J
      call   Get_Commandtail
, H/ _/ l0 Q7 g/ }4 J' Z& u      xor    ebx,ebx/ ~, V' @' @( m3 P7 J6 f8 t5 C3 \
      mov    si,82h
' D0 s: f  M, m/ Z" J. t      mov    al,es:[si]; w# Q, Q1 p* g5 P
      cmp    al,'r'
! E+ f; F9 m8 d2 m2 q) \) o4 |      je     R
4 g2 L  G0 U0 @      cmp    al,'R'
8 h0 w, ?: |% N$ Y      je     R7 ~7 D4 V0 B# R
      cmp    al,'w': A+ H* W& @  s. y
      je     W/ k. x2 x( u* _, s, `1 `1 C) i! n
      cmp    al,'W'
$ Z9 O1 \0 j) `6 E      je     W         
* P6 D: a/ p& B: ER:
0 ^% {/ k& P% i2 v. P      mov    si,84h
- O9 V( G1 A7 Z$ c1 a. I( D' ?$ x. E6 L5 P      mov    al,es:[si]
9 [! Y( [9 y+ _, ]) \+ }! C* B      cmp    al,'b', ]; k2 a+ t- T4 M, F9 v
      je     RBT. |2 R: x8 C" q. n
      cmp    al,'B'- ]: ^* H$ e# h  n4 q/ ?- R
      je     RBT
+ g/ h# v6 |5 n  D$ f5 O$ N      cmp    al,'w'
2 M: q# l  ^: P& ~' B7 V% g# }1 `      je     RWR
5 H- v( ^$ n% y6 P6 B      cmp    al,'W'& i4 R8 n; O0 p4 }
      je     RWR0 I, U: Z) B1 K/ p- C5 ~
      cmp    al,'d'0 Y2 T/ b$ P+ {4 W0 @; S
      je     RDR- h# a+ g& y+ c, T" ?2 P
      cmp    al,'D'+ i8 u; E/ U- _# N- b
      je     RDR            
3 T0 K# E+ s5 R0 s9 w' n% e9 ]W:      2 J# u4 ^9 P2 U+ {( x
      mov    si,84h
6 A" Z4 d/ ?3 z* o      mov    al,es:[si]3 q) b: l# Y; M1 Q( u
      cmp    al,'b'/ M4 S0 U# D8 D1 ]* f2 H
      je     WBT
- L+ m: r* w! q$ W, m' {. A0 D      cmp    al,'B'
2 i) |) j( u5 F, H3 n      je     WBT
6 z0 H- ]7 e) C      cmp    al,'w'
7 C; J& Y: x% ~      je     WWR$ g! y6 X  r) }( |, S" m- }( Y# v
      cmp    al,'W'4 s) n8 L. k8 Q2 C5 j3 v/ K
      je     WWR
) y2 s# g! C) U! |9 B& ^      cmp    al,'d'
/ n1 x% V6 f$ O9 O: |      je     WDR- a  _8 @. b. a' O
      cmp    al,'D'8 V0 c# e1 Y: o9 ]
      je     WDR
9 z: s) Z, Y6 ?1 i$ PRBT:
' [; E7 t1 q* w0 n8 e; F      call   PSP        
& B: p8 f) s/ ]) i# y5 V% i      call   crlf           5 w$ G( S- z4 x7 I( U/ _; \) h
      mov    esi,ebx
# l- e7 s$ {+ q9 M& U( L% B      mov    eax,fs:[esi]. d- i; _% `& O  u3 y
      out    80h,eax
0 K& ~: `" T# ^      mov    ebx,eax. m0 T* l9 `8 C7 u) s
      call   _8bits
# Z) E  |7 W" M: q; d      jmp    Exit
" b  J& e+ O! uRWR:
; T6 I* r* M. l. ]      call   PSP        
  t' u# `" ]% Q9 T" A. k  Q: D      call   crlf           
0 n; d: X. }/ j1 K: R      mov    esi,ebx( d8 v* e4 a6 T7 d8 b4 S& H  k" Q
      mov    eax,fs:[esi]7 x: e% s6 Q9 z
      out    80h,eax
- t$ z/ _! {" d, c8 f      mov    ebx,eax
: c+ r; ]4 L, h2 [      call   _16bits/ Y" c( g% c) e4 l8 V8 r
      jmp    Exit8 G( R5 G( D2 Q
RDR:
% q! ?2 H4 V& B! E7 N+ z0 K! g) h( d      call   DPSP        2 g: P0 v4 ^- j; w0 C2 W) ^
      call   crlf           
+ f! F4 i5 n+ \9 Q/ y      mov    esi,ebx
4 i' A! k! R$ o! I2 P      mov    eax,fs:[esi]( s( j$ H( h  s
      out    80h,eax2 s) \3 {# d  t  Q! k
      mov    ebx,eax
" M/ @4 \6 h; H' N      call   _32bits
$ R, }& G* B. x( g  r      jmp    Exit+ b8 x! U) r5 y
;------------------------------------------------------------------------------------------------% Y0 d+ t4 g$ U8 b8 a* |+ _6 s7 h
WBT:
' h4 T7 X! x0 d1 @      jmp    Exit
7 {; [2 w( p2 w5 lWWR:
2 b8 W! H5 ?1 U) H# |! S; a      jmp    Exit
* o0 s, P) z3 c+ j. {  PWDR:
( v5 H& B5 {3 S3 z$ ~1 p      call   DPSP
$ l* o0 n9 t) |0 ~. {      mov    Maddress,ebx      
3 j! P6 o! i; ~" r/ E4 `/ f      call   crlf
3 I8 r3 B! |" o( Q      call   WDPSP
+ H0 P; r6 z' Y! x  K( Z      mov    eax,ebx: ]1 w: g+ s7 u
      mov    esi,Maddress          + v7 I$ ]2 s  S4 v8 m6 U
      mov    fs:[esi],eax  k# b; s! Y) b6 y6 U& J' S) k1 i7 z
      out    80h,eax7 g4 P- ^& ~7 t1 n5 y4 h& d
      jmp    Exit
8 f+ y" D: a! v2 h" [& f$ o5 g;------------------------------------------------------------------------------------------------      
! z' p' k% K6 m$ aExit:
6 E0 i% t: V3 l# J0 y9 Q5 `' k      call   real_mode     + ?" u7 o( q9 O: ~. m
      pop    gs4 n. E5 [9 F5 o6 X7 ?8 B
      pop    fs& y2 W; C8 h" L  x, W' |3 A
      pop    es
8 l9 C) {3 \, B1 ?' |* |      pop    ds       ( O# Q4 j/ \% }* X
      .exit
  q/ _- W3 |; v3 ]: A;------------------------------------------------------------------------------------------------
  y/ P& w: F+ q& jbig_real_mode proc near+ |, u6 U) d3 V
      in     al, 92h3 \( ]; {9 r! m
      or     al, 002: x( W5 x( u# G% }
      out    092h, al  T$ B4 o  z6 i& z6 q/ w; m
      out    0edh, al1 U- a1 p# `3 `: R' ~
      cli# s8 A1 w; D8 c7 U6 ]
      mov    eax,DSEG9 |0 M9 Z) ^# r8 r: _9 E
      shl    eax, 4
3 I' ~  Q: n+ Y6 Q; j      xor    ebx, ebx
+ d! q% x& V& ~5 R      mov    ebx, offset GDT_def* y3 o, ?: x9 P8 Q+ a1 R# ~
      add    eax, ebx; g3 r# @. r6 l& L( F1 i  ]
      mov    dword ptr GDT_Addr.Base, eax
* o4 ~  Z0 j, F! b      lgdt   fword ptr GDT_Addr
1 e, ~2 u2 b( M, i+ s      mov    bx, 8
+ Y. r: B; `' ?0 {  a0 ^% n      mov    eax, cr0
7 ?. w( j  n. Q      or     al, 1
9 _& q; f! J- h6 f' X9 B      mov    cr0, eax
4 O7 v$ q* N8 d6 o( J! p      jmp    PMod; h  v! `3 |1 u$ O3 Z: N, Z* `5 x
PMod:4 p* F* N1 _% A4 _( z9 J; O" [
      mov    fs, bx
( ]2 v- f5 l& ^      mov    gs, bx
: ~$ O7 i6 G: h* Y3 r      mov    eax,cr0
$ G  e3 x9 m( V2 Q4 h/ B0 ^      and    al, 0FEh
5 X- G3 B2 v+ c      mov    cr0, eax
* D" O7 c0 C* u+ j% e  p# E      jmp    RMod+ z% A8 `+ ^0 m+ h! d& z& x
RMod:* z2 J6 k1 h0 G% a- F
      xor    ax, ax# a' _6 W# ^0 t2 ~9 Z3 s
      mov    fs, ax
  b& R5 n& x' a' k      mov    gs, ax     % \7 U& P+ K- s. j/ H
      sti     * _+ A0 k1 ^0 g4 }+ B2 ?
      ret$ W5 m( t6 g  L) F; G: i
big_real_mode ENDP% K( S  G" g$ ?# D
;------------------------------------------------------------------------------------------------! a) [2 k/ C, v8 j+ ]% b
real_mode proc near
5 l6 F7 D: V1 w; x% D      in     al, 92h: ]; Q* N8 }0 \: n* ?! T8 W# s6 X
      and    al, 02) ?' e* ^% M, X1 ^$ Y$ w+ z
      out    92h, al   
( T) P% b; l! o+ X6 X      ret5 J% A! e4 b8 }/ F6 d" A/ D
real_mode ENDP
% U0 J& u- \5 v; B  O! P;------------------------------------------------------------------------------------------------
, C' m; K: P, G  _7 eGet_Commandtail PROC near
( }8 z0 y1 X8 R7 Y0 }0 ~- ]) w% v      mov    ah,62h # j5 e/ E' h! u6 _2 D" z7 `. r7 n
      int    21h! T4 \/ J# T2 I' ]
      mov    es,bx6 F' `9 H. I/ k  Z
      ret
& G5 c& O! ^; E7 I2 iGet_Commandtail ENDP   
+ }! ~2 F3 C, {& V' u;------------------------------------------------------------------------------------------------
  |7 k  p  O$ ?7 I, d; i1 |PSP proc near# q3 d/ _# C0 m' ^( A; Y* P
      xor    ebx,ebx! l0 O8 k. c1 y$ l5 P. I( d3 i
      mov    si,89h3 s+ M  N1 X% w) j" n0 P# M$ a
      mov    al,es:[si]
9 b: d; @% u2 S6 K      call   Change. g1 G) [' r! p+ J$ @7 X& ]! s/ V
      mov    cl,4  n# m' N4 d4 \3 x, _9 b3 \
      shl    ebx,cl
  r" w# Q) b) z      add    ebx,eax
0 ~* U5 q# u: Z! p      mov    al,es:[si+1]. k7 [0 B3 f: x
      call   Change9 J0 u- A$ C- D8 B8 r: U
      mov    cl,45 X7 G3 A, }2 u; U
      shl    ebx,cl2 ]1 }- A9 }+ r5 u5 ?/ s8 P( J2 m
      add    ebx,eax
/ X* C. ?2 y: {0 D# o      mov    al,es:[si+2]+ R1 D/ t4 u# S$ }
      call   Change0 ?* q% N: U$ M" W3 l- P( v
      mov    cl,4
7 O- c- u: R: Y, ~      shl    ebx,cl
7 t( B8 L; U) b5 X+ q      add    ebx,eax
' L+ Y* v0 g6 D7 ?- H      mov    al,es:[si+3]
# \4 C% z: j, F& O; K# f      call   Change  {6 G9 x1 ]! s- l
      mov    cl,4
: T  ]( ^% p! f4 t; Y; C7 r' H2 \. p% W      shl    ebx,cl4 ~, M" \7 b# y' ]# _
      add    ebx,eax- y1 Y2 v3 `" ]: h" v: _8 y, J0 b
      mov    al,es:[si+4]
! i1 f. A) f6 t7 D      call   Change
) t; c! m& h# Y! q# z5 ^      mov    cl,4; D) ]$ G! r& b( g/ l8 G
      shl    ebx,cl$ c4 K- _% A# ~
      add    ebx,eax
9 X4 j! Q& H9 n9 H8 g; F' Q1 I) W      mov    al,es:[si+5]
1 f. r- F3 S, w# ?) K) v      call   Change
" t" B  o, j& Z, G      mov    cl,4- a5 [6 z. V; F% `: ?4 q: Y: m
      shl    ebx,cl
, r# [6 W& S! [) I2 Z8 h      add    ebx,eax8 @1 P9 q7 ], s& q
      mov    al,es:[si+6]/ K( ?+ H' L2 Q
      call   Change
2 R  g& m) @7 s0 ?      mov    cl,4
: h% t) A% I4 Z7 }8 |      shl    ebx,cl! g/ |5 J& B# z; a" n5 E$ ^
      add    ebx,eax8 J5 Y4 l2 m; r2 J/ h1 f  @
      mov    al,es:[si+7]
$ L/ z) E  v" u. q* t& w2 {1 \      call   Change
- q4 ~3 _! J0 s; H$ r( Z      mov    cl,4
1 Z* o* H7 M( ?! r; x& M$ _6 r$ m      shl    ebx,cl: G) f4 d$ s+ G. u1 A6 U: I
      add    ebx,eax
8 ~% I- Y2 l5 E, o- @      ret
) M2 l0 ~" S/ J. cPSP endp* M' C4 U! v1 i5 z8 X) E" H
;================================================================================================+ k: L5 F1 ?+ N1 u. k, r
DPSP proc near& [1 \' @' U1 e8 K: Z% E
      xor    ebx,ebx: z' p1 K, ]5 ~; v* C
      mov    si,8ah
) E2 P4 m# R5 w      mov    al,es:[si]
! [5 n; f3 g/ Y1 y2 [. w% a      call   Change/ |" ?' a1 B  J- v& _+ p/ `7 a
      mov    cl,4" R% m/ _; e0 @8 F* @9 H0 t; e
      shl    ebx,cl
+ n5 Z8 L, w8 n  _; F' F      add    ebx,eax2 f: F' s) U, p, i2 t' C
      mov    al,es:[si+1]) W. ~) n' r# }
      call   Change
/ I8 v, z; v0 T4 @      mov    cl,4( A  i/ R/ s2 ]: t2 w
      shl    ebx,cl! a7 d; n* |, S
      add    ebx,eax
% o+ c# H: s2 P  F0 y, c% O      mov    al,es:[si+2]
! r: z5 V/ y3 z      call   Change
* v4 z4 a) E) F; x      mov    cl,49 H9 r/ Q7 w, x
      shl    ebx,cl
& ]' Y/ r6 Y  F) x3 \: b      add    ebx,eax/ p2 D+ |3 R3 P7 f0 c4 E
      mov    al,es:[si+3]
( S% A. M& ~" P! D* _* m9 K4 t      call   Change
" M4 x. }2 r$ f, {      mov    cl,4
) z. E+ N( q4 k' l      shl    ebx,cl
/ V! n* V/ W; Y. s5 f$ Y# L      add    ebx,eax% F- S2 |" R# D1 _: _$ c6 i3 h
      mov    al,es:[si+4]
8 \$ n; G* j, c5 U      call   Change' M* l6 I% \5 j+ f6 e
      mov    cl,4
$ t; C8 t: y5 t* G" Q  c# a7 T      shl    ebx,cl4 B" q1 y' |! u% U
      add    ebx,eax2 R. }5 k; ~: g
      mov    al,es:[si+5]
% d. E+ y! t! P3 s. V8 a      call   Change# ^6 j8 b' b# B1 v" N& r$ d. ]; [
      mov    cl,4
" ~* {, ?' A$ K+ J1 u: r' _      shl    ebx,cl& ?; H. w5 j) b7 |
      add    ebx,eax0 C( \$ ]4 r7 d
      mov    al,es:[si+6]
5 w. G% G% H1 y1 C( ?+ d      call   Change
3 @3 k" I* a) B$ G  M% h! ^      mov    cl,4; x0 I. Q$ w) r& y/ P: D
      shl    ebx,cl6 |, c( l" g& m- H& f8 u
      add    ebx,eax' Y* k& b" C% d. }2 T
      mov    al,es:[si+7]% d- I9 X5 v( m8 N9 j; {
      call   Change
6 u! ]( T: o2 k2 o  n% |      mov    cl,4
" E6 p; m1 S' o+ ?# K- [/ K      shl    ebx,cl. x& I6 q) ?/ a5 k" X2 a% G  M
      add    ebx,eax) e& |8 h# }5 I( v1 f
      ret' p* x) X  q2 x6 K
DPSP endp
, S: c+ g) b- F; V7 p. _: |;================================================================================================* f1 Q5 m  B" ^, |$ ?
WDPSP proc near
  t2 `) O: y; Z4 y& ~      xor    eax,eax, G5 }/ H! x- x5 O
      xor    ebx,ebx" ^  ~( h; B9 S
      mov    si,93h
# f( S! I5 S% U* V3 W& F# X& ?      mov    al,es:[si]4 e, ?. W" m- U' d% c! X2 U
      call   Change8 x# f8 c1 ?: ~: m
      mov    cl,4
# D3 s- X) M6 d# [4 p7 O# u/ w      shl    ebx,cl
5 s3 s9 S7 D8 t$ T8 F/ O0 n0 I3 D      add    ebx,eax7 M* n% p+ M. a# M
      mov    al,es:[si+1]
9 v7 D8 J+ Q8 |. d& u- b8 [      call   Change
: ?) |0 e1 ?( s  K      mov    cl,4
0 w3 w/ {- }( u0 _/ h      shl    ebx,cl
5 }5 E5 i4 D9 |; Y      add    ebx,eax' A" [' a* o# X/ {$ E. P8 E) l& |
      mov    al,es:[si+2]
, j& x+ ^% r/ A0 T' C      call   Change
- G+ q$ d. @, ?# o/ E      mov    cl,4' t; W" u( R, |5 \2 k4 L
      shl    ebx,cl
9 B7 \7 }; L. T7 e2 T/ L      add    ebx,eax
, Q  c4 ~) u+ k- {2 Y. i3 P$ a      mov    al,es:[si+3]. w+ B3 g8 M: M! V$ U9 V5 N
      call   Change& `, N8 Q1 C. j3 X) B
      mov    cl,4) d; K- `1 f! q6 Z' ?
      shl    ebx,cl
( [, ]- I, d; }1 i/ w      add    ebx,eax4 A2 M- K* ^/ o7 \) M
      mov    al,es:[si+4]
4 a, c3 J0 q+ j( t      call   Change
/ g. K7 o& c8 o' Q; r/ f# e      mov    cl,4
8 ]$ D- K7 S1 |/ N" p7 V      shl    ebx,cl
" y6 ^" f7 j1 S0 V- H, P: I( X8 ]9 U      add    ebx,eax
) u& K( |. i! `  l1 B) X      mov    al,es:[si+5], u- b: A4 d8 S( b# [0 N3 b
      call   Change
( k6 i! B* n, X% p& E0 ]  g7 L      mov    cl,4
$ ?! N  R3 @' d3 I1 o1 B0 W6 h      shl    ebx,cl7 W! @* R; M! q3 p  q2 g
      add    ebx,eax% |0 k" {, k" R) I
      mov    al,es:[si+6]: N- ]1 I4 }5 c' Q9 l! O) U
      call   Change
1 I/ l  @4 o( I0 d) p. ]      mov    cl,4
7 U" |) q3 e+ x* ]1 m      shl    ebx,cl
2 J9 ]% d7 f, u      add    ebx,eax
: J' U- {4 V$ k! x      mov    al,es:[si+7]
' ]4 s* C! s# s% N, E7 _8 W      call   Change
) h7 @3 b9 Q! K( o3 A$ P/ G      mov    cl,4% X3 O; R; x* J5 O7 b
      shl    ebx,cl8 d& v/ k; A, T( |
      add    ebx,eax
; r8 }3 x! p% Q. q1 j      ret
  f, ?( P3 s5 s# EWDPSP endp
1 u. g8 T" Q, _6 m;================================================================================================
1 u! N8 h9 s' F: c3 b0 l, {Change proc near
- I' A8 n9 t3 U5 xA:   
7 ?1 p1 E5 j: P2 z0 N      movzx  eax,al5 R5 W" O, P5 ^- V  G2 G  i- C" y( n8 y
      mov    edx,eax! I- I' s3 `4 `& \" |
      cmp    eax,'0'            + y  H- r9 F$ n) r  z0 T
      jb     A
' H* `: V/ y8 u$ y4 A1 K      cmp    eax,'9'            6 J: n6 z7 V5 T0 u% e( z
      ja     B
2 O; l6 t7 _5 p; C( m; E0 Z0 W) N      sub    eax,'0'
+ i8 v4 X7 x1 R      jmp    short E" C- h5 }% }( \! B, B9 w# l
B:
' D9 k& }$ y8 r3 Q  o& W      and    eax,0dfh           
. ~" L+ F0 T/ x* m" h- h      mov    edx,eax* J% N" j) x7 m' n. {. D
      sub    eax,37h            % F5 n- |( B* C# ?% h' j- Y
      cmp    eax,0ah
) i9 i/ d: w9 `1 T" g6 I1 J9 K' L" s      jb     A                  
0 h5 p* q% i* g% ]" P) N      cmp    eax,0fh) r7 A! W) r8 [( x* r- D2 A
      ja     A                  
' t+ E2 M/ W6 f  uE:8 a. ]8 D' P/ h. N" d% X
      push   eax       4 {& N3 O! H4 g' V; m5 Z
      call   PRT               
; D: H# P" q8 C- t; z5 C+ ~0 _      pop    eax
7 U3 l5 S7 c; K5 g! fCExit:
4 n' a* Z+ @' @      ret
& @# g) I" p5 h+ ]" u. c6 WChange endp6 w- u; [, ]" J% i7 ^3 P( |, p
;------------------------------------------------------------------------------------------------
# x% x! L$ p+ z; S" i4 u5 cPRT proc near
0 B" G& c8 A! ^# y% Y" B+ _      mov    ah,02h
; o; {4 f8 X- `" A# u2 ?9 z      int    21h
$ \8 M! _$ C/ |      ret: Y4 I  n# X& A) i* j& a) J
PRT endp
9 m' q/ @0 G8 v$ |4 f$ N" z;------------------------------------------------------------------------------------------------2 s8 @$ u5 u" ^8 k( i; ]
crlf proc near
) I# H. |" t: X      mov    ah,02h: K* L5 e  q4 O& ?
      mov    dl,0dh
7 O6 t. A4 d3 h+ F      int    21h
# u. f; T5 Z% n! X7 z5 g8 a8 E+ M+ ^8 e      mov    ah,02h; I% a" J  ~4 z- u1 f
      mov    dl,0ah
5 l5 y2 f+ k* X# G      int    21h
$ o" S0 ]6 z4 Q# b  E      ret7 J* M6 c% w5 J0 v  }$ q  _  _$ r
crlf endp
3 C" H3 z3 {3 T! Y, G8 k;------------------------------------------------------------------------------------------------8 _1 d7 g1 S. |6 d2 ~0 `  a
_32bits proc near
3 ?/ w+ l7 `3 u+ J1 u      pushad
5 A& A- h& z' |; N# I2 ~2 r- |      mov    cl,4
, i7 P9 W) \8 ^, v/ E      rol    ebx,cl
6 O. z# Y6 v, l1 W& Q9 M1 K/ Z      call   print_4_bits
( ?7 R- x4 d; w9 s      rol    ebx,cl
, i, I  |5 r+ e4 r. Y      call   print_4_bits; ?0 u! A9 j2 n+ W6 y* Q1 _. ?" c
      rol    ebx,cl( z7 Q+ \& D. P& y  b$ U7 F
      call   print_4_bits
/ P9 D0 _8 f/ h( X! [; W! l      rol    ebx,cl; A4 F* v' P% K0 ~; |
      call   print_4_bits
  A) O* y" K+ a: i4 C* C4 l      rol    ebx,cl
9 F5 H* Z: c6 {$ p      call   print_4_bits. P  E8 L8 N! G( W1 E& L: X% ?
      rol    ebx,cl4 q* \6 a. t: j. f% S9 Z" f9 L
      call   print_4_bits' K4 w) ^! ]7 M0 A# |$ ~. c
      rol    ebx,cl
9 X( y2 u, _. H4 ^      call   print_4_bits: ]2 Z5 R* n6 C. |
      rol    ebx,cl& i/ @. ^; c# R& G: w, R1 A( H
      call   print_4_bits
% ]" L1 m2 G6 I% s      rol    ebx,cl- s* z' ^* `0 E- E$ _$ o
      popad
, r0 [- D- \" n9 R: V      ret  |& p7 Y5 L+ u. k+ _
_32bits endp
! w5 a- m5 _6 `" D  O  ~;------------------------------------------------------------------------------------------------/ _# O' V' U5 q  K0 A: Q
_16bits proc near7 \! q, v2 Q( _2 Q* m; y/ F
      pusha        
7 T5 A! h( B' j1 |2 r5 ~      rol    bx,cl
/ H! {4 y3 W, H" }+ }! k. d      call   print_4_bits0 F* u# G  q: q3 U2 Q0 B: E/ ]
      rol    bx,cl
% M; ?9 u( r. f9 J  d      call   print_4_bits
. b5 }0 C' c5 ^6 Y      rol    bx,cl
9 w  H8 \% i6 V8 o      call   print_4_bits  \( E6 ]& [$ n# q
      rol    bx,cl, Y; q% {* O" G" q1 j5 @
      call   print_4_bits
9 I% ?- i# i; R- n* X/ B* \1 m      popa
+ a8 j; \9 Z0 N5 D      ret
. H  Y# c% m" X. P_16bits endp
6 q% I5 ?& U9 n5 _) P' x;------------------------------------------------------------------------------------------------3 Q; n8 W+ f' j, j- b. B% S
_8bits proc near$ x* x& n6 a! M+ o6 E
      pusha        3 }  L; G3 {! z/ m* J7 Z! k. d5 L
      rol    bx,cl
: \- M# _2 i$ w; k3 r) X! G' \      call   print_4_bits
  x6 h% _. X8 H- J      rol    bx,cl
! }6 _' }, d: a      call   print_4_bits3 R' C& m0 [/ c( I
      popa
+ W, M! {1 }  h& E. D1 E. T6 U% [      ret
) ~, Q8 i& \% z: D6 V3 a5 w) \) @0 U_8bits endp+ X  A# Y+ a: b1 h$ t+ E- u
print_4_bits proc near
# b- R: ?/ P1 H! l! j      mov    dx,bx
5 W1 C" b% [/ \6 I9 [0 g/ f      and    dl,0fh
6 ^6 y, z3 f7 V# Y8 }( P( z      add    dl,30h: Q- E, U2 D; H$ ?6 y; l0 e
      cmp    dl,3ah
9 L; J% @2 l, h6 v      jb     print' U0 T2 g' F; R" u4 w9 W
      add    dl,7
$ m+ o7 ]( k  u  Q$ I/ hprint:  
2 F8 v6 P$ C* u8 L" Y1 w      mov    ah,2
/ e% M5 A" l9 L      int    21h
. `" w/ `- W" x4 C. r  Z' R      ret
" {7 v8 n& R' t  n$ R+ q  a( |print_4_bits endp    1 x) _: ?" ^1 r8 U( X5 Z4 V9 u
CSEG ends2 S; v6 A# @) ]+ ~' Q
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-6-4 21:48 , Processed in 0.202179 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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