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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address). h% o" v0 N+ i1 a) x, C, S- o

2 Y" l$ g/ p/ M# s% l- a! C則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
2 Y% D6 K* D- x' g+ S
3 l" p# W  w4 {8 [$ D宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  7 O- o* V; T! K2 X
$ W# e: [- o' W1 d
.model small( x+ B  p* _- W/ I) c( z+ Z# s
.386p  u9 V/ {( M$ I9 s, i+ w8 x! Z
DSEG SEGMENT USE16'data'
; N& s/ I' L0 @) X! \# t$ |, @) Q5 P+ W
DESC STRUC
. H5 e6 [8 k: ^- T9 v* W7 n. P     LimitL DW 0 . O3 s- s: @9 n9 [  J5 Z+ z* `
     BaseL DW 0 # v0 a. q0 j- U3 |" V) n4 K7 ?
     BaseM DB 0
" ]3 f5 |- b$ d/ t/ i) G" S# C     Attributes DB 0
1 D2 r# Z& v" w     LimitH DB 0
1 X8 M  G4 ]( I     BaseH DB 0 % f- H( P8 Y$ Z5 B
DESC ENDS" k1 H4 @# D' x$ t. [

; A. S3 F+ i! |/ o9 r% q  E; HPDesc STRUC
1 C3 Y1 J/ U, U- A3 q& h; l     Limit DW 0 , L6 U6 S" r, U8 }
     Base DD 0
+ s0 s5 j  I. u1 F* g. d, h* |PDesc ENDS
( d; r$ N. {& g: Q2 ]& o: m9 k
% A1 K5 Z; B3 n& Z- N( T5 SGDT_def Label Fword; E3 f* D' ^& {/ [
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
5 v: U7 l) z/ q9 r6 QData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>: X) O, |" W  T5 U/ f* {  J
GDT_Addr PDesc <$-GDT_def-1, >
& z* f7 \/ J' a8 b3 N$ J7 C0 p
  E0 W1 F5 o) o9 n" E! e6 {( I3 AMaddress Dword 0, R5 o# D4 B8 g/ N# v
! |+ u+ K6 @, L1 ]
DSEG ENDS + ^& e2 e: R, f# O) P
ASSUME CS:CSEG,DS:DSEG6 @% ]/ E8 o9 v: Q" S" a* H7 W7 X# J

- q! R( V) d" F3 }CSEG SEGMENT USE16'code'
& T! s- {' D3 ]6 T$ y0 ^. v      push   ds
3 H1 T" d6 m' }; h      push   es4 f$ W" z. v% T: \% }7 Q
      push   fs
( p2 j2 Z5 z4 I+ U4 W0 }1 Z4 v      push   gs
5 x1 G# Y( y. ~7 d: V6 @      call   big_real_mode     
6 M1 y3 z" M, A      call   Get_Commandtail
6 E( v5 R4 L) Z8 K      xor    ebx,ebx
. u6 q( B' R/ l% U! K* b6 P      mov    si,82h( h; g! j1 W9 a
      mov    al,es:[si]; W" m) d" c. g% A
      cmp    al,'r'- w9 ?) }( @) w9 A2 C7 n
      je     R
! |9 I5 Q% f+ {8 @* M3 B      cmp    al,'R'
1 T8 W  p" T; D2 n6 K  }      je     R
, A5 u4 C6 k6 S3 W      cmp    al,'w'
' i: X. |. a$ r      je     W
% P" r. \+ t" H. P+ Q% O      cmp    al,'W'
9 W5 W4 h. M: `' ^! o1 T- v* E8 ^      je     W          5 |) y1 Y) t! c6 o; {
R:) Z& S4 F0 B+ A" T9 h) |9 f& N; A. _
      mov    si,84h1 ]; `$ c/ j; e
      mov    al,es:[si]2 s( N) x& u2 A+ x, C# P  m
      cmp    al,'b'9 z* f7 i9 U3 z, X5 ?+ C0 u$ {
      je     RBT
2 Z0 q5 h# Q0 |# x. v      cmp    al,'B'
- o2 q( m+ N- m) A; L  \: a      je     RBT) a0 s2 v( T3 f% O2 Z4 Q2 y
      cmp    al,'w'
  w. a" z" L& @& h      je     RWR4 ]' Y8 S% R6 l2 r8 y
      cmp    al,'W'
6 Y, a4 t4 c1 l& b6 ~  W      je     RWR
9 g# ^4 f# o& `- D. a      cmp    al,'d'
. Q6 A" A& X# }+ `& @      je     RDR' ^; g7 D7 u- {9 i
      cmp    al,'D'
. G4 F4 F; L8 O/ h( d  |      je     RDR             $ ^4 q" [3 E+ L* U7 I1 ~
W:      
( r& t; k; _- m- U      mov    si,84h& l4 H! w4 R  L+ n, {8 M6 [
      mov    al,es:[si]) \% p- c9 M/ T; @+ m1 G
      cmp    al,'b'
* E& K+ I* f; \  F" J      je     WBT
6 n, [8 ~0 R/ c% L; }      cmp    al,'B'2 {' r0 m. Q( {2 J$ i
      je     WBT9 ]: V: p  z# \% k
      cmp    al,'w'
1 _' A1 d' X7 w- D      je     WWR
7 k1 x0 _( ]0 }      cmp    al,'W'$ Y% ^; t# V. L- G. j
      je     WWR
& D2 C' ~. Q' h5 K      cmp    al,'d'
1 W4 s6 D; j+ ]+ D" v) F      je     WDR- N. Q- R# c  p1 C! q* C
      cmp    al,'D'( K! j0 E# K8 H* B! B; e* @' \
      je     WDR7 M0 h7 R1 ~! \6 E
RBT:
: P, g1 t4 m1 H) g5 ]& f$ U      call   PSP        
* E& ?* V4 S2 e' O2 @      call   crlf           8 k+ m9 `: p; i1 _5 x# i1 \
      mov    esi,ebx; W& H0 M* K& c; }; e6 N8 {
      mov    eax,fs:[esi]
" s" W( n5 s' P, ]; {+ O7 V; L      out    80h,eax
' v" Q% V  H0 I5 N. x$ m1 A      mov    ebx,eax: K' ?7 e6 m) E1 E% @# {
      call   _8bits
& ?% X) t" d6 a0 z6 [$ q2 h" K+ S      jmp    Exit
* k7 c' j. z. d* G% f! w; p5 V4 pRWR:
" b; [  L; t0 i! ]5 F      call   PSP        
) d9 U: X1 ]; Y- W' X- q% R      call   crlf           ) b& X' F& ]$ x8 L5 w
      mov    esi,ebx. T( O1 \+ V" \4 H
      mov    eax,fs:[esi]; t9 {+ E. \! E/ H
      out    80h,eax* k9 {) v4 C5 I- J
      mov    ebx,eax
, D; x, j7 C- E' {' J/ h2 ~; g      call   _16bits* b0 ]* f/ w6 p& J
      jmp    Exit4 c0 n! B& @4 O" N
RDR:+ d. G7 b4 r( O, f! d  ]
      call   DPSP        ; |  q& X6 w+ @. q, r% Q
      call   crlf           / c/ I- r, g$ K  p. @
      mov    esi,ebx1 j7 h. F5 R" @
      mov    eax,fs:[esi]
2 Y+ X7 k2 f& r; a% Q& V  b      out    80h,eax2 z& X/ h3 \7 d5 I
      mov    ebx,eax% E3 y( I4 s, `5 m
      call   _32bits) B$ Y5 |; g9 H
      jmp    Exit( W) C2 }. e3 Y# U- N
;------------------------------------------------------------------------------------------------8 q+ F( D7 o* u2 b  o& t
WBT:
5 O- _9 @7 f/ y. T( b      jmp    Exit# r9 n' l7 C3 K
WWR:
# o% ]$ [; _1 X# C: l3 A' X; d$ t* z      jmp    Exit
$ W: e7 |+ d  b# m4 {: f. \WDR:  T& K) T2 t$ b! Q. |' M9 G
      call   DPSP
5 ^9 Y% v! d4 w* h      mov    Maddress,ebx      
  H, b! q" j: B) W      call   crlf
% c9 ]3 b/ j5 p- c7 ]      call   WDPSP
  I9 |+ g% f: k# K! \9 s      mov    eax,ebx  e1 _; n  j3 C3 v, g+ f6 \
      mov    esi,Maddress          - R; H1 w" }9 E( l
      mov    fs:[esi],eax- Q& R& \# q# Z9 M# y& p& B( h, J
      out    80h,eax5 G2 g9 \, d# U/ e7 ?" h
      jmp    Exit( T8 d, t: O, @8 y: J
;------------------------------------------------------------------------------------------------      
& Z/ R, }2 G  `2 MExit:" f2 b& D  @* ^" b2 t, e
      call   real_mode     
9 e6 M$ A; Y( A" b/ ?( k  @  @' t      pop    gs
  b0 ^7 s/ Y: k- }# Z; F; H      pop    fs
- Q) q( C4 h; B- I      pop    es+ |+ a# j6 v1 q
      pop    ds       1 ?6 k4 z: r- B8 F
      .exit
& \$ P" P& h; C3 I/ p6 A' L1 p2 `4 h;------------------------------------------------------------------------------------------------% v1 Y6 @6 n1 A/ X+ Q! c2 ?$ v1 X
big_real_mode proc near. K. W$ q/ Q# X/ _/ Q, p% u
      in     al, 92h* w: j% r6 F# u# y8 D7 W
      or     al, 002- c8 P  @1 T; R, X0 ?; {
      out    092h, al8 }' W4 d% C, v9 g: j8 G
      out    0edh, al
8 e$ T1 Z* U" n      cli2 T; X" R5 Y+ q7 Z8 f
      mov    eax,DSEG
# M# X6 O+ t/ S      shl    eax, 4
7 F" G0 W! k& B: ]$ W      xor    ebx, ebx; Y* s3 l* i1 C& R' A, a9 b2 B4 q
      mov    ebx, offset GDT_def
3 O2 W3 I8 `' q* n) S      add    eax, ebx
1 V6 K9 `, h& r( @) N% F' F8 O      mov    dword ptr GDT_Addr.Base, eax
' i: {7 _0 K+ M, M0 M      lgdt   fword ptr GDT_Addr
; ?0 S0 |  P8 J5 V5 e" @      mov    bx, 8  v; S% X- i2 E6 @5 q  I$ k5 R5 K
      mov    eax, cr0
" q$ P9 s2 \# @0 h6 V1 U      or     al, 19 }; B3 a4 K. M. M1 `, h$ n. ?
      mov    cr0, eax7 k3 K2 j5 I9 J6 v) I! ]3 n
      jmp    PMod# o6 o; e- Q5 u6 e% O) V, ]
PMod:
" E7 D& f  `4 J2 U9 x* m3 L1 v  _' }! }2 I      mov    fs, bx5 v: c% l  u4 u7 x0 M  B' W5 S
      mov    gs, bx! L( |/ z% j( J* }( \8 U! k
      mov    eax,cr0
, }% Z5 {4 A* p      and    al, 0FEh$ Q3 M3 ~9 X9 r
      mov    cr0, eax 2 J8 T5 A) K" R! Y+ ^, T
      jmp    RMod
) _# n3 A" ?6 @: @  rRMod:
" V1 I1 O8 n  U. W3 Y  E2 Y      xor    ax, ax, G) R/ \) Z9 v, t2 Q" k3 x% T# }
      mov    fs, ax' R/ @- b0 m. m$ `: V% y
      mov    gs, ax     / O5 i; p' C, n# w  c* b+ g. M
      sti     
! {% b3 P7 q! |/ s1 P0 |      ret
3 ]6 O. j& I/ c5 g0 _: |3 l4 Wbig_real_mode ENDP
+ T- ?/ p" X% L;------------------------------------------------------------------------------------------------
5 Z% c  E. ]2 M! vreal_mode proc near
/ r* H$ a, x6 o7 H8 v5 F      in     al, 92h* G" s5 C' {/ C3 b% ~; a
      and    al, 02
1 C- s; t- j0 M0 n2 u0 Q! A      out    92h, al   
# s' y0 Z/ h( h8 O' X      ret; a; ~2 R# _5 s
real_mode ENDP
+ t1 I. I( Q% l1 L/ R8 Y0 K/ _8 h;------------------------------------------------------------------------------------------------
" R% q/ X+ F4 T. O# |Get_Commandtail PROC near% S& c& Y5 ~' n
      mov    ah,62h : {3 M& Z, `* C1 Q! b
      int    21h
8 V) z% x9 M/ k      mov    es,bx
& m% c0 O2 c$ k" K& c- |0 b      ret
  [1 I" X  v7 C& N( ]Get_Commandtail ENDP   
2 S  M- R+ z" C" I( };------------------------------------------------------------------------------------------------
: K4 M" q, U7 W) M, ~; q% Z9 zPSP proc near9 o- k# K& _3 [& F" ]
      xor    ebx,ebx/ Y: V3 q3 T/ Y( _  f8 H/ ?
      mov    si,89h0 X1 Y. @& e* u
      mov    al,es:[si]0 G! i( s/ _6 w$ K2 C. M
      call   Change
/ O# u' F/ V9 K8 B      mov    cl,4/ c  \7 ?" ^+ [0 U0 a
      shl    ebx,cl/ E. l7 s2 E8 N
      add    ebx,eax
3 i$ ~9 n+ B2 _      mov    al,es:[si+1]& I" q4 n2 M% n# L3 i# s* x
      call   Change
- L, F- A& g( W- @- v1 ?& u      mov    cl,49 w  l! c3 ^* L# }( ?7 u% u
      shl    ebx,cl
4 N* x- p% N  D. H% n% ]! j8 j      add    ebx,eax
7 W1 ]6 A, c- c5 M      mov    al,es:[si+2]8 R5 U5 p- a: S# \+ F  I
      call   Change1 g- m! {) r! C  \) S( a
      mov    cl,4: x4 s. E$ y' r
      shl    ebx,cl: X' B! `; c9 K# K2 w* b6 H2 I) W, D
      add    ebx,eax
' W3 }0 T$ p$ o, W. n+ R* z8 W      mov    al,es:[si+3]
. G4 s% G1 Q) X, {' m& H- B8 [, u      call   Change
/ Y( r0 d& h% [  K, ]4 d8 H1 ~      mov    cl,4
) m+ R0 c7 G7 q  U$ E+ U8 A' M      shl    ebx,cl
5 c- d4 e$ c3 S$ [) Y1 a      add    ebx,eax
: r' Y$ [. l, U1 ~; l      mov    al,es:[si+4]) A' e- E/ {, ^; p9 ]0 u' j9 p" H6 x
      call   Change
, ~0 y; e1 b5 N8 w- |+ K. E. {; Y      mov    cl,4& ?" \! b4 ^3 @; n: D
      shl    ebx,cl: n# B" Z- y7 M/ T, p& m! L; w' k
      add    ebx,eax
0 C' t. V/ F! i+ k7 q" Z0 e* M      mov    al,es:[si+5]
9 H% X+ Z3 I% {$ v% w3 U      call   Change
/ t" [  B, s1 @1 w) Y3 u0 _      mov    cl,49 X1 l2 [$ ~4 u: J# n# x. ^
      shl    ebx,cl
3 @1 ]/ `; Q( @/ s/ e. l      add    ebx,eax
6 C+ ~& G( N6 q      mov    al,es:[si+6]
$ K  D: |/ R* N" S# k* Y& a9 ?/ l( O      call   Change
. X, X( a* x4 s# q      mov    cl,4# a" [" U( x2 ~- Q. K$ V: w* r
      shl    ebx,cl1 B4 i5 I/ Q. h4 F: l$ [
      add    ebx,eax
% B4 ]: T( l: P( ~0 ^  ]1 K      mov    al,es:[si+7]
! Y1 l& ?$ ]; O% |5 ~7 F      call   Change
/ U6 E. ?# }" l- G1 \; F      mov    cl,47 T: y$ s7 Z2 J, Z0 z+ i0 N
      shl    ebx,cl
# }# b( L2 C; |7 Y6 ?      add    ebx,eax/ c  {& C9 v2 f( U8 |
      ret2 j- F" L8 m) z- I$ }) \; R! M, n
PSP endp5 T, H. }/ w# {) q, n7 a3 t
;================================================================================================, c0 O2 m( E& O) {/ G. e+ Z. \2 a
DPSP proc near( m% C9 y$ z) Z: u/ N4 o
      xor    ebx,ebx
; F& G$ u, Q/ _" ~4 S      mov    si,8ah
# j4 f& ~; l* B( H0 f+ @      mov    al,es:[si]5 q' S0 N, ^' i! _6 m3 _
      call   Change( Q/ k) {0 `1 j5 M5 I
      mov    cl,4, s8 k5 _  |7 P, u0 R0 J
      shl    ebx,cl
6 a% b4 `2 c$ D6 x" G( P4 k( E      add    ebx,eax
" F9 Y: o4 l5 u. `. Y      mov    al,es:[si+1]
' l# i, I: ?* d7 w; P* u  Q% t      call   Change; x! _1 C% R' c2 r6 y
      mov    cl,4; x& h* ~; y3 d  W% L0 ?6 b: G' t
      shl    ebx,cl. n' {' v7 P- P5 y9 P
      add    ebx,eax5 ]% m* g- W5 {
      mov    al,es:[si+2]) \% c5 X! z1 n, V
      call   Change
) c/ L* G3 `+ P* h( b( Y6 a8 A      mov    cl,4
1 t& _# `: }, Q4 M3 a      shl    ebx,cl* k0 _8 u' _$ @) t4 P" K1 G
      add    ebx,eax
) I( u( s- e, c+ x2 v      mov    al,es:[si+3]/ i! v6 ]9 c% _6 `
      call   Change. {$ o9 U. W! y9 F- x/ p/ L
      mov    cl,42 z/ Q$ e# n# L; n( U% H
      shl    ebx,cl! @: y! w0 \5 e) ^
      add    ebx,eax- k! h& l; @( a$ z
      mov    al,es:[si+4]
* t* R, @! W# k      call   Change
7 n" _. }3 U( ?3 ^$ p      mov    cl,47 ?; m, g( B% S3 U- S/ {" P; i
      shl    ebx,cl  v) Z, G; |+ k  ?, t/ p
      add    ebx,eax5 Z- f' f, k/ Z$ |) l
      mov    al,es:[si+5]4 U  N4 m( {( }
      call   Change
6 h' a* C, k& L' g- B* N7 r& w) R/ n1 g      mov    cl,4
; m% i# y& Z8 _, o$ |5 z& C$ C      shl    ebx,cl
* w$ g* @. M: O4 V5 t/ W      add    ebx,eax
4 ^- }; M2 x2 q, K      mov    al,es:[si+6]
! @; p9 y# k' {# E9 [      call   Change
& d" R1 W+ t! p1 L* ~      mov    cl,4. g$ Z5 P1 x& {: C& Q. I; A) A
      shl    ebx,cl
" f8 ^) O* u& Q3 D( u      add    ebx,eax7 D- U' u( J, A, R6 P. W" W
      mov    al,es:[si+7]
4 q; {7 \& N% N8 ?      call   Change
6 P/ e& N& i9 C" U+ w0 m      mov    cl,46 {  F2 p) C8 H6 _7 x/ V, K$ O
      shl    ebx,cl
9 f1 j6 j5 ~: K8 m, r8 n      add    ebx,eax- s$ [) g& `9 C+ R3 D
      ret! W5 H) _5 j9 A6 N
DPSP endp) o8 F7 Y  a1 x$ }8 x" [
;================================================================================================* E5 C9 C8 Q* U+ `% _
WDPSP proc near
8 L9 E4 ~2 V  X+ o" O) H      xor    eax,eax0 \7 S; ^7 @# N2 @5 S- ~
      xor    ebx,ebx
1 h# C: H- Q6 @1 O: @0 W0 R% T+ p      mov    si,93h8 {: X& s; Z0 w2 Q
      mov    al,es:[si]+ ]/ p7 y" h9 Z' ^' K7 P6 g
      call   Change4 }( v- N( |& B, b9 C" `' k' E
      mov    cl,4
6 H! M. {8 C2 S5 h. J: ~& i& _      shl    ebx,cl4 _" y8 y4 F. [' e- N0 N
      add    ebx,eax
5 ]  T7 h0 t+ j2 m8 ?; w      mov    al,es:[si+1]
  D7 g1 L8 @6 H* _      call   Change" E# o9 S2 G) n" \9 V
      mov    cl,4
# u( u2 ^# G7 p& `      shl    ebx,cl
( m$ M4 X1 T: d' i      add    ebx,eax
& W! u7 V  z: U6 h7 o# R      mov    al,es:[si+2]
, ?* M: ^, W* r3 k0 Q: K  O# c      call   Change$ I- a" b4 P6 ~: {; s
      mov    cl,4
1 w9 i  ^) ^% S      shl    ebx,cl6 O, A5 `# Y" n+ j" d+ l
      add    ebx,eax. c- f+ L$ S8 R+ Q1 ]' p5 ^2 w
      mov    al,es:[si+3]
: l! S* j6 i. g" u8 P      call   Change8 C% Z* r8 L$ m% Q. o
      mov    cl,4
& Y2 N: L# {) Q: t9 I, P! n      shl    ebx,cl. U) W8 Y: w, }/ ]  ^
      add    ebx,eax
! l! f3 r! M: I5 J& [      mov    al,es:[si+4]
/ q  O' Y; B$ k8 Q: D3 q      call   Change- x4 l* N) B! M% g$ C
      mov    cl,4
+ W5 G3 l! J( h4 Y4 {      shl    ebx,cl/ m8 s1 y" k8 H4 _' G
      add    ebx,eax
6 K% w' K3 V0 O      mov    al,es:[si+5]* M3 P3 J" X; W, o- u& @/ z, _
      call   Change
$ j' w5 G6 ^( L+ |. w0 T+ Y1 p      mov    cl,4- o: m9 H+ w. g
      shl    ebx,cl
" i4 U7 B/ {( w+ I2 H/ |' M      add    ebx,eax
8 F0 Q$ R  `: b: u$ G      mov    al,es:[si+6]
) X2 Z+ [. k6 d% j6 @; ~) \! z      call   Change
8 A7 {& A& W2 a0 l" P; o3 N      mov    cl,4
# a2 T6 @! M0 _5 f( E. `' D6 w) [- I      shl    ebx,cl* D) D9 z1 }' m! l. G
      add    ebx,eax! Q( `4 s/ M$ E7 o( J; o  ^' P
      mov    al,es:[si+7]
+ t$ ?- B5 G4 C4 b/ Y; D3 ]5 C, ^      call   Change
% ?4 c5 u# `/ ]  S% F      mov    cl,47 x. e) s; B  @3 H
      shl    ebx,cl7 R5 X: Z$ q, K4 x0 B" a
      add    ebx,eax
" e: ?' I* K( j. R6 P      ret% v6 C3 @  q' U. n
WDPSP endp( v8 z$ U( w& ]; ]
;================================================================================================) @' C+ w* x. F. t! Z& \6 T
Change proc near( c. B0 M* ^5 P
A:    / ^3 D* \) Z+ K2 B! O1 d6 K' T
      movzx  eax,al% [1 \. L& A9 w8 E9 k8 K
      mov    edx,eax* D  J& U( V  s0 e
      cmp    eax,'0'            ) N2 B% S; _. \% b" h! f- t1 [
      jb     A
; |7 q' u; i8 D1 s5 f5 m      cmp    eax,'9'            3 l2 |' d, b5 T& Q- D5 T
      ja     B
$ t$ j# A: e/ K/ @! e/ N9 _1 I      sub    eax,'0': V8 n2 O) B: k* m" A$ V( D' B
      jmp    short E/ j! p1 D0 s3 J7 z! Q
B:
$ D6 Z; F  u+ d, q      and    eax,0dfh           - a, R. {! `* `* K" i
      mov    edx,eax0 ]% c) {; q/ M& |7 |
      sub    eax,37h            ( G( i0 @) g; ?9 @( m3 w* N
      cmp    eax,0ah
' D7 W" l! b) |% X2 F) _1 l" p) b  \      jb     A                  ) @9 f- l4 P$ L' v4 M3 d! J) \
      cmp    eax,0fh7 R9 z6 n% l; h4 j3 K5 z( X" q3 f& W
      ja     A                  % K5 @! P5 J: ]& I0 z8 n- O- ^
E:
( I0 n( O# {( ~( J8 Q; Q# D0 i      push   eax       2 |0 n  |0 W$ M# y
      call   PRT               
$ a9 m3 q2 F' B  p5 k+ P      pop    eax* e( Y; C( I* u) x* [2 O8 A" _! z
CExit:
0 [) A( F7 {. j' \) l. X      ret4 D6 Q1 }- u+ C
Change endp
* b. c& s% k. D$ z; j2 z;------------------------------------------------------------------------------------------------1 M$ B0 `- Y% a7 M0 ?" Q
PRT proc near: O4 e3 i2 p: N, x) H
      mov    ah,02h; I2 l* ~3 b* t; q$ o: `
      int    21h0 a- R8 }1 Y) \3 U( z
      ret0 {6 r" _  X5 z7 W
PRT endp
: H  E' E4 R- q4 z5 N$ r4 ];------------------------------------------------------------------------------------------------' l. z- ^2 i# t
crlf proc near3 O4 x4 ]. w  P5 ^' X& @2 D, Y
      mov    ah,02h  e& X1 ]6 x  k+ j& X2 b; k
      mov    dl,0dh& A9 }9 \6 [) N  U4 j; D
      int    21h! f+ A( j6 U% ^( E/ }& ?- J! n
      mov    ah,02h
% x# Q  G+ {& H3 K& U      mov    dl,0ah$ r4 F/ @* _! f0 I; O
      int    21h! C( V9 Q7 L8 j
      ret: x( j% w7 c6 c  K1 `
crlf endp
3 v1 q( M9 @1 k6 h;------------------------------------------------------------------------------------------------
" G5 h$ x) f& J2 t  C_32bits proc near
1 a" D# I  x8 }6 J  J, B      pushad
; {8 n* W2 E' G1 A+ P8 N/ s& Q3 [& a( K9 u      mov    cl,4" e' V" L8 c+ F' E
      rol    ebx,cl6 M9 W' \$ X( u6 Y7 B
      call   print_4_bits; ?! T- ]& ?, u3 S/ P
      rol    ebx,cl9 h7 u+ L# V% A0 [0 Z
      call   print_4_bits
- u8 e2 k0 J, ^1 A! ~      rol    ebx,cl
) y9 a; R9 _/ H1 T4 i5 }/ h6 q5 l5 S      call   print_4_bits
0 P$ X, U# G. z$ s9 I      rol    ebx,cl' Y3 }. o* n* z9 _. S( E
      call   print_4_bits
5 \& a0 S2 ~7 U4 N" f      rol    ebx,cl$ ~0 ^0 L& x6 I' R# O
      call   print_4_bits- j0 R+ [- u. \
      rol    ebx,cl
, F* l2 K3 X8 T; n) n; D      call   print_4_bits
" O" H6 |8 t# T& k& g2 b      rol    ebx,cl
1 Y7 D0 M: S* p+ t      call   print_4_bits
  k, C9 w/ G8 s, S* w1 T: u, q      rol    ebx,cl
' l( ]+ j% p# a. `) l      call   print_4_bits
- c" e3 K, ?) @9 }) S8 ~      rol    ebx,cl
( W8 i1 |+ Z7 }* x7 B# F      popad
& J% r$ O0 h4 N# d2 ?      ret9 |9 M- F# f* E0 Z  q* F
_32bits endp2 p- W& x. d8 f" b
;------------------------------------------------------------------------------------------------* g" D1 H9 H0 u/ I7 B) {- M( R* D& \
_16bits proc near
; p2 h* ~' X( k( A  a5 n      pusha        
" R2 S" c( e5 T7 W3 F      rol    bx,cl
" O$ r7 V# n) S/ W1 m3 W5 @      call   print_4_bits! W, x& x) D6 h! z
      rol    bx,cl
/ S. |& }) f" @      call   print_4_bits/ d( l7 F, y) T5 m! _
      rol    bx,cl
. U- w3 ^# R. o  q5 w2 e8 `4 q      call   print_4_bits: D, ~/ I3 _( f0 T$ G5 k
      rol    bx,cl
. c* C" l8 V; q5 |2 k* j      call   print_4_bits
" w) ~! o7 k1 @1 g  K* ]      popa
( ?9 y6 E2 X4 ]- s      ret2 m2 e7 ~& O) S4 }
_16bits endp
1 j5 l# r& J& p" {9 [5 j# Z. s;------------------------------------------------------------------------------------------------
0 Y  h) j- r; o) _- N% \2 i_8bits proc near0 H5 z1 Z/ C/ F. O
      pusha        . A3 `& ]9 K# p5 e5 Z+ Y' g# I
      rol    bx,cl
1 P( A$ b: l* P6 [8 [( L      call   print_4_bits
$ }5 I' ]4 f1 @3 |! Z      rol    bx,cl: f9 z1 z1 d3 D5 f. q. s) h, v
      call   print_4_bits
' g( g/ T$ M& }5 e      popa
/ j# q* g% Z3 ^2 B% }) f      ret5 H  r1 L; z- f6 v+ M' x% N
_8bits endp
9 X% Y3 ^, D3 l  mprint_4_bits proc near
" ]* J2 ^' \5 I5 y) U' D      mov    dx,bx" M0 V) P4 k6 z, P; W7 K2 K0 K
      and    dl,0fh/ G4 E, ?! S* c5 f0 y6 V
      add    dl,30h
; v5 E" P! i& n+ ^+ G- D      cmp    dl,3ah
% b/ P3 s( t" U      jb     print+ y+ h8 v3 v. C% ?4 b* g  a
      add    dl,7
' i( o+ n0 l" h9 G, W# w$ U4 ~print:  
2 T/ P) {7 J7 W, b      mov    ah,2
) c* P( r5 E7 X6 w' s7 a7 l      int    21h4 j# S0 k/ Y$ W0 ]& @7 M
      ret
" h/ J; k8 B: a2 bprint_4_bits endp    4 u2 a3 X5 R4 l9 t* K2 V1 P
CSEG ends7 r' V6 o  ^" T! q  M( w
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2025-5-2 01:55 , Processed in 0.034903 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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