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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)
8 x7 a' h+ f" ]6 X6 \* H2 a/ W0 O8 }; _6 ^) H
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
# j4 d' V( F  g! n8 x2 {; E; D5 d. D5 R
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  ' X* Y- g4 K. ?$ E4 d

# H; ?, `& m4 K; l7 c3 a6 a.model small
% e7 p" b% _# `, d+ q.386p4 p9 e% }1 J: ?" i/ v( p( L2 Q
DSEG SEGMENT USE16'data'
7 _, s' _. j) ~
  T' L6 r8 M: m. I5 GDESC STRUC6 X$ [+ Q' l" [
     LimitL DW 0 , r8 p8 X( Z3 w8 u. d
     BaseL DW 0 0 h) v+ n$ c7 @8 ^% Q3 C4 Q$ O. j
     BaseM DB 0
# r6 d# D0 `( U: o7 b. S" f. q- \     Attributes DB 0 ; u1 \0 c$ I1 a0 d2 @- F! j2 Q! r
     LimitH DB 0 3 P  j* x5 p5 s8 N& Y! a( A
     BaseH DB 0
, J' L0 J+ P' @7 zDESC ENDS7 y4 v, F# l( X- m# T" q3 i0 f& u
9 z7 ^  m2 m8 W
PDesc STRUC
3 t1 j. v0 |. n     Limit DW 0
( d5 E: R& M7 H0 B4 s7 k  k% ~* f5 L' P     Base DD 0 0 T. V) @8 ~3 z, m" t
PDesc ENDS
) t: `9 m, n, R' F! @; Z. I
% T( `9 Z) k2 K' {, bGDT_def Label Fword
1 @% [& U+ K0 W1 QNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
; T; S) |: o8 T2 M0 a& R1 GData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
$ f  Q0 C/ H& a! v7 Q* s# D2 MGDT_Addr PDesc <$-GDT_def-1, >* G. j% y5 J/ x3 d
8 I* Q4 c& a$ s- f# u8 o( k$ D
Maddress Dword 0
4 t- g$ a7 W# E7 g" w, _; n* r, d2 P6 F  F4 L+ K  n0 N
DSEG ENDS 4 j" L9 x# K0 b) C4 u# B' K$ W
ASSUME CS:CSEG,DS:DSEG3 H- C4 c9 _! H$ P
3 [; J7 o% j5 b& f7 Y; x* n( z
CSEG SEGMENT USE16'code'
; D% ]/ K( N' Y$ L; S      push   ds# y& Y+ F3 x6 l% Q% c7 O- ?
      push   es1 a! ]; _1 `/ \8 p# `6 Y
      push   fs
4 Q. @! Z' }* Q; D) o  K( m      push   gs; }- Q% ]/ k4 s# g1 T4 C, b
      call   big_real_mode     
. ?5 I1 T1 v8 C' M+ X( v      call   Get_Commandtail
5 t/ Z) R& H3 `1 [+ j  y      xor    ebx,ebx/ I" h7 v! M' \6 H0 b& A
      mov    si,82h
. R, x7 {% A& r8 m& e8 w9 I      mov    al,es:[si]6 w% S- o% |; F
      cmp    al,'r'  E/ r2 K+ S2 M1 ~# f. s
      je     R
0 `( C) z, t  B1 A$ {2 S7 p$ f) z      cmp    al,'R'
+ _7 n, ^* S' j; W( \      je     R1 Y4 I! }' m8 X1 i
      cmp    al,'w'
2 c# `3 y5 A7 l% j1 w      je     W9 ^% m- ^3 I# ?
      cmp    al,'W'# q: U$ G9 I' g: x
      je     W         
" Q) H& i& e8 PR:
# s& d- F  T$ d8 Q      mov    si,84h
; J% i, ^* F8 u; q, \% \' [) N% A      mov    al,es:[si]  d+ V! d2 X0 m7 g) u- ^/ {0 a9 J
      cmp    al,'b'! X$ q, \3 v' R" E9 ]6 u
      je     RBT2 K5 \) X- e: Y- Q/ l
      cmp    al,'B'
, Z4 g9 b1 c  w6 D' o% [* ]" N      je     RBT
) }1 S9 r- G. m# Z4 i      cmp    al,'w'
3 Y" U& U) v5 ^  h      je     RWR2 C0 d8 V( G! s) \  M4 W; p
      cmp    al,'W'
/ p7 L* w0 J7 v+ Z: s      je     RWR
' g$ @$ D- p( S7 K5 ]      cmp    al,'d'
! j$ Z9 t( z" L) ?0 j: w      je     RDR% M" D" m$ n! a$ b! d* h
      cmp    al,'D'
+ {8 A: {* H0 O1 R" I      je     RDR            
( e$ t/ h: h/ b  d& }4 aW:      * K$ ]9 j' z. b$ b% V; l% a
      mov    si,84h* J) F6 R" @9 a3 m$ R
      mov    al,es:[si]
/ }* G7 Q4 c9 E. C      cmp    al,'b'2 {' o6 u! N6 K- |" |
      je     WBT2 [0 c' j6 c$ L  P
      cmp    al,'B'1 X$ `  a/ e. _% I" O! T. U& s
      je     WBT
$ h* Q+ D6 }& Z  P. e/ U* e% ^      cmp    al,'w'( y0 S  |) i+ p7 j4 h
      je     WWR9 X# l0 q% {3 H* k. s0 t' R- g6 a4 K! A
      cmp    al,'W'. @! M6 s: g, x
      je     WWR
7 v3 N, j* Z" u! a' L6 c/ |      cmp    al,'d'
, @6 F5 \5 ], ~7 E6 `7 S      je     WDR
+ X, C* l# q1 B      cmp    al,'D'( z- F- p$ r' F
      je     WDR
4 U  |$ O) n$ R! r' j' H9 S( J  ]RBT:
/ }! @! X0 Z1 C      call   PSP        + v* @5 H$ Z, X  a3 ]0 z0 I% A
      call   crlf           ' |$ o. f- [8 J: b4 q6 t" J  W
      mov    esi,ebx3 F: o, o3 u/ X4 A$ T" b4 R
      mov    eax,fs:[esi]( _- [5 x: s' f6 M1 ^! r
      out    80h,eax8 k4 |. }! N$ I! ^& N
      mov    ebx,eax9 W6 W6 I2 }, k  Q. C0 P. \# K' u8 E
      call   _8bits
5 k9 p" P# A& X      jmp    Exit
8 o: O2 z5 P! P9 A+ }1 O3 tRWR:% {$ V6 l  X% x+ B
      call   PSP        % o, W2 t0 q3 M6 M/ f5 x
      call   crlf           5 w. M! T( I* h
      mov    esi,ebx' l5 _+ i' x9 h8 g+ U! @
      mov    eax,fs:[esi]' c) s3 b, a% V( o1 A' U- w5 p# g% ]
      out    80h,eax
, c: L0 h6 |! \4 l      mov    ebx,eax
6 i# @% ]6 b+ R      call   _16bits, b% |5 n# t  q6 ~. l! _
      jmp    Exit. N) H/ `. i* s: H+ h4 _1 E
RDR:* G4 x8 a6 c5 s1 {1 D6 n
      call   DPSP        
% n6 l  q7 `  x( }      call   crlf           
2 d0 y- T9 C. l7 m' l. G      mov    esi,ebx
& o% m1 {. ]8 R% D      mov    eax,fs:[esi]
+ \! c: @6 S4 J; x. S# ~0 H      out    80h,eax
" h9 r$ l7 P* e8 y0 Z9 C; l5 x      mov    ebx,eax  @7 N- l6 a! f/ b+ `: V% C
      call   _32bits
$ d; h+ V. @% N" m9 P      jmp    Exit) I& |; t' h& [$ Q" N. q, ~# i( w
;------------------------------------------------------------------------------------------------8 z+ D! b, x9 J# K  {1 r: l
WBT:
. }* J! v( d. J3 Y2 X      jmp    Exit; O# ~) r9 r9 V+ E6 a4 i
WWR:
7 h; z& C$ l: C3 q' f5 y      jmp    Exit1 H4 K& q6 c/ j9 Z6 X% e2 i
WDR:
; e+ a  M& |  v; U+ l5 i+ p      call   DPSP
0 A4 k3 v3 d; ~5 f" D8 e' p      mov    Maddress,ebx      ! e2 [* Y. W$ R7 C3 m
      call   crlf, {/ V+ t) t: |+ w7 X) J
      call   WDPSP' ], a. H$ h  ]# [' a
      mov    eax,ebx% Q9 B( S, E" i2 F
      mov    esi,Maddress         
- |, J9 A# w) l" J! [  _      mov    fs:[esi],eax
7 Z& i6 I8 e/ ~      out    80h,eax# K) C% v3 K+ V5 \
      jmp    Exit/ X$ A- \3 Y4 `2 h5 \" W
;------------------------------------------------------------------------------------------------       # a' Y% U* N0 O" q" D. ]* E$ R
Exit:
% P) k$ z  c  b" Q& D% m      call   real_mode     
  y4 }4 ^. @# A      pop    gs& Q2 \' v/ N$ P2 z8 _+ f
      pop    fs7 b, B  {) x; q# w* H
      pop    es
) r. U2 O1 |4 b/ a" O3 d1 C* z; F      pop    ds      
3 p% \" O( M9 D: j, Z      .exit  g6 ]6 l0 _8 Z3 Y
;------------------------------------------------------------------------------------------------% j) j, ~; M) c2 H# O
big_real_mode proc near  e9 t5 h  I; {7 d% \' r
      in     al, 92h
; R5 [/ x$ e# `      or     al, 002" x" u. v; x" ?; s" @; D
      out    092h, al. `, \# w2 k" G' [, r5 p- J2 L
      out    0edh, al) Z1 B+ j" i! F0 w. X4 C
      cli
% J' h  e$ }( t  I      mov    eax,DSEG
1 l; Z- }9 [  v      shl    eax, 48 U9 p) M7 _- Z' s: H
      xor    ebx, ebx5 |( j+ v6 Q, b* U$ [/ P
      mov    ebx, offset GDT_def2 s5 q  g, h4 N
      add    eax, ebx
* {  N9 [4 U2 ~. V      mov    dword ptr GDT_Addr.Base, eax2 X, [3 g+ e2 d2 m& m
      lgdt   fword ptr GDT_Addr  p" Z+ A! I2 D: L3 E: k& m; Q3 V+ d1 K
      mov    bx, 8
7 g3 B9 F1 x) n8 k6 g! K7 z8 j8 u      mov    eax, cr0! j1 P; j, o, d. N
      or     al, 1
) Q5 f& \8 H7 E: A7 j/ u- [. A- X      mov    cr0, eax
4 `9 K" Y- G- O7 ?- u$ @      jmp    PMod) a6 n1 `% W+ a
PMod:
0 h" p. n/ P( C      mov    fs, bx5 G, V( ^/ L) D9 G6 c7 n% a
      mov    gs, bx
* Y8 N$ J, [3 {0 f      mov    eax,cr0
* S$ s) P9 N- q$ E      and    al, 0FEh4 O  I. x7 o) V& ^
      mov    cr0, eax
* C0 Z! c& P- p  v4 ]5 x9 P7 H      jmp    RMod
+ N8 a9 L# L7 Y& _$ YRMod:% t( _5 N; q/ N+ @/ w: L# A( q
      xor    ax, ax
$ u" G% \( j; ~1 C      mov    fs, ax
, C. h( q+ E' K7 N' y      mov    gs, ax     & F* C# c# x: Q  O- e  [* v
      sti     
' ~! g. _0 c8 ^0 Y6 M      ret  J$ H9 j3 G4 _; N2 @+ K0 Y
big_real_mode ENDP6 x, |3 K. o- E3 y) X
;------------------------------------------------------------------------------------------------" v" r+ T% q7 \; g3 h! G' ^4 h
real_mode proc near
5 r+ s# g' q3 C1 d+ @+ c      in     al, 92h' [: R# x4 {  p
      and    al, 02
& O" u: Z5 N: N  ~) F! e, I* F' e+ o      out    92h, al   
, s; }( @2 R0 |7 Y      ret$ M; w2 ]# ?5 J1 u; T) s0 w
real_mode ENDP6 M& f; r# u6 o* {, \/ T
;------------------------------------------------------------------------------------------------
( |1 M/ t) H. p" I0 w# d$ ~Get_Commandtail PROC near9 W! m0 b5 z# ?' [7 ~5 E
      mov    ah,62h
8 X; ~! l) C: d: l; b      int    21h
# D+ T4 m5 o5 S# m* h+ X0 z: m% o  t# U      mov    es,bx7 i, v% T2 E& V* @/ `* @
      ret- B3 d2 W3 n0 N
Get_Commandtail ENDP   
# `! H; o6 Q3 |6 g, h/ i. J;------------------------------------------------------------------------------------------------3 y, c' n3 ^  B- A
PSP proc near
7 p7 n3 E; C4 r# @" y! x3 I      xor    ebx,ebx
! Q' u5 s' r  Q1 n9 V      mov    si,89h' J: u* @8 [" y, u
      mov    al,es:[si]6 b# y; ^. V6 h6 ?5 g# p' H
      call   Change  A. l. C" B" H: p/ E$ }
      mov    cl,46 s" {) N1 I0 F2 H/ o2 P2 D
      shl    ebx,cl
( j/ D+ l- h% F2 K      add    ebx,eax$ d6 m) j" {, b
      mov    al,es:[si+1]
5 J) z+ J& u' \) |4 T      call   Change8 A4 X' n6 [5 g5 Z* ~
      mov    cl,4! k, ^" R1 h8 _, N
      shl    ebx,cl5 Z* x6 m6 L; C9 t5 {+ E7 G4 i" S
      add    ebx,eax3 x6 K5 k6 q, g9 x" J" `
      mov    al,es:[si+2]
. j. C9 [/ w% L/ e4 u  m6 l      call   Change# ^& W  U1 w5 p0 ~' C- ]" m
      mov    cl,4& ~* ~( J3 {3 Z& [7 N2 N5 I* f
      shl    ebx,cl
6 n) _5 l& ]4 }      add    ebx,eax0 B# P) a; Q8 u' H
      mov    al,es:[si+3]
6 E" R, ?2 j) L7 f& P      call   Change& P- s# V0 M9 V# M( f
      mov    cl,47 o% P* P' d6 Q: y7 g9 W
      shl    ebx,cl
- C. }5 F. h7 z* @3 Y6 X      add    ebx,eax
( w4 K9 R9 h/ F# x! S      mov    al,es:[si+4]
# |8 [$ Z1 R# F8 z) |/ y1 w; z      call   Change
; G" R  J2 ^8 |) D8 R. l      mov    cl,4
) L5 @! X; ]% y/ o/ ~% @      shl    ebx,cl6 T1 }- S, ?' L# c9 u
      add    ebx,eax
' I; t! p# _: {+ ^      mov    al,es:[si+5]' a- F# l6 d/ Q' ^
      call   Change
: B! \$ J& h" @      mov    cl,4: v* g8 S1 W2 ~% Y. D* c5 b9 d
      shl    ebx,cl
! i. t" D* g  C8 H% {/ b9 X3 r  i      add    ebx,eax8 B$ z: y% P; Z
      mov    al,es:[si+6]2 _9 [$ c& w7 U! Z$ p
      call   Change
$ \! Q+ p3 G8 c' c0 ^/ y+ b      mov    cl,49 @- S$ D& D; k5 _9 Y  S
      shl    ebx,cl) s3 X9 g; J( x; p7 G9 h$ |/ Q
      add    ebx,eax
% J$ ~' N) L6 P( n' f# V      mov    al,es:[si+7]5 k5 ?7 n7 ]& A+ U* q' G
      call   Change
) `+ w% H# O. O8 \% E! X( [4 P+ [      mov    cl,4
: y' S" v: ?9 V: `1 D% i      shl    ebx,cl1 ~; z5 _: J) y
      add    ebx,eax3 Q% i! R5 p0 M+ C1 |" z7 h7 U
      ret3 M( Y  A4 u0 Y
PSP endp3 Y! x6 f# J) P
;================================================================================================
; Q+ P2 D* i4 q) X) x* ]. ^DPSP proc near7 r5 Z$ f# o  W5 k2 `; U4 H) t3 U
      xor    ebx,ebx
. s. ~1 [$ i) R+ l/ ?; x+ k      mov    si,8ah* P9 O# }/ J0 o) @! y
      mov    al,es:[si]) O8 J$ [, C1 D/ Y% O+ x) u" W
      call   Change
' }, m1 A$ E& Q' V. ?4 Z      mov    cl,4
. L+ }; c$ N' v$ W# ~; v0 b      shl    ebx,cl& Y. x9 J- C4 i! g
      add    ebx,eax2 D+ L, B6 W; t/ ^3 W8 j. [7 T$ Z" X
      mov    al,es:[si+1]
6 E  [+ o( x+ x5 U+ @/ L      call   Change
9 T2 Y* ]# ~. ]0 E* b* I9 T      mov    cl,4
. k. P2 @) X; u0 h- t      shl    ebx,cl- n- X% N4 L# G9 S  [$ k
      add    ebx,eax+ {+ ?2 }( a; L: b
      mov    al,es:[si+2]
; c. W4 f5 q" [+ q8 j4 p; X' Z      call   Change
% ~, Y4 V( `3 w- _, D6 x. v) I      mov    cl,4
9 e4 Y+ U7 `2 }      shl    ebx,cl3 }. _8 G" X1 |
      add    ebx,eax  n3 \9 E0 p0 f
      mov    al,es:[si+3]
* c1 @" y, }% j) T- T      call   Change- p: [9 A, [0 ~% {, x" J; g! m
      mov    cl,4
1 r. l! L  c! `) Q, ~  @1 A      shl    ebx,cl
2 \. ?" L! C* j3 i      add    ebx,eax
: Y- x! K9 j+ N9 k      mov    al,es:[si+4]4 m7 {: R8 }$ t6 @7 I
      call   Change
% X+ X  X% H; E) ^6 [      mov    cl,4
, n, p, H/ Q6 c" Z+ o      shl    ebx,cl9 Q& m4 ]$ C" a* ]
      add    ebx,eax
1 w: M4 W% Q. K: P# I1 W$ S      mov    al,es:[si+5]& l& V! K9 T2 G
      call   Change( M0 S* t- i! Q. i5 n
      mov    cl,4
$ B; F" T+ D$ I# i0 v6 G# B; N      shl    ebx,cl- t, {5 e) w% b" V, m  O
      add    ebx,eax- k2 h( R$ o5 l) W$ x: @2 L4 L
      mov    al,es:[si+6]/ I* B+ y1 ]2 f- ~7 t# e
      call   Change
! ?5 F$ B! G' U0 g, N& V      mov    cl,4" l8 x9 {5 j  g; e7 f9 A  S
      shl    ebx,cl, W* A: C3 p# f4 N- s
      add    ebx,eax2 X7 q; s/ X- T0 I7 T4 J# z
      mov    al,es:[si+7]; U* {& p/ I: `0 u* ^7 t
      call   Change
% L3 P+ _+ _  Y# a8 n* l      mov    cl,43 L, F, g8 ~9 J9 M. t
      shl    ebx,cl
2 H0 y4 O9 W3 _1 M      add    ebx,eax
( k4 m* i7 |8 e6 |7 `      ret' Z3 I2 P7 V  |. l7 Y2 f
DPSP endp
# D! O3 r) [9 o* Z9 y/ h4 N" v;================================================================================================
/ Y; ^# \9 R1 DWDPSP proc near9 }# w. ]- `: X- k4 k! y
      xor    eax,eax
2 V5 a0 \, ~& m$ H" i% D, X      xor    ebx,ebx
  d9 a! `' ~5 I; d. h      mov    si,93h6 t, \3 c" D% }+ u
      mov    al,es:[si]
$ y8 R6 m2 d- V8 p7 G+ e      call   Change: T; f" Z% H4 R1 K
      mov    cl,4
  e1 u4 U6 q1 A" s+ H! C      shl    ebx,cl
7 R8 k; ~2 {8 i' s      add    ebx,eax# p6 r- r- E/ v; m  T/ p+ {& J# q" L
      mov    al,es:[si+1]
  }9 B# [: V4 _      call   Change6 R. \; J9 ^# E  b/ C. ~/ a
      mov    cl,46 v# z0 O9 u2 m
      shl    ebx,cl! D& q( p3 J* c) J' ~
      add    ebx,eax
$ K' K1 ?2 P  ^5 L2 u2 G2 k" F$ b      mov    al,es:[si+2]# Y% C  a5 v* K" ?
      call   Change' u6 W( O) ~9 J1 A* b
      mov    cl,4
) c3 c; T# t  l* ]5 E( Q      shl    ebx,cl
2 ~4 J  \/ t8 W; D2 H, A1 a      add    ebx,eax
( E. {- F2 t4 k7 V& O' z/ l" t      mov    al,es:[si+3]
/ R' i# O  X9 a+ n; d7 l- p" F# i      call   Change
* s' N) N  p4 O$ O7 m! O' Y% q. j      mov    cl,4
+ i) h/ o3 L6 e2 f2 Q7 h9 W      shl    ebx,cl- c' [4 Z; ~8 a2 v8 P
      add    ebx,eax+ L1 X" j6 P2 O4 F! {, f8 b5 F
      mov    al,es:[si+4]
# Z+ k7 S) r1 ~      call   Change# Y- j+ u* ]- j2 Y) _. I
      mov    cl,4/ N) J1 l8 V5 a( s. Q
      shl    ebx,cl* O" u2 {2 }+ A, c1 w" t  G
      add    ebx,eax3 r4 Y7 y( ~1 C
      mov    al,es:[si+5]  K. o* u1 C! ?9 u
      call   Change
' [4 h" m7 _  v$ z2 S- m* x      mov    cl,4, z. X& P7 |/ J) v$ Y4 |6 _
      shl    ebx,cl+ J: D! c: I' T1 x2 r
      add    ebx,eax% }8 ^' {3 ^* M. s2 ^( f. G
      mov    al,es:[si+6]
, w  \3 C0 g3 T5 w% V      call   Change
; @0 E: I9 b2 r. J* s- `5 b; y- e      mov    cl,4
% c9 i9 j) L7 E1 ~  E+ E" [  e      shl    ebx,cl  E0 d# i; x/ V0 k- t8 x- R5 }- l
      add    ebx,eax
. I2 n4 D; k; m0 e- v+ O      mov    al,es:[si+7]6 V0 A  v: C$ t9 y8 q" B
      call   Change6 M& w7 |- X1 B5 {! v- {( }& b' e
      mov    cl,4
, P3 f; I8 b3 ?9 C: Z( C6 ]& t( `      shl    ebx,cl& B- K- I* W' J* U( d
      add    ebx,eax; p: N0 f/ R+ s1 e! ]
      ret: v- |  w* z* L: c
WDPSP endp' o1 c/ N3 f( D" }5 `7 x. H! y
;================================================================================================
( ]& p& p( v, n: L: WChange proc near
, C" J; j3 f4 e* f, n# BA:   
3 `% v* h4 s( `7 |  h      movzx  eax,al
0 ?  _& d: B) |& s  i, g7 q1 J      mov    edx,eax
6 m8 b' e) Q2 f" D' m      cmp    eax,'0'            
" q* s0 M& x- f; T8 i$ U  t3 ^+ |      jb     A9 M$ p$ z4 X6 ?$ Y5 I1 O/ G
      cmp    eax,'9'            
. K: X9 x& X( A0 G. o3 `: Y5 C( {" e      ja     B
' ?4 L' b& ?) r      sub    eax,'0'
3 ]1 W3 v3 X+ h5 R& Z      jmp    short E
/ z2 c# f5 @) Z. DB:
: h7 N8 v+ U2 _3 ~/ r; F& J: S      and    eax,0dfh           6 e" H( |' b0 M* W7 j, H1 E6 \
      mov    edx,eax( A3 X: |  b( D; W, I
      sub    eax,37h            
# |9 v) F% }" J9 P      cmp    eax,0ah7 K) Z& ^0 C! x- M7 {9 ~) _
      jb     A                  
. F" q; O3 k! _      cmp    eax,0fh1 m3 j8 t% J  B5 ~/ K
      ja     A                  
- p3 T6 s6 o; ~5 \2 _0 d+ gE:' s5 o0 y* ~1 n6 I7 ~
      push   eax      
' \. r1 F6 V' e      call   PRT                - g+ ~' Y# R& }
      pop    eax3 z7 D" ~) w2 Y# w: Y$ B4 h0 q
CExit:
- N( G: P4 z1 w0 i( q# |! ?. u      ret
8 J) b3 v. l, p$ C( ]1 r4 IChange endp0 g6 }8 ?- _2 z3 U1 ]
;------------------------------------------------------------------------------------------------
$ z2 J" R/ ]/ M. X3 dPRT proc near7 z) [0 v5 j8 o4 b
      mov    ah,02h
6 G2 ^- Z  J6 z6 q1 h! ^      int    21h
! n2 g/ n# }% N      ret
6 U: a: m* z9 r  y$ gPRT endp3 \' t- [9 P* Y+ c% L- r2 V
;------------------------------------------------------------------------------------------------
$ t! S0 m9 T9 p$ F$ }0 H5 Bcrlf proc near
; t- B, ^0 F2 |      mov    ah,02h1 U2 J# R: p6 k9 n
      mov    dl,0dh. f* r, {8 H6 |" X4 w# ]
      int    21h
) s+ B. S% d! g" z6 k      mov    ah,02h
0 y9 B# J- k4 z  F/ ?+ ?* h      mov    dl,0ah
+ t  R4 G+ y4 e+ _; ~      int    21h
6 X2 Z( w' t7 B! P7 w* S" _5 h      ret' `* L, v/ R8 n9 g
crlf endp* M9 `, e% Q( q  ^, O7 [; R7 [+ C
;------------------------------------------------------------------------------------------------
6 T7 }" y/ g5 w% X# V_32bits proc near2 w1 y1 A# w6 }
      pushad
1 ^& d; M* [& Z3 k: h+ p7 f% m      mov    cl,4
. c0 X' k( \, g8 m/ q2 Y9 X      rol    ebx,cl
# p% T/ A4 ?+ V8 z5 f. m9 w; D      call   print_4_bits8 P! b$ l  }) D) B, X
      rol    ebx,cl
7 C8 C' I# O" s! W! b      call   print_4_bits
: F8 u/ \% K0 Z      rol    ebx,cl4 g3 z3 U# r( E  r
      call   print_4_bits- |" N# s6 _' ?2 n
      rol    ebx,cl! R  e1 x) e$ W3 ~' U$ F
      call   print_4_bits
$ z# F: }) O+ l1 r2 u      rol    ebx,cl
3 R" x" b" ^7 c2 Y3 Y      call   print_4_bits
& H/ G  F: Q/ Y5 S" Z/ y      rol    ebx,cl- U, m9 O% n/ Z* ^
      call   print_4_bits1 V3 g' V& |" ]% Z
      rol    ebx,cl& [" O3 O* l/ E) w2 s9 m4 S
      call   print_4_bits" ~( x8 o9 x$ l
      rol    ebx,cl+ r: J* M! i7 K/ X; g) r
      call   print_4_bits' Y, K, ]$ A8 m! i3 B/ Z
      rol    ebx,cl
$ e, d4 @( \1 C, I4 k& T! W      popad
2 e0 @% h6 s; [4 S1 ]2 Z' J      ret5 k1 C% x$ i; x1 y; r
_32bits endp
4 j0 s" m( Y$ g- O;------------------------------------------------------------------------------------------------4 Q) o0 e4 O( l. n5 K
_16bits proc near( t- f  _- @( w
      pusha        * k! h6 H) Z+ L
      rol    bx,cl
7 O. r4 l7 Q' o1 T5 P      call   print_4_bits
4 K: e7 n' |: a* n) J& \. x      rol    bx,cl" w  H' O$ C* I
      call   print_4_bits
0 ?% ~$ D2 ~. |3 p7 r( z      rol    bx,cl" S! ]' v( n+ M
      call   print_4_bits8 }3 d$ X6 z" ?* `
      rol    bx,cl! ^1 a9 B1 ^2 ^5 ^  o; y
      call   print_4_bits$ F, I- B; q0 a1 H% \9 p0 K
      popa
' n$ a. N% T' G$ u+ X7 }+ ?5 a      ret
0 j4 }6 z; T( u% {6 z_16bits endp, u# u$ m6 Z" n
;------------------------------------------------------------------------------------------------) W3 Q$ k6 }1 T  K, O7 R
_8bits proc near
: y# ]4 g. ?8 v  c* m! Q' {5 Y      pusha        
4 V+ v7 Y, w5 b- {7 U* G2 Q" p      rol    bx,cl* t" H  J0 n! y% P
      call   print_4_bits. R2 i5 L3 [2 R& _/ Y* N
      rol    bx,cl1 S! o7 }0 m( ^6 b9 _
      call   print_4_bits7 k2 E3 Q/ F( s7 f
      popa
4 Q+ ?: Q0 T# }: ^- T- \      ret1 a" U6 |% f+ c  @7 [
_8bits endp
, E1 c$ s' K) T: Rprint_4_bits proc near
8 e/ O3 m# H) W      mov    dx,bx
- f3 b9 z: W8 W: ^( `      and    dl,0fh
/ h6 D+ K% f5 t1 s0 H9 @      add    dl,30h
% `: i& V& e# v' R) C* E/ Q( g      cmp    dl,3ah
1 Y1 y: @9 Y3 b2 _+ b      jb     print
3 g5 h0 J/ J1 D) A: A      add    dl,7* ]* `+ Y1 ]& A  E
print:  8 {/ {3 I% d% |6 t9 g
      mov    ah,2% z; @. w5 B8 X: M& Y4 u" G' z) ]
      int    21h; [  Q- H4 d* R
      ret
: y! J) F4 ^. d4 e" ~9 u! Iprint_4_bits endp    1 d- [% V) s1 `) |' R
CSEG ends3 r% b5 x$ Z2 i! E, c- y
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-11-3 23:09 , Processed in 2.909930 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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