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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)0 ~2 C5 Z, L  s
' g) k! j0 G9 U
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
4 `: `$ r& P4 S
7 ~, W) }  X/ Z8 _/ _$ {宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  3 ]" N) h/ W* I& t; b6 P

' Z  }7 `- {3 d" I4 z.model small
( S0 v+ q6 t. l2 C.386p
* c$ i3 u* U  ADSEG SEGMENT USE16'data'
9 Z4 z# d. {3 p; R1 {
  i. Z# Z# N$ T- _/ [DESC STRUC( F" M5 Q0 S" f# J( ?6 n! G
     LimitL DW 0
9 ]5 t, I2 H- ~! s! p& C* a$ A& I     BaseL DW 0 + S% |5 F6 h8 z7 v6 I
     BaseM DB 0 * e' j$ r+ N' z5 H$ Q" X1 ~
     Attributes DB 0
- b9 H& j; M8 z, J     LimitH DB 0
0 W- M3 i  M4 r$ Q  l; v" {9 f     BaseH DB 0
* \4 _4 j, u7 ^" ^  i" oDESC ENDS
5 G0 f4 ^. }; R. {
! O, C/ f* `/ d2 y1 O# P* qPDesc STRUC
3 q; [6 U# N# @  H     Limit DW 0
- L. i0 O" c8 A6 Z. c- l9 s. Z     Base DD 0 . [) r: q5 M6 x3 N- V2 @( Y6 @
PDesc ENDS
1 Y+ ]- M7 m0 Q, d  j- R) N& {  {8 t5 r. ]4 T# ?- t% N* o$ Z
GDT_def Label Fword: o" }$ P9 Y! w$ K& F5 i
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>0 V& O7 T- W' V- p2 @7 E! f
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>5 m8 P& K6 X3 i( i" w4 z, D. \9 G
GDT_Addr PDesc <$-GDT_def-1, >
, S6 D( }$ t! S- {1 w' F* O8 f, H' l5 C9 b
Maddress Dword 0, Z/ I- M( K  B* a) u6 n* L
( ?1 M. s6 g% D) L7 Q% `
DSEG ENDS * N" p# n: f6 q7 h+ d- q
ASSUME CS:CSEG,DS:DSEG
: R  p5 x# d2 V2 ^! B  c$ v% |& X, V! i  ?8 w# S
CSEG SEGMENT USE16'code' & g4 D( ^5 W  n! G' F
      push   ds
5 M- Z7 a( W# _# o/ g% ?8 [3 |      push   es6 ^) B. D, c" k, n9 l
      push   fs
2 [  ?. q3 C: J! T2 N6 M      push   gs# M0 d" ?7 Z* c1 l
      call   big_real_mode     ) C7 G3 b' R! l6 u1 y; W
      call   Get_Commandtail
4 r% @* ~7 e- f: g' O$ n      xor    ebx,ebx7 B* i+ j/ V  j/ L% G( Y. k
      mov    si,82h
0 W6 j3 W7 w+ ~* N3 p1 j& G' D      mov    al,es:[si]7 _3 Q7 d: u4 X4 X! W  [( ?& Q( x
      cmp    al,'r'! L& ~, ^( h) U5 `
      je     R
1 \3 U, w/ H0 S' k# m      cmp    al,'R'0 e- S  I6 }! @2 Z5 e$ i
      je     R
6 u" s6 x  q2 C: d  `/ S3 T      cmp    al,'w'
4 a) i: |- O, o# u0 [      je     W
- F6 n& I& h1 I6 w! q! i      cmp    al,'W'2 j0 E  d. \- Z( K2 Z
      je     W          + U- b3 _; W& m' M
R:$ h1 P1 M; e$ ]: F5 N+ t, r
      mov    si,84h
) Z2 ?+ B9 D" |' I9 s- j" Y; g      mov    al,es:[si]/ [* Z, {1 p: ^6 w
      cmp    al,'b'
+ `- b2 Y; _& r" C/ h* }( S. O      je     RBT
  v% C/ s# }- w5 o0 U3 @; ^      cmp    al,'B'
* i2 g, z4 D" L      je     RBT: p$ N: A. @( e6 |' n3 w
      cmp    al,'w'
  g  f6 j+ `0 T5 D2 w+ C      je     RWR& t) C4 L- X% V) T. J- j
      cmp    al,'W'  q6 j, a. F5 {! b# W- a6 K
      je     RWR
. |- E1 H( I* V7 ?3 ^( g. `: x8 M      cmp    al,'d'
' c# `- m3 `1 Q( y      je     RDR
& K5 [! s, k% f3 ?      cmp    al,'D'5 \0 z- _- R5 l. c  V
      je     RDR             & |4 G) B0 |: s4 t- r2 ]
W:      9 l( L! u$ v& C; y% p; S6 H4 Q  V4 E% f
      mov    si,84h
% A8 y# V  ^  K/ Z2 ^. M- O+ ^      mov    al,es:[si]
: s. o4 b  l  c) b      cmp    al,'b'$ m6 P& k+ w# R( y( [
      je     WBT! e1 y) @) z! F  X
      cmp    al,'B'
6 C' G' x8 \5 O- `) Q      je     WBT
( W9 N4 e! z( U      cmp    al,'w'0 [# |3 V; @. P( z1 L3 O( i( H
      je     WWR7 I) H% e( O! g5 X$ X0 r
      cmp    al,'W'+ U# m% J6 `6 s" ]. Z
      je     WWR6 |9 |9 z$ x' y( x/ n
      cmp    al,'d'
9 F- R( o! C: [! u: R4 \( t. N- @      je     WDR1 Y, O$ M2 @5 v0 g/ |% o
      cmp    al,'D'
" i1 f7 }7 Z( x4 O4 j+ n      je     WDR4 h% _1 c! ?4 `0 y* f/ k# L% `2 L
RBT:
2 `4 {5 `+ f& o- f* Y. y      call   PSP        2 c9 O2 H! n8 v9 g- ]) ^* r
      call   crlf           
6 @6 c. b% C  C. U/ Z  ]. i; [      mov    esi,ebx2 ]1 k8 O9 J" a% W
      mov    eax,fs:[esi]
3 K/ G. J" _$ F, c  }      out    80h,eax$ U! w) g5 @& n1 d7 }
      mov    ebx,eax
6 L! o3 K* x- B8 [; T* b% g      call   _8bits% Y+ C' X; Q1 {7 M% D+ m: `
      jmp    Exit
( R, G1 t6 @" E0 Z% MRWR:4 Q- C" z/ O) s* h
      call   PSP        
" o* X: F& ~( ?; s% Z/ ~! M( q: v      call   crlf           
, j7 `( S$ {( W* j, d9 y7 f9 V      mov    esi,ebx9 |' y) H# ~# b" R6 B7 _
      mov    eax,fs:[esi]9 J) \. F. m* n# o, Z
      out    80h,eax6 z7 J1 F9 V% }  {! V
      mov    ebx,eax
+ s6 |2 q4 i1 l: `& g      call   _16bits
; l) Y& J3 h8 b      jmp    Exit1 c$ p7 A% t+ g
RDR:
: ?, ~, _5 n5 x6 f. q$ H      call   DPSP        ; m' e  J$ F$ @
      call   crlf           ( R) I3 b$ |3 `$ P5 B9 X% Y) w( b
      mov    esi,ebx; }  m9 ]1 N, l6 h7 o
      mov    eax,fs:[esi]
# A' G% j$ u. R& k5 Y8 F      out    80h,eax! U5 F/ p- [1 v- F/ x6 y
      mov    ebx,eax/ C( x2 C* }1 z3 ?" A+ R6 [, J
      call   _32bits% `6 S& Q5 }4 F' r# ^. n6 \
      jmp    Exit) R5 w; D9 J! n8 z+ _; Q; e
;------------------------------------------------------------------------------------------------& E9 K: {, v1 ^# ^% q1 f% k: h3 T& |
WBT:6 C0 f$ q$ F( b( n; P
      jmp    Exit
3 }" H4 j6 [0 i1 JWWR:% k1 \8 m; f1 B! F0 [2 F% b% ?7 V
      jmp    Exit
( l2 L' }3 S, l3 jWDR:2 S+ v$ a: d4 w4 J0 O
      call   DPSP/ c2 p! c! ]* `# n. D
      mov    Maddress,ebx      
+ k- {  T1 L. w, c' Y( `8 _) g      call   crlf$ p4 Y, ?* q1 F8 A% V
      call   WDPSP9 \. h) @# h; _& `' Y4 v( J8 |2 c
      mov    eax,ebx
$ ]  k8 t- \7 j0 D" j" t6 p      mov    esi,Maddress            h4 a% [+ [1 J$ y& N3 X+ e' X
      mov    fs:[esi],eax
* C3 ]$ o3 U/ P  t      out    80h,eax2 i. }; V8 t4 G( T; @) L
      jmp    Exit4 D1 @" L. ?/ b& E) r
;------------------------------------------------------------------------------------------------      
* `: j; x" r% X4 X) Q* pExit:7 K: s0 [9 T  d7 l
      call   real_mode     9 C/ y+ y5 a* t
      pop    gs
0 j& C( o2 o: D1 ?      pop    fs) ~( M( B- T6 i  g6 r
      pop    es8 r7 F" G1 J/ k6 R
      pop    ds       3 v$ _' c  u& k) D) P, _& c5 x
      .exit
  `  U) t& l0 ^; I3 s3 R; @) v;------------------------------------------------------------------------------------------------2 |3 j; }6 N: k8 E- m7 r
big_real_mode proc near
/ D1 q: p( g1 b1 A3 z! S: i5 Z      in     al, 92h
+ h0 S# g5 y4 N2 {: g9 U      or     al, 002' v8 k  {; f: ]1 J) G: j
      out    092h, al/ A+ s0 A5 y2 d' |# o
      out    0edh, al! P, v9 U3 I- v
      cli; y0 O: }8 C) ^" K$ a, g
      mov    eax,DSEG
# Y) w5 J( y8 r) {$ a      shl    eax, 4) [) w) N: a3 D( i9 G
      xor    ebx, ebx
; P, r( E+ {5 _/ d# G      mov    ebx, offset GDT_def, h0 `3 M$ I! t5 l1 `0 K
      add    eax, ebx6 R1 m4 ?" D% p- a( |
      mov    dword ptr GDT_Addr.Base, eax
. @+ C) J9 f5 ^0 r. g+ Q+ d) ?; d# h      lgdt   fword ptr GDT_Addr$ [# f: u: C! B4 G+ m6 k: ~% Z
      mov    bx, 8
+ G) |" j7 a( s$ w: _6 z      mov    eax, cr0* _5 \5 f. W- n$ u" G+ c* e3 i
      or     al, 1
! X) T# G. M( S9 |7 v      mov    cr0, eax
3 s1 L% F1 o- }) C6 Y) m: v      jmp    PMod
6 P/ f6 W/ \+ e7 P1 aPMod:2 W0 C1 W% f# x6 t& v
      mov    fs, bx9 o" N! H9 ?) s9 X4 R
      mov    gs, bx
0 |, l7 y# y! l, W; u' L) @" E      mov    eax,cr0
, T3 N- f+ C8 k; C# g      and    al, 0FEh
/ i- ^- r. C  W" R- w8 B6 {  b      mov    cr0, eax
0 K/ W" ]* Q. L9 q: W9 c- P3 Q/ S      jmp    RMod4 d9 b4 J0 @+ Y, Y, r- I
RMod:" l1 J; o* v8 [  {1 g
      xor    ax, ax
7 w6 q- [0 }0 h& q      mov    fs, ax9 y6 `5 R: ]: o0 z3 J" n! a3 }
      mov    gs, ax     % r. v/ {& U  k& i9 k+ h; A* |
      sti       {/ b+ `# K- V8 u0 K
      ret9 ]9 `2 ?2 E0 v( A; p& [0 m6 D
big_real_mode ENDP
4 `4 s1 q5 v( E% H: ^+ m' y% a;------------------------------------------------------------------------------------------------( M. u& S0 i0 g5 E, Y
real_mode proc near
2 K/ w! [; z7 U+ f$ m      in     al, 92h
& S/ m8 I! ?! V% Z/ o      and    al, 02  X9 p- d# ]+ I
      out    92h, al    5 N/ C4 d' K* g# z9 s, |& K5 h
      ret# {% n) S) l  Q6 r% s  n( U
real_mode ENDP7 {4 W. u  y! R& z' ~
;------------------------------------------------------------------------------------------------
4 j: O4 d6 r$ sGet_Commandtail PROC near
" U! \1 n$ r1 \% j5 @& X3 q      mov    ah,62h ! O& r* H+ [& {$ V1 j
      int    21h: \  Z% _/ ?& f5 A% E( w  b
      mov    es,bx8 d" v' v) p$ S0 q" t
      ret
( b9 I4 U- g4 X2 T  ]+ HGet_Commandtail ENDP   
, g9 B& D. I* q;------------------------------------------------------------------------------------------------& t! A  S7 E6 h( z- t" U
PSP proc near
" ~& C1 n4 P" O# ~      xor    ebx,ebx& L, t9 z" }+ r7 I; B; n5 A7 ^
      mov    si,89h
7 S1 |) P6 i, u) R      mov    al,es:[si]3 O5 |3 L1 ?0 n9 t* C
      call   Change5 V2 x/ h/ O/ N
      mov    cl,41 n- A1 J" j7 E  J: ]; [
      shl    ebx,cl
# N& q2 A# [0 P  j      add    ebx,eax
+ H2 H0 I0 ~" j6 _  R* M6 U4 q      mov    al,es:[si+1]8 L! ~8 j, X% q4 p+ `) i& q" x
      call   Change3 {( x! y, D4 y
      mov    cl,4, {# p. t/ ^, c0 g0 q1 u
      shl    ebx,cl0 Y3 Z$ n' D6 K, d5 @5 C
      add    ebx,eax
% n0 d& ^& j- d9 W      mov    al,es:[si+2]
6 [) S* U( L! T- Y      call   Change& m; z3 H7 U. R; k: ?$ Y' W
      mov    cl,4. h- x: S: T7 t! c
      shl    ebx,cl$ p4 E$ y3 P) u, G8 w- h0 C
      add    ebx,eax/ N' [6 |% F$ b" Z1 m% m
      mov    al,es:[si+3]  `$ ]& F, Q3 o% R# E% `: w$ c
      call   Change
" O& y  u" n" V% m% u4 |. F      mov    cl,4& i9 B- O: z4 q5 X) d
      shl    ebx,cl0 u6 c. P" H' Z; u' |, k
      add    ebx,eax
% u; {* d) m: s/ [: }3 x* E      mov    al,es:[si+4]
% i1 u9 k1 K8 T! ]7 p      call   Change
. `- L- c3 Y, E5 t6 p      mov    cl,4
, Q( H9 O$ R3 X. K# a) ~$ H4 r0 ~# T      shl    ebx,cl
3 K8 O8 I+ z' C3 D      add    ebx,eax2 q! X. h5 f- a$ \7 s# _
      mov    al,es:[si+5]
0 j$ [, r  o. `( F7 c& j$ s      call   Change' |& A. _8 U4 x+ |( I
      mov    cl,46 Y- h$ J% R# a5 A/ z* s
      shl    ebx,cl
: O" M; Z" G+ x! z. r% Z9 q! P$ X/ f% ]      add    ebx,eax
7 v$ O! q8 v2 h. j' b4 A+ Y& z      mov    al,es:[si+6]! E% {% a8 q: v4 }( h2 h
      call   Change; S% w. Y% \5 z; r" `
      mov    cl,4, @: g; Y, Z: S8 I$ \* v2 Z: N) m
      shl    ebx,cl
: S9 {' \- m, O- g      add    ebx,eax
" ^. }3 f" ?7 y0 H      mov    al,es:[si+7]
. \% m( F- r! ?# z& X      call   Change
9 K7 h+ b( o) I) y  E- R      mov    cl,4: f2 j( A  T6 j. B6 r2 `" J4 T
      shl    ebx,cl
, _8 K* U! d3 }, V0 A2 W( e2 M9 u$ |      add    ebx,eax
3 p5 P/ I" y0 F  j4 W      ret8 h; G' N' u! A: x# n6 Z; Q# r
PSP endp
* I7 n( i: I2 h;================================================================================================* `; [) O! F' C' ^
DPSP proc near4 v$ X  v$ V9 I) c; j2 G
      xor    ebx,ebx+ t6 P- b8 g! h1 e, L3 B0 E' k" o$ W
      mov    si,8ah
1 @; ~! f. [) U' P' v9 r      mov    al,es:[si]! V. R% M/ y+ R
      call   Change
  z9 E* }7 r" Y" \; J      mov    cl,4
6 s$ B6 \& \6 J( }- Z      shl    ebx,cl
2 Q( H, T% p8 }5 O      add    ebx,eax
% M/ n8 s, K/ ]# @# j; P; _- L0 _6 U# M      mov    al,es:[si+1]* B4 k" A- `, v' P6 D
      call   Change; u6 [! }3 ~# e+ e. P
      mov    cl,4
. X- {4 \( g- U      shl    ebx,cl5 b7 @9 {% E  [* F9 v9 ~2 l
      add    ebx,eax5 [2 s4 b  Z/ z' f
      mov    al,es:[si+2]
; ^; v5 L0 O9 w; f" M8 r0 J7 G) w      call   Change) \6 R  I1 t; ^% u6 v
      mov    cl,4% F- f5 Y/ q1 a
      shl    ebx,cl! u( u: q! C. m7 g% K( B
      add    ebx,eax2 e2 ^+ K9 g* b4 Z
      mov    al,es:[si+3]
. c1 W8 X, l- B      call   Change
( w4 F( r: ?' G      mov    cl,43 U9 [' X* o9 N, u# U6 h
      shl    ebx,cl7 j5 u: t8 F' ]  M1 T+ k
      add    ebx,eax9 P0 U+ d# J( @" R- t
      mov    al,es:[si+4]( ?, Q: P: z7 ^& e, _
      call   Change
& p. [9 G1 }. _+ G1 _" @      mov    cl,4) I" r2 U) v. n) b4 Q
      shl    ebx,cl0 L% S/ s3 B7 u5 K0 g; H# b5 c2 H# u' q
      add    ebx,eax
: I! Z6 f8 N+ Z% S7 C8 p1 s      mov    al,es:[si+5]
* d: |$ M" i0 S( v6 a      call   Change
$ j7 Z; w9 V- m! V* |+ _      mov    cl,4
* M: m: M/ y" [1 C, w4 S8 E) c      shl    ebx,cl( @0 N: C. f, }$ i
      add    ebx,eax+ o+ s) X  l. S5 c% N; h% ?( o
      mov    al,es:[si+6]
- T1 w/ S& |0 l, _! W& j9 O      call   Change
% u4 d! t% A& H  e      mov    cl,49 q3 Q+ ?5 T  z" v2 v: h
      shl    ebx,cl
$ [) i$ i( N4 @# a1 m4 ]# J" Z8 \+ G      add    ebx,eax" y0 w: v* g5 _$ _- G1 F5 h
      mov    al,es:[si+7]; Y. o: n; w# m: o, O& a
      call   Change: k5 S$ ?+ E! V* o. Q2 R9 ^0 K$ v
      mov    cl,4
' X! k# J- j5 s. P2 l& M      shl    ebx,cl+ W, [2 q% A0 m2 S
      add    ebx,eax. V' b7 u( w; s7 O; R+ K/ q
      ret' m' f5 |! D' U& b! Z  o
DPSP endp( [4 I5 d* _, ~# V( B3 ]
;================================================================================================
. X" z; O( g5 _5 H4 D( A. {& ~1 `) mWDPSP proc near# r4 f, S/ K' _3 s
      xor    eax,eax
. T' `* I4 O* S      xor    ebx,ebx
& f2 q5 [2 F" B+ Y      mov    si,93h
, ]3 V  e1 c9 Z4 a2 w      mov    al,es:[si]
& \! w; O, q7 R& _( W9 c4 |5 {      call   Change
* ], ^- j) n) y9 n, e, m% j      mov    cl,4
  P$ Y' A9 X4 E9 @  s7 p& O! p      shl    ebx,cl
; J* ~3 f8 Y% f8 z3 U8 ~/ M, z* @, l. a      add    ebx,eax
+ l2 k; Z! u# X. w! V( }3 k      mov    al,es:[si+1]% `1 C! ?4 I2 ^3 V/ `- a
      call   Change
6 x: W# v7 h, A0 s. o4 j      mov    cl,4
2 y# A$ z" B9 \( W  Q8 T  b      shl    ebx,cl$ l) q+ Y6 ~; T$ x: y$ N
      add    ebx,eax- \- g# L1 S- B/ g3 _
      mov    al,es:[si+2]  k% D) q, y5 F: z9 q, `7 l
      call   Change, K: f6 b2 c. u2 o2 j# v7 g8 j8 d
      mov    cl,4
4 g2 O$ M, c. t+ o      shl    ebx,cl/ s( i; W0 [7 R- L2 W
      add    ebx,eax
  D( N6 W# g5 D1 c% O. P8 r  I      mov    al,es:[si+3]
9 g3 S+ ?# U8 U5 h      call   Change- H7 x2 C# W# o7 t+ K1 r4 S
      mov    cl,4
  v" T$ O2 t2 ~) ^4 w: U. P& G      shl    ebx,cl
3 C2 C5 O6 |* V/ o/ T5 @      add    ebx,eax( L2 P* @2 \- c4 L
      mov    al,es:[si+4]
8 i; E$ Z( ~. A' E9 L! T      call   Change. s- \% S4 s8 J' T" y# ]
      mov    cl,48 k) q4 M  ~3 e6 ?3 H) I
      shl    ebx,cl
  d- ?" U9 a; S* ?6 J1 f) m( a      add    ebx,eax- U# l$ F$ f' ]. z5 o
      mov    al,es:[si+5]% P2 y& z- R- M" f) v' S
      call   Change
; V. X* c: T3 R$ X" D+ Y8 F      mov    cl,4
8 f/ i# B1 R: `* e+ y      shl    ebx,cl
* g% q* ]9 y% P/ ?6 J) i      add    ebx,eax/ s5 h" s, @2 h
      mov    al,es:[si+6]
9 j/ D9 _0 F9 N) T      call   Change! M3 ]  u; f3 n
      mov    cl,4
& W0 y( s6 n' {# W$ |. Z* H      shl    ebx,cl
4 i! S, t, l3 Y      add    ebx,eax
2 b2 ?5 B5 i+ ^. T8 E  L# X6 g8 v      mov    al,es:[si+7]  w% U0 G5 s( \" f: A
      call   Change
: |& \1 }9 ^, }      mov    cl,4! |+ |6 E$ R" g
      shl    ebx,cl& B# K- {+ f4 W6 L
      add    ebx,eax
% A2 e1 R: X$ n5 N& P- `) T% T. [      ret
3 b5 j& g$ z5 h, z7 T" N. l& vWDPSP endp: P' k/ i# W& c! a& U
;================================================================================================. A5 q' ]; ?% U$ X
Change proc near# \# K; Y! I* d5 y( F
A:   
# G) Y6 K5 k8 w$ Z, A# W$ V: n5 L      movzx  eax,al
$ c+ @$ B$ R% r% Z4 d1 T" f+ s! \! Z      mov    edx,eax
% O4 r7 ?" ]6 C8 W9 ?      cmp    eax,'0'            
& z" s6 W' o2 H9 V  Q0 @9 g8 P% J; k      jb     A  j. {6 @' c2 ]4 B6 y
      cmp    eax,'9'            
. L* ?( @: X1 }) a      ja     B
* W: P6 y8 G' @: A% P3 Z      sub    eax,'0'. v% n# @1 N( w* v/ q5 h# B1 ^- {7 u
      jmp    short E' u0 N( O% p( ?, ]  p& H
B:
$ V" z2 e7 y3 {" [2 D' W- Q      and    eax,0dfh           # P- a3 {; V6 g: z, F: ^% v& p
      mov    edx,eax. t- G. z$ _5 |' ~( q) }
      sub    eax,37h            
5 c* \7 N) z9 c      cmp    eax,0ah
4 K$ T7 T0 Y) \1 G) b      jb     A                  
0 ?/ S- I$ _  t      cmp    eax,0fh5 C5 ]9 P: V! o# Z6 }0 a  F6 z
      ja     A                  
" O. f$ s! |2 J6 O& N/ EE:
3 H& Q" s2 O$ O$ c; B      push   eax       - D7 u! K2 g, T1 E
      call   PRT                ! }* c5 R9 {' |, g. w7 B' [0 k
      pop    eax1 G. j$ l1 V" b
CExit:+ q4 T, |" N3 k
      ret
* T8 E# u0 k9 @$ b* s5 cChange endp/ E$ T, M1 Y6 x+ L
;------------------------------------------------------------------------------------------------8 H2 }9 s- F2 w/ Q7 W/ `
PRT proc near- F* r! F' f8 R1 x
      mov    ah,02h$ W$ S( v0 R- G: f9 U9 C0 w' e
      int    21h
/ R  f3 z: ~6 b7 X! @" W      ret
' C2 {: e# o8 D* QPRT endp" m8 S' O9 J/ ^
;------------------------------------------------------------------------------------------------5 `6 y% R1 Z4 }* a& s7 N
crlf proc near
9 F9 Y) {( E2 ^! _; ~; p4 g8 ?( X4 x* Z      mov    ah,02h4 p* \3 U- r# x- s2 n/ f
      mov    dl,0dh. I8 x3 M  w0 ]
      int    21h
+ x4 d% B$ K. S7 y& v  P4 ~      mov    ah,02h' Z, n0 Q/ m8 v- b* d  _% ~
      mov    dl,0ah
+ I+ X& [1 r0 G. @      int    21h
" D* a: ~" B; `# N- v$ `4 `      ret
( @8 |+ `9 T& ]' V) \crlf endp" s$ Q, B4 [- \
;------------------------------------------------------------------------------------------------
* C6 H3 F0 \* G; T, _+ U3 i, M% [_32bits proc near" K( T8 ~$ D2 x: G
      pushad
# v  o! s) W& V      mov    cl,4
' _& ?0 S& d. G- {. Y5 @. H0 ~0 F      rol    ebx,cl5 r, q9 O/ ^% t) f2 j2 `1 [) d; ]
      call   print_4_bits
, k9 |& r2 x5 ?- y) E$ v0 {) U      rol    ebx,cl
; J9 L; Y4 p) k$ e" F) s' Q4 q      call   print_4_bits
. K% Y: g2 ]* e      rol    ebx,cl
' D. M4 B1 @# w: i      call   print_4_bits
4 |  U: B! r0 @      rol    ebx,cl
: ?1 I" _* |# K      call   print_4_bits
5 n3 h- y. S+ j' F- Z/ [      rol    ebx,cl: N  O) J8 w% g
      call   print_4_bits
- E4 K' k) H# V) A4 h2 p      rol    ebx,cl7 r! ^. M+ `" R2 [: G3 c
      call   print_4_bits
. U: b2 W) f, \, ^. r# T      rol    ebx,cl( h2 W3 \1 s! S
      call   print_4_bits
  S7 J! e  ~3 i7 e      rol    ebx,cl
. R- N+ B! k2 X      call   print_4_bits
8 t, y; E$ t+ P! [6 W; F      rol    ebx,cl
" O4 k+ F' h$ B' t$ W      popad
' ?% }& R, Q+ [( e* ]1 i      ret1 h) I# @' I* S. c5 [3 o0 i
_32bits endp
( b% t( N$ r! m$ R  g1 \8 M;------------------------------------------------------------------------------------------------
, }- O4 B5 |# M6 _" u, O_16bits proc near
  L! `. [% s: Z) Y: o7 |/ t. n      pusha        5 ]# S& `6 h& A7 J6 S5 L8 p" \% A
      rol    bx,cl8 c8 m' B/ D# W( @
      call   print_4_bits. R- p. E* f4 u7 W' c! @" ^. T; P) N
      rol    bx,cl
& _* t) Z5 n! L- I. O4 s+ m      call   print_4_bits0 G4 @! O3 _8 w) k
      rol    bx,cl
! Q6 z4 Y" O% B" j( P      call   print_4_bits: Z2 U$ w8 }# j$ u  @/ ?% W
      rol    bx,cl  s% v% x8 V& u% F9 N: w: j
      call   print_4_bits* z2 Q: ?! \- Z$ S# n6 Q
      popa
. b6 Y$ Q3 l) G      ret
1 H" Y9 `5 d; R& E; f; K7 [_16bits endp
+ S& N. Z1 l0 a% j+ _1 T- f! V;------------------------------------------------------------------------------------------------& L; S0 ^  b( ?# k+ T- o
_8bits proc near
& m  }3 E* N3 [0 P% R      pusha        5 \) L4 D/ u  q3 P
      rol    bx,cl
4 l0 b* \& m0 z2 a. u      call   print_4_bits/ W6 A) p  F" _
      rol    bx,cl
( t: U. W5 S9 k3 `+ L      call   print_4_bits
' `4 {. y6 i$ E% G! r! p( q9 T      popa
% \1 e3 {- o; t' @* \: K" Q  c6 i      ret
1 m- ]' \+ V& _  K5 k! W0 U_8bits endp
9 m! W# u3 t% V7 bprint_4_bits proc near
- F4 S/ O- B' t0 {* p, A1 ~6 L      mov    dx,bx0 E4 I$ e/ b. h: d9 I
      and    dl,0fh
  @* l, \( j# Q7 e0 ?0 N2 I" ?      add    dl,30h: R0 F5 p* ?6 y- t
      cmp    dl,3ah( B' V3 t3 H( w
      jb     print
& Y3 q/ m- U& r- D6 o/ u      add    dl,7
2 M) [$ Y* c* ^/ bprint:  # T. M# g* H: \$ D8 H$ @
      mov    ah,2
5 ~( [& H+ G6 F5 P) G      int    21h/ h" r8 P( h. O, n( z* j. a
      ret1 A7 m" G: G! K6 k5 v8 J6 n
print_4_bits endp    ( h" R& R' V/ U" D1 L
CSEG ends+ D" V+ ?9 j/ E, H! e
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-10-12 08:07 , Processed in 0.054808 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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