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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)* T4 ^" `' a* E7 ~

5 J, }( {; E, ~" Z則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'& X3 U1 b$ ]4 ~5 t" Z' z
, R& R" q/ f& q% _- d5 t9 `. W5 h2 H) F
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
/ W1 K' p  @% m! \. c( c0 L" s/ n9 r* Y0 ]  C
.model small
. w1 `; A) z" d  q.386p
# L9 D1 h0 X5 q! W0 yDSEG SEGMENT USE16'data'
9 J( B2 n7 |6 B) o( Y& ]5 F! m
$ `" N  D2 ]5 d6 z! |; [DESC STRUC
6 Y  K7 H% t# H1 m8 |     LimitL DW 0 ; q: t) e) e5 F4 K+ D' E4 E
     BaseL DW 0 6 b1 ^4 a' M/ r; l
     BaseM DB 0
0 P& p3 E% K8 Y% k8 H& |/ _     Attributes DB 0
# v# \+ {# g$ v/ ?     LimitH DB 0 ! O/ u& i6 M3 n
     BaseH DB 0 2 L9 v+ a8 m$ i0 W
DESC ENDS1 ?1 A1 r$ h. h& ?; k: j5 Z
! v8 y; k: ^" }* b
PDesc STRUC" ]: p- A4 K3 l3 ~( T0 r4 ^8 W
     Limit DW 0 5 N( r, G! [1 p
     Base DD 0 ( Q2 B) _3 s) }5 w- X8 W
PDesc ENDS( y. a/ O9 t, z0 `/ Q. V
3 J, ?( `2 B- Z$ N4 [2 E9 i1 l
GDT_def Label Fword# m0 h$ B  n2 T: u6 X
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>! a( B% ?' |6 e$ \
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
2 U  J6 K- E7 j% G# E' I- {GDT_Addr PDesc <$-GDT_def-1, >8 E1 L! G: T7 D8 A
3 x$ }4 N) H, A6 W" p' Y
Maddress Dword 0
) A) `9 E  j1 j0 B* G. S! J. ~* V/ f6 v4 R
DSEG ENDS 5 K( C; _. D; _
ASSUME CS:CSEG,DS:DSEG2 C, \; ^/ J- k! P0 S! d

' }6 u8 I3 A5 s7 [( r) J) ECSEG SEGMENT USE16'code' & ?- C; J5 @7 f1 f- P6 ?
      push   ds
' \9 P2 j  F3 m' }# a7 s      push   es
8 b5 g& V+ W' \4 {1 i6 v      push   fs
# j2 T5 _; u; ^4 x      push   gs
; [! J6 p) N3 q8 w" Z) c      call   big_real_mode     
+ {! B, u6 I! {" d8 Q, O3 O3 N$ {      call   Get_Commandtail- s# |' V- O( r) y, y0 ?
      xor    ebx,ebx
' \$ c$ w9 n! c0 T  |6 f3 A      mov    si,82h+ [5 Q! e7 F4 a) G
      mov    al,es:[si]
! L& G2 R2 C9 T8 ]      cmp    al,'r'
' I1 O) i0 m8 s- J* ]9 L      je     R) `: L1 ~7 u0 Q( I7 {
      cmp    al,'R'
! r$ K  e- Q6 r      je     R
$ s" g) `+ q  Y! m1 G) y      cmp    al,'w'& ]9 w8 A  w) S0 d( @" m: u
      je     W
7 Z1 }- b/ ?+ p      cmp    al,'W'' ^8 c! E  \4 V9 ~4 x. c
      je     W          4 n; P# i  H  @2 z  H9 a# J/ r
R:
# t5 ?3 V5 s/ ?$ \# \8 f7 J! W      mov    si,84h
8 b$ u6 x5 `6 _3 x0 ^' I0 V; A      mov    al,es:[si]
5 }" L. W4 D& C! R      cmp    al,'b'' n( P/ _( T5 @! |. D0 j7 ?( B% A
      je     RBT
( X3 J) n: y, U$ [* ~      cmp    al,'B'
! B5 z( f% E9 K: E2 ^1 f# M) I      je     RBT
# U* o: ~3 z3 v) g- W      cmp    al,'w'0 R( |9 ]% `0 ^' R0 A' U" \
      je     RWR: B. t- t( Z( J3 x& y4 |$ P3 K
      cmp    al,'W'7 I: |% {. \  I1 {
      je     RWR
( O' M5 \# z6 H6 T/ y8 s      cmp    al,'d'$ c3 h: s: K. a# ^
      je     RDR
9 S# e/ f+ D7 z: B      cmp    al,'D'
: V4 d: ?# C9 E2 K" [4 }( j" [! M      je     RDR            
/ ]% }8 q, k3 L9 R2 nW:      5 t6 G  T5 r$ m
      mov    si,84h( Q9 w" s' t: d
      mov    al,es:[si]& i7 i3 N& |" D3 m
      cmp    al,'b'- W( f) ]* u' m" H. `
      je     WBT; \8 H7 B  L* D. X
      cmp    al,'B'
; }* h8 _  O$ E, K7 B$ j; f: ?      je     WBT
- V1 N; P) m# Y( e$ n8 r      cmp    al,'w'
! X; H; D' k7 a5 L      je     WWR
" b4 \, j6 |/ ^( k$ T      cmp    al,'W') s5 E& a  ~3 r, |! U: k3 W; X8 |
      je     WWR
/ [) z# r% H  z9 @# R5 P      cmp    al,'d'
* z- d" e8 _1 B$ V, @      je     WDR& a& T( K) ~* w) `, S
      cmp    al,'D') i2 @3 Q4 p1 e2 ^
      je     WDR
) Z9 c9 y# o8 o8 M; JRBT:
1 _9 }% I1 r' k2 B1 F/ z      call   PSP        9 R# W- g# {6 m. N1 s7 l
      call   crlf           # H0 E- k4 r* m! E7 M5 J* ~6 t( |
      mov    esi,ebx
+ P0 T/ g: c% i% b, c  G      mov    eax,fs:[esi]2 K& o6 t  k8 [) q
      out    80h,eax. R4 [7 a" |2 l, {3 Y  X
      mov    ebx,eax
2 h. V4 [8 x+ ]# I2 R      call   _8bits
$ V% c2 H) {3 F4 D2 Y6 `      jmp    Exit
- G% |; J2 k2 E* CRWR:
8 L* ?6 m6 l# o      call   PSP        
6 \- M+ j7 t3 i# u      call   crlf           , i# N' v2 n  F
      mov    esi,ebx
7 V5 @  t4 z: R' S7 O! a      mov    eax,fs:[esi]- Z6 h: @" E& i3 ^1 T% |/ M5 b5 C/ x. ^
      out    80h,eax
5 D6 x; i' I0 a! l! R  C      mov    ebx,eax
" q# v/ m$ ~  |* \  ^      call   _16bits
4 E- Z  w5 ?. Y. G' `6 m      jmp    Exit
$ D, F2 b; r4 I% t  ZRDR:; `) d! U3 z4 e/ k% p
      call   DPSP        # `, h' D5 d  X/ s4 m8 X
      call   crlf           
% C$ a1 D6 \! i      mov    esi,ebx% K* M6 S5 H- h3 O3 i
      mov    eax,fs:[esi]
" t- I! A/ a2 B" v1 G      out    80h,eax, G: u. x  a- K
      mov    ebx,eax
: h% ^. S8 q: Y      call   _32bits
" u- C( k+ a% h2 S$ E      jmp    Exit5 A$ o* s6 p8 j
;------------------------------------------------------------------------------------------------
# f7 c/ @; Y1 LWBT:
+ i; @$ X- e' l/ h; R: e2 G; F+ B      jmp    Exit/ V9 {3 G% \+ ~1 y7 s
WWR:! N" R& \0 l! ?; G* Q
      jmp    Exit
0 A) S6 m6 h" L4 Q2 SWDR:
; ~4 y& w" l: k1 M' ?      call   DPSP) `! b+ N+ W8 J: Q7 b
      mov    Maddress,ebx      
3 W# Q$ W  V( }  Z      call   crlf0 X, C4 c, K" j& A
      call   WDPSP4 [1 I( N) E, t4 _# Q
      mov    eax,ebx
/ I5 a6 L1 g# P$ w. E9 {      mov    esi,Maddress         
% ~6 Z$ c3 E. B2 _$ O4 e5 {      mov    fs:[esi],eax
% B8 m5 p! `% C  r' `+ E      out    80h,eax
& A9 r# C% z- ~5 \; e5 D: x      jmp    Exit
* u# g1 L; \* C- ]  S* ~;------------------------------------------------------------------------------------------------       , c& F3 k2 W# p; k" O+ |: m1 M
Exit:% C" Y( I0 J' h2 d+ Q
      call   real_mode     7 C6 B0 d/ K% Z# U$ a
      pop    gs' v: Y$ j6 w: J% T' `2 Z
      pop    fs0 Q4 d% F! s0 _8 C* N% S
      pop    es! o6 ^, L5 {" |+ M, E0 S
      pop    ds      
5 \7 a6 p5 u: O. x      .exit
/ W7 [- L" S& c/ L;------------------------------------------------------------------------------------------------2 Y8 q7 W, a+ ?; V! G* v
big_real_mode proc near3 i( V1 H) o/ ^& k
      in     al, 92h
6 Q2 k( I3 ?- O, I0 S      or     al, 002
8 {: @9 ^- a5 u  w      out    092h, al* z& G$ e, ^- r+ @4 Q; r0 b+ K
      out    0edh, al
3 G1 B! O5 V$ |7 }) \9 {/ @# P      cli3 {+ }2 m0 Q) e, Y" A" n& e
      mov    eax,DSEG  N! J9 z# v, r, @" b
      shl    eax, 47 Q3 ?0 I7 W9 b# ]5 p7 K' ]
      xor    ebx, ebx
! e% G2 H* M8 g      mov    ebx, offset GDT_def! b- h( I) u* L2 v  P
      add    eax, ebx
2 E$ U% b- p9 A. ]% f: M4 j8 T      mov    dword ptr GDT_Addr.Base, eax
! s7 ?6 X+ f1 T' [3 ^      lgdt   fword ptr GDT_Addr% J: i! U7 ]5 {: q" g* Z3 E1 }
      mov    bx, 8; J' M3 f& H4 g- n
      mov    eax, cr0
1 f: g& [( C' F! I% X' p8 e0 y$ `      or     al, 1
4 F' \2 Q3 _) J      mov    cr0, eax# o7 k4 g1 x4 g3 ]* O) @6 N+ V( ~
      jmp    PMod6 r6 ~/ L$ l( R. E% Z
PMod:
2 |: z' i: J8 g5 N4 y9 r      mov    fs, bx
2 F& H2 r  X) R0 }      mov    gs, bx
1 F, J6 ]. Y. W3 \( H7 q      mov    eax,cr0* \9 y/ g* G4 W5 q/ J
      and    al, 0FEh: X" k3 T. m+ b1 P1 \
      mov    cr0, eax
: V8 o8 T5 y% {/ c/ _" G" L      jmp    RMod
; r  ~5 E6 p# j0 @; U' c( `RMod:
1 ?/ Q" U8 m3 o" b6 o0 Y* Q! Y2 P      xor    ax, ax
6 n5 {4 f& I% U5 M0 P( {      mov    fs, ax
/ Y% K1 V+ s" z      mov    gs, ax     8 O. V6 W# P9 n- h# y/ J: ?
      sti     8 q: X/ o6 `$ V
      ret- L& e* Y3 t" _/ R8 p1 U, ]
big_real_mode ENDP3 A5 X. y6 C; q. f# z
;------------------------------------------------------------------------------------------------
# q% y/ R; S6 ?6 R( K7 Kreal_mode proc near  a" J2 C. g- ~
      in     al, 92h
$ E" e( d0 f& @+ V$ [      and    al, 02
" f& L0 t; D. t, Q8 y5 J- R9 F      out    92h, al   
8 u3 R+ X% V+ k; S2 G# c- x1 Q" i      ret9 Y) [" B$ H7 R4 b) ^8 q
real_mode ENDP) W0 ?" e+ ^( y: p4 b+ y
;------------------------------------------------------------------------------------------------7 Y0 X4 K- i# }# T! C% n6 f
Get_Commandtail PROC near
% ~; [1 x' m  C2 ?/ B2 m0 T      mov    ah,62h / u! W1 Q: l% L% a% j) \/ J
      int    21h
( b7 A3 F7 b4 `1 Y" x      mov    es,bx3 U% k7 q5 }: }; K1 k/ J
      ret9 c* y& t* h$ S" d2 q) \3 |
Get_Commandtail ENDP    4 ~3 E+ _$ v5 \2 [! m3 U; t6 f
;------------------------------------------------------------------------------------------------
, s; E! p9 Z" a, @  w* bPSP proc near- L6 M; A$ K; B  m+ C
      xor    ebx,ebx, b; M6 e( f. x! k, }7 h9 l" A
      mov    si,89h
  f3 |$ G+ Z" V3 u" `      mov    al,es:[si]
  ^* I9 h& U+ O2 Y      call   Change
8 F& Q- [" `" c6 G% c      mov    cl,4
5 f" k9 r+ Z0 {. e' @3 C) g      shl    ebx,cl
9 p0 m/ l: K8 Y# E1 F      add    ebx,eax
9 M+ ~5 M# E3 Q7 U2 k- y6 u3 d      mov    al,es:[si+1]
+ W6 g/ z; O! K: U1 s6 b/ n$ v      call   Change' |# C2 U" y/ f0 e1 p; |$ C
      mov    cl,4
, ]* t, V" K" e. m      shl    ebx,cl
) [3 a- C+ C7 {& @+ ^# A. S' S. \      add    ebx,eax+ W, f! N: p, b: e( p+ g
      mov    al,es:[si+2]
; C) |6 p$ `( m      call   Change
; a+ L+ T" f7 |5 ]  ?      mov    cl,46 Z4 x) H4 H# p  P; V. `4 |) j" i! ~% t
      shl    ebx,cl( i- v( X/ A4 R# ^
      add    ebx,eax& k# n8 }& V, y8 R* Q
      mov    al,es:[si+3]0 N, `$ S$ t# X/ e
      call   Change' k. x2 N' a7 ^0 b. P. E" k: ^
      mov    cl,45 C) X( E% q! h0 r2 @
      shl    ebx,cl* o7 v5 S) D! X: z# R
      add    ebx,eax
& o3 K/ m6 C. \6 b7 J) f      mov    al,es:[si+4]5 m1 [8 f( Y" ?% S. P2 C
      call   Change' P. B8 ~* S( |+ {* o8 C% _
      mov    cl,4- ]9 l1 `; o* m( b$ ^) M1 [/ [' g
      shl    ebx,cl
/ r0 a4 B5 j* {& @1 K  W2 A      add    ebx,eax
8 E# ~; s* W$ j' x      mov    al,es:[si+5]
4 Q# Z/ f, s7 b/ E/ |$ j  O      call   Change: l! y  H6 ?: O& q- G% Q" [
      mov    cl,4, [2 \' w3 B+ ?! b: Q) [. m7 c
      shl    ebx,cl* Q; j9 w! ~1 I! I2 L
      add    ebx,eax
6 |* @# {8 G" [      mov    al,es:[si+6], d, [* x8 ?( `3 I$ E2 Z* S, O
      call   Change
  d; x9 S. B5 m8 h, ~; N      mov    cl,4
9 b# j: Y; f2 _/ Z      shl    ebx,cl! y) i) m( G* S( `# h
      add    ebx,eax
# A& F0 d5 q9 W" f3 i! f# i      mov    al,es:[si+7]5 M4 r) j3 E2 U0 F
      call   Change+ V7 C* W( m1 k' Z9 {% K$ d
      mov    cl,4+ _2 J' K7 i* X% w
      shl    ebx,cl! a8 g! [! U, p
      add    ebx,eax
' ^8 h. L) I2 l2 L  ~8 s( p      ret
$ ~1 ?# c" `0 O$ a, iPSP endp& h7 p& X( I. y8 {3 x( e6 ^
;================================================================================================8 }' {8 l; o5 i5 i( B
DPSP proc near
; p* B& @2 h2 z3 t" i3 a3 a      xor    ebx,ebx
8 Y; ]+ ^) G& H0 r4 ?0 [+ z      mov    si,8ah) I  E! w- X3 W
      mov    al,es:[si]
. h( J& K' p' p/ b" m% U0 G/ }      call   Change# ]. S. ~. U% X
      mov    cl,46 R! k, H8 l; e( f. ?& b6 Y1 N& |
      shl    ebx,cl; ~- X; X# k7 j$ l* ^6 l
      add    ebx,eax7 Z' J9 U3 y! F* I- p
      mov    al,es:[si+1]/ v7 w8 T# x! k+ A5 b9 v3 s
      call   Change
8 F/ o0 w0 k4 N! y$ z  B# p      mov    cl,4
0 S- Q7 x; ^& l% A" G0 x" |1 K      shl    ebx,cl
: R( N$ P  l6 Z6 E9 ]      add    ebx,eax
5 T6 _* d" C8 k, u      mov    al,es:[si+2]
: t0 F" R# @& D8 A* ^      call   Change
& j5 J2 _9 z* o0 y% R- v5 r      mov    cl,43 V" j$ S$ j( ]2 G5 M  h& D' I
      shl    ebx,cl
) M" I- s% L2 p2 |8 K      add    ebx,eax
6 D2 N& z1 C$ a! q0 t- W      mov    al,es:[si+3]( |7 r& i$ b3 a4 u6 C" y; {
      call   Change; s$ ]/ F5 V! [- r; R# Z7 t, D4 A
      mov    cl,4. N& }# @" m* D. O" N4 r
      shl    ebx,cl! O9 ~6 E' a8 H
      add    ebx,eax
0 M0 M' J* @1 ^$ D3 f% l      mov    al,es:[si+4]: D  a& H8 B' B* b/ C5 d: ?
      call   Change
+ v! ^/ v* f6 t4 K# `) z- \7 P8 X1 i      mov    cl,4$ C7 k7 I5 Z  M
      shl    ebx,cl
7 i& E* l1 a3 F      add    ebx,eax
8 `  Q* z1 s1 i5 B9 H  i      mov    al,es:[si+5]6 k# I$ Q( Y6 p* M( j6 p1 I
      call   Change# {6 u0 U0 W$ S% W2 l: T
      mov    cl,4
- _6 @9 e5 l5 o3 C      shl    ebx,cl6 c1 p7 G% K  d
      add    ebx,eax
9 A3 u! V3 r7 a0 x/ Y( ]) [& B6 Q/ ?      mov    al,es:[si+6]
4 c& O: K' I7 h1 W; t      call   Change
1 t2 `1 L, [" K9 b      mov    cl,4
8 W( J* a/ e5 g  z$ w! J. T5 `$ S      shl    ebx,cl
3 K$ J4 A) x" b0 Q9 e' Y. C/ a- q      add    ebx,eax
+ s2 m, P' z3 m( g+ @# T+ B  w; _      mov    al,es:[si+7]
# {1 `8 @  d( r' g2 W; D3 \      call   Change' P1 F; b' ]+ l/ x
      mov    cl,4
% A. \* W# k) D      shl    ebx,cl
5 O7 L% G! m( U. t$ i5 H' U! h      add    ebx,eax
/ v) T! t$ Y+ B. Q/ o* B$ g! h" A) j      ret+ R) u$ I5 Y4 g; z  e6 t& A5 X
DPSP endp  Q$ P/ Z* ^* W9 e% ^, u
;================================================================================================
- p- X3 p1 y6 r' T& dWDPSP proc near3 j; R! ]5 l. e4 \( j" V" S
      xor    eax,eax( D6 M% g! k' D. }; E
      xor    ebx,ebx& g, B: c+ P% Q, A8 o9 K
      mov    si,93h
! Q& s! i6 h$ e; @9 R/ j4 P+ ^      mov    al,es:[si]
2 h+ u4 w  n, G; O2 C      call   Change
3 @" y% l) [, c# d      mov    cl,4& m# C' K: u  J& Q& `
      shl    ebx,cl9 d) B# V* Q  u+ \' Z# V4 d
      add    ebx,eax3 _" m# ^: ?* T1 N6 U1 g. t+ o: l
      mov    al,es:[si+1]; o5 \9 }3 G9 C/ U4 o7 O0 n8 @/ j
      call   Change
# ~6 x, J2 Q$ T& y      mov    cl,4* S& F' A7 w8 }' @( E8 R8 `
      shl    ebx,cl  w! J4 \' B& j( f. O1 |* n9 D7 v
      add    ebx,eax
& {1 d- ~# ?2 Z6 L- z( H      mov    al,es:[si+2]) y- n. q$ D) w" }3 }9 a& O; ^" N6 r
      call   Change8 `) q$ @9 P5 k2 G# q. j
      mov    cl,4
# W# g  E+ W2 P+ P3 r3 G% g, |3 y      shl    ebx,cl! I$ G3 t7 P" ~) G
      add    ebx,eax
# F; Z5 E8 L2 S2 f! }% {      mov    al,es:[si+3], e3 I8 K, `) x8 ~8 R( t8 S; O
      call   Change
! s) \+ j* H8 P4 Z8 J  Y( C      mov    cl,4
2 T4 c# {9 {* _+ U0 U% P      shl    ebx,cl
6 b1 \0 H0 Z( A1 D4 T      add    ebx,eax2 t; T4 |5 b1 E0 Z) s7 I
      mov    al,es:[si+4]
/ \/ W( Q: o! l+ o4 W8 M      call   Change
! F) g  o  a4 v8 y) ^      mov    cl,4
6 B& T9 B0 N+ D9 \3 }      shl    ebx,cl
; X. ]  |- z) k6 T6 l      add    ebx,eax
# V  h& `) K. J9 m& ^& K! k      mov    al,es:[si+5]
$ W' X% ?' e( t7 r9 S      call   Change
" i  m4 y* @1 Y  o0 v+ Z, J      mov    cl,4
$ F' I( q3 A" I2 a1 T0 S      shl    ebx,cl, D& N& }& M) y3 R( H2 W
      add    ebx,eax
5 R4 E: l, y7 x2 [2 g: M; w5 e      mov    al,es:[si+6]( n  s( I: S" G5 N0 ^4 y
      call   Change
3 q) |4 d8 Z6 v/ @      mov    cl,44 u4 G  F" P# D! B& c
      shl    ebx,cl
7 w  l; U: s' m+ e6 j! n      add    ebx,eax; M# z% E5 w& A
      mov    al,es:[si+7]
1 u7 L. M6 k+ |, x' s/ G      call   Change( X7 p9 D: Y" k4 y
      mov    cl,4: `2 E/ |5 ~7 d! b& Y. d
      shl    ebx,cl
; i( E" v1 F0 B' X- g' `" G      add    ebx,eax' u5 \8 d+ ~5 [2 ~+ t( Q/ R  C7 T
      ret
4 w! }( _6 L' f$ dWDPSP endp
) T+ \& v2 A! t- H# D;================================================================================================: N2 ~# d$ @/ N* L) [" ?& k
Change proc near
' o. b" ?& n( c# a: SA:    ( F# L7 t2 \, ]  E! g% ]4 M
      movzx  eax,al6 ^: _8 m; ~* ?9 m
      mov    edx,eax; i4 O3 L* J0 S' E: ]/ v9 d, g! }
      cmp    eax,'0'            
6 |1 T: }; X3 R! g5 w; ^  ~      jb     A
( f2 D0 B  N9 a8 H" j/ t      cmp    eax,'9'            
3 }( A. I. g2 F' K1 T+ Y      ja     B
! a$ @" }* V7 U9 J! M      sub    eax,'0'
1 X) Z( s# ^1 I      jmp    short E
4 X# b8 ^. N$ k; I. I( v- ]' }# mB:
: O8 W8 L! ^0 |/ B3 r7 I      and    eax,0dfh           * Y4 |2 l- w% N( H3 p6 ^
      mov    edx,eax$ u) c7 P( a  Q, w+ x! }
      sub    eax,37h            6 V+ J4 K+ q. N8 B$ e% w- K
      cmp    eax,0ah
* M& p( ]& N0 s" ]8 Q& p4 b      jb     A                  
' ^2 t# |8 d  Q0 M, H8 ~; z      cmp    eax,0fh
9 {' }2 `# g% h! n( n      ja     A                  
# k8 K  k; H1 q$ P3 ?E:8 n5 M# j, h" B$ k
      push   eax       " o8 g- I! t. y! V" u
      call   PRT               
( z7 h& k$ B7 A  @2 t' L/ {9 B: C( R  Z      pop    eax$ Z0 F. W) z' X) t
CExit:) F# m2 p) A. y5 O
      ret( `6 w) A6 K8 C5 W6 f- Z& P9 y
Change endp
1 u7 }; u, J" V& Y; z;------------------------------------------------------------------------------------------------
' k0 D( w/ h' X3 ~" b' WPRT proc near
& Z' ?8 i. ^% z+ W      mov    ah,02h
/ \: F4 c. N  s8 Z7 H" W+ v/ F* _      int    21h4 _6 g7 Y! W4 f: i1 I
      ret
( B; O, W* q4 B; {& KPRT endp
3 C8 `- ]% o3 Q! A5 k" i3 s9 E0 R;------------------------------------------------------------------------------------------------; v, T2 y6 h+ L" f* q( G
crlf proc near9 S; {/ S6 A3 F8 W
      mov    ah,02h
4 g2 K" x6 J+ V" M/ \3 L9 x3 I3 F      mov    dl,0dh! |, e! @; r8 r
      int    21h0 \  }6 a, |1 G- f5 J: l- K  k
      mov    ah,02h
0 v: b) ~1 n3 A4 ~      mov    dl,0ah3 d# ?6 {& R/ X! }8 N
      int    21h
* C4 e5 y  V* i+ f2 Q8 J      ret( }; o5 U. u9 K- x& j! p. A8 ~
crlf endp8 u9 G6 p9 j# e. r; D; |  J2 \
;------------------------------------------------------------------------------------------------0 Z/ k7 E: @, B" r
_32bits proc near. c: Q+ E4 Q* ~5 Q6 \3 b3 M! |
      pushad
9 J: M7 L+ L, Q7 p2 ^$ D      mov    cl,46 w, T% S6 t! ^5 a$ j8 |0 g1 w
      rol    ebx,cl
( Z0 S! a( F$ k% h      call   print_4_bits
; b& A# V/ L. B) {# J# u      rol    ebx,cl3 i/ L: T1 i& U5 }( h' I- {0 U
      call   print_4_bits
: }$ h: m/ y$ X      rol    ebx,cl
& k; x( g6 D7 R: n$ m      call   print_4_bits+ A5 b  g& J; k* ]9 _3 ~0 V; J
      rol    ebx,cl
- {, @/ Z# j- V" ~: ]  o' y      call   print_4_bits
3 _* v' V- s' k      rol    ebx,cl3 b& [" o4 G; v9 U: G
      call   print_4_bits
6 u" r0 N4 [' k0 L7 O( o      rol    ebx,cl
+ n5 O2 P2 N! l8 ~      call   print_4_bits) O1 m5 U$ X% q% N$ X
      rol    ebx,cl. |# {, T$ p8 w! ], O; j& T8 j* v
      call   print_4_bits
9 I/ G, ?9 }) T" Z6 `* \$ X      rol    ebx,cl
4 l' m6 E6 W2 K2 X1 A% V# G2 \      call   print_4_bits# d1 [+ |% B  |4 Q3 v  c
      rol    ebx,cl
7 D$ j% G5 ~  F6 g1 l  W      popad
* t  l( X/ z4 E3 h. g" J/ n      ret' _+ x( o  M+ _% u, ~! G8 r0 D
_32bits endp
1 f1 \3 K+ @! ~8 L;------------------------------------------------------------------------------------------------
- \/ X! X- x, p; C) ]_16bits proc near; C1 g! p! P, {$ T9 i. N
      pusha        
! `$ c" z5 ^6 h( {9 V! z- S      rol    bx,cl
+ W3 Z% G9 m8 i  j2 A      call   print_4_bits* L, k6 A+ i+ V. a- m8 g
      rol    bx,cl
( e9 c! }+ B' L1 o( J: |      call   print_4_bits
8 g2 D# ~4 Q8 i( w6 k7 O      rol    bx,cl
4 O8 |( L% j6 R+ ]      call   print_4_bits
+ B8 R; ^7 X( m; `. q$ \, v7 p      rol    bx,cl- w+ `" v$ Y$ q6 r) |
      call   print_4_bits6 h6 z$ A( z/ Y9 a+ L9 j% V, C
      popa
( i) M! L1 O$ O+ J& \2 Z      ret1 T' E3 ]  ~; C) `; {  h) @
_16bits endp6 M- k8 K1 T' g, Z6 c( m" j: W
;------------------------------------------------------------------------------------------------  Y7 H; y6 l! l
_8bits proc near$ H5 @9 m7 d# k1 Z1 B& G) H: C7 i
      pusha          C& {) G: H, T% p9 X
      rol    bx,cl6 K. P' W- g4 g
      call   print_4_bits1 t/ H+ Z6 Z. v1 o: o
      rol    bx,cl4 _) j+ u. ?* Y6 B
      call   print_4_bits
" v7 D! A* D1 a3 L      popa  Q0 G3 L& O# ^
      ret
+ ^0 [7 U6 k$ H" w/ w, n' S_8bits endp
* K2 [3 S' V. W/ O$ ]print_4_bits proc near& m& e4 l8 g2 n3 P! E
      mov    dx,bx
6 N" l- n6 u6 s: _$ R! P9 D9 T      and    dl,0fh, H, O8 |* S$ ]) Y) I! |
      add    dl,30h
7 t! z( i) {9 Q* U6 T      cmp    dl,3ah! E- j, s% }; G- d* G; k9 Q
      jb     print
- y! Z: S5 z, ~      add    dl,7, h% w. i- K0 f: N, [
print:  
5 }6 v& S. i& V: i3 L      mov    ah,2
& g  ^* x; t, f9 i8 j- c5 _  W      int    21h
  E/ j- a' i" k0 R  H      ret6 T& X) w) F" ~% [. k% p2 j
print_4_bits endp   
+ y) R$ R  d$ nCSEG ends
- m  v3 w. d: [* d9 K, G, x3 KEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-9-18 20:08 , Processed in 0.871281 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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