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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)+ [# _! Z$ j8 G% t
$ o) \" H9 ?/ k5 [/ M
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
8 V! T3 V. @8 M- d4 e+ S9 Y/ Y( p$ K$ Q
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  6 H! s* U1 y( Y% Y; f$ @
. u; L7 ^$ f9 Q
.model small  g4 @( \" m  n- o1 S8 C% d
.386p; K& s6 N2 ^& Y! J1 C
DSEG SEGMENT USE16'data' 9 g9 G0 m6 G- {  k
  P! R4 o' V6 q- g! B% }+ H* G
DESC STRUC
: B4 _) A# `: Q# `# P2 g     LimitL DW 0 7 x$ [  E* q9 o! d9 W0 c
     BaseL DW 0 ) p8 ?2 W0 ^# B& U# [/ v" j
     BaseM DB 0
, ]; {3 l! c. X     Attributes DB 0 , w8 `! O5 O7 T8 u3 X$ z
     LimitH DB 0
4 q; W8 w4 O9 u  z     BaseH DB 0 % {/ A7 u! {/ F$ ?4 p) r/ }
DESC ENDS
( |2 M5 z0 a- A5 o. c
, X1 h. s7 \2 l7 F9 GPDesc STRUC3 G  E- m$ r2 R
     Limit DW 0
& P2 A3 n# Z4 E/ n( L0 ?$ S: r/ Q0 Q     Base DD 0
7 e. i0 X( J' G; d) vPDesc ENDS9 d1 E2 E) p+ g5 c4 E+ _6 A' i

/ _" ?+ d+ H& oGDT_def Label Fword
' b; t. U6 j4 \' e$ fNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>$ ]: ~7 |" @8 {$ O* i$ g* f. r
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>) m: Q, A- h$ V
GDT_Addr PDesc <$-GDT_def-1, >8 h: b) i: M  N3 I' b' g6 S

- A# l8 I" @% P. oMaddress Dword 0
4 B( J+ N8 \- A
" x& Z. Q. s/ c6 s: i9 dDSEG ENDS ! D1 R; v! l2 K( T
ASSUME CS:CSEG,DS:DSEG# y, p+ |& e8 g8 S9 n3 c: A( G8 p

9 h+ X- O8 J) @CSEG SEGMENT USE16'code'
: Q% q" @6 R. q3 t2 I( g      push   ds/ M; w2 J: |% C2 y6 s; R
      push   es
3 O8 X- r5 K" }% u- y      push   fs
) U: v  O/ T9 y' U8 F6 I# X      push   gs
  d( G  M  r7 r. ^, x      call   big_real_mode     4 n" k& ^" y: h
      call   Get_Commandtail
* Q' ?; E* x8 Y0 F+ \2 C- J      xor    ebx,ebx
9 n0 [: |( A' e      mov    si,82h
+ U9 ]$ [8 g" x# W, u      mov    al,es:[si]3 @9 E: }( u( j* P, Y# `
      cmp    al,'r'  Z4 E/ c" F, [; n7 M# i
      je     R* _; E1 T4 w% V" [
      cmp    al,'R'
0 |. n6 H! H; ]4 g  i) M3 Y$ F$ R      je     R
/ X% h& s: [8 z1 A: b5 Z      cmp    al,'w'
4 }5 d0 F( M/ Q, k      je     W6 n* M- U/ P3 g4 x. R
      cmp    al,'W'
& S7 N! m) G  U7 e9 F      je     W          5 H6 P/ B) n+ b% m8 ~, ]. E
R:9 d$ I, c8 D1 `8 x9 ?/ H* U
      mov    si,84h
+ |2 i+ r. L2 C/ _" N! i$ U      mov    al,es:[si]
$ ~9 @8 X" R  u- q5 Z; J! C      cmp    al,'b'
  t0 J- U+ r8 q      je     RBT
+ X$ A) m* E8 S- h# z! R9 W/ o* M* X      cmp    al,'B'6 y: F3 ^: F- S# ^
      je     RBT8 g3 ~) l1 S5 j9 u3 m! V
      cmp    al,'w'. ]& f; B. C* g9 H# \/ z( S* \  @  \! w
      je     RWR' T+ l. f4 T8 z$ N
      cmp    al,'W'! ?' d1 L, e1 H( x; h
      je     RWR
/ s" Q! E4 O: Z; J5 f4 G  n' w      cmp    al,'d'* n% X1 g* U# g$ t6 @+ k
      je     RDR+ c2 [' X$ W5 R6 T  \
      cmp    al,'D'
- P% {2 Y5 z9 M- `  |      je     RDR             - h0 j) S1 I5 F$ q' d! |; Y
W:      # j% ?) V) u( ]3 }( M* Q' Y
      mov    si,84h
: F  F6 E  H  Q0 P      mov    al,es:[si]
% D) \$ e- Z6 B% x      cmp    al,'b'2 T5 D  G; i3 d& T; M7 n1 l
      je     WBT! H* W5 W; _. ]3 r5 @
      cmp    al,'B'2 V1 T% r9 ^, Q+ q4 h: Z
      je     WBT
: b# n& J  L* r9 n7 a  N, q9 {/ s; O      cmp    al,'w'
5 i& p. x4 g  z. x      je     WWR
0 ]) x, S, l# [, K) ^$ j      cmp    al,'W'" f2 U& w. Y* J
      je     WWR4 r$ J( ~7 ~! V- w9 t
      cmp    al,'d') X, ]$ W- [& B2 A$ ^1 M, E* e
      je     WDR6 Y3 f0 L$ d4 ?  k: W
      cmp    al,'D'
! f# B' q4 o0 s' h5 H3 ^      je     WDR
. @4 a3 N  H2 B+ }, v& B- ~+ L) ~RBT:0 N) u' k& F+ M! i# P
      call   PSP        
( r( I# T, Q+ n9 ?# S. h! w      call   crlf           1 }: o0 L& S8 P) ^- V+ u: H. {7 a
      mov    esi,ebx- `" w7 C( j  N: F8 g( K
      mov    eax,fs:[esi]4 y9 [1 `2 }9 z  }: u$ t. i6 S
      out    80h,eax
! n. K" H1 }0 _  c      mov    ebx,eax( x! k" A  d) ~" x. N/ N
      call   _8bits# W4 i8 v3 s! H# j; h* u
      jmp    Exit0 L0 ~/ V+ r# }& X
RWR:5 J+ t* C0 g3 J3 F3 g
      call   PSP        0 _' X0 b: Y& C. g" }, N
      call   crlf           . N6 l0 a- f6 b  r
      mov    esi,ebx9 P$ S- B. q$ i/ g# T( I: y' m
      mov    eax,fs:[esi]6 Y7 M. q1 a+ N, ]' G2 e5 m; Q- o( J
      out    80h,eax
3 x) E; y, N$ Z& ?1 v  N4 t4 X+ G$ u      mov    ebx,eax1 X! F6 M! s7 S% @( e+ t" r
      call   _16bits
. r; w4 B$ w2 h( U# T+ J      jmp    Exit& b# u$ Y. _& X' N
RDR:
* {! N  e& M  V; O# Y! G$ Y      call   DPSP        0 U9 M0 S5 J7 @" T( |; Q) M
      call   crlf           
9 L$ F0 P' K8 H" U! M, u' N2 f      mov    esi,ebx) @4 g" ]( P8 [' N  q8 f' }& i
      mov    eax,fs:[esi]
" P! \2 [% c* o. e+ w* q      out    80h,eax
) @/ [. L7 v' w% W      mov    ebx,eax4 Y- j, E# I% E, q- W, b! t
      call   _32bits5 J& A7 r) e4 v% N" G! R
      jmp    Exit5 r6 E3 l  V. Z, L; e
;------------------------------------------------------------------------------------------------
" _& P/ p' d# u2 @( ?: MWBT:# H/ a3 w7 {0 C& e0 A8 H5 L+ a
      jmp    Exit4 }# _- S2 r4 ~. B5 W
WWR:$ ~. j5 ^; Y  x
      jmp    Exit
" Z) R( X3 K# S5 N9 R' ]WDR:- ^* h+ r* ^2 Z
      call   DPSP
2 e+ A% r: W, I+ l; J6 J+ J+ n      mov    Maddress,ebx      ) d$ U+ I* m$ \, v' \
      call   crlf* P' B' I- f2 n) r6 ]7 S2 ~
      call   WDPSP
4 m& w2 v8 G8 E/ {" s0 [! M8 o      mov    eax,ebx
9 W: e4 f" [6 A& _2 T& u      mov    esi,Maddress          & x, [& g6 ?6 K' {: D2 W1 s- a
      mov    fs:[esi],eax
! s: m+ \. V( A) P      out    80h,eax' G. B. Y: C8 k  H$ x
      jmp    Exit. O7 D( l- ^0 X8 |; @
;------------------------------------------------------------------------------------------------       & ~. ~# L( M. u  d+ h2 a
Exit:
# d& S+ k' f9 m9 \6 r9 |      call   real_mode     / g+ f# T3 D' O9 J
      pop    gs! n2 F# n$ N  l, @# ]
      pop    fs
: ~& k9 J2 }" S$ b' U* d      pop    es
% _5 k9 T! b( w      pop    ds      
6 |; R" x+ z# j; z0 q- D7 Y      .exit: i. |; [# I, R: ~
;------------------------------------------------------------------------------------------------$ u9 p* f0 Z- R" R" e, |+ u
big_real_mode proc near9 O+ T. Y( [: Y* e1 U/ n7 k4 a
      in     al, 92h
0 R. {) E5 X9 Z# i: b1 w      or     al, 002; ~6 E7 p1 I: B# C
      out    092h, al8 p% s; u. f& @' y( s! N- @3 n
      out    0edh, al& Y( E7 j) j. ~* @  V
      cli! G$ x+ U3 h! ]
      mov    eax,DSEG
& G6 r6 K- N5 E      shl    eax, 4
6 F! \: s! ]1 n- A3 x" l. p. l- x. B      xor    ebx, ebx
3 @, ?+ I" I6 o1 T# E      mov    ebx, offset GDT_def
- Z& z3 W3 v9 X5 o6 ]) l. [      add    eax, ebx7 Y' v$ H  v, n/ @- \7 j
      mov    dword ptr GDT_Addr.Base, eax
% a2 H+ Z; K, X9 O1 k( ~8 I9 Y; D      lgdt   fword ptr GDT_Addr( X% }; ^7 R1 U3 F
      mov    bx, 8' B& M$ ]) k# d1 p. ~, p
      mov    eax, cr0+ M! x. T, D7 u6 R9 X" p( ~
      or     al, 1
* ~% k( ?( W: X6 U5 ~& g9 @      mov    cr0, eax
5 Y! y! `" Y# D; E      jmp    PMod
1 a8 l% `4 T* D$ qPMod:
4 u6 e% ?0 Z! F& n      mov    fs, bx% m! _6 \. |! o
      mov    gs, bx0 s5 x/ n2 C( k6 {2 d
      mov    eax,cr0/ D4 ~$ E' C; Z: s7 ]
      and    al, 0FEh
5 H6 T* l% Q) A4 u1 l1 J( ]      mov    cr0, eax
4 Z2 R) @9 M6 H+ q! |2 {) }      jmp    RMod
& M7 Z7 F8 r0 F% ORMod:7 K0 o; t; D% X& x  n! u4 A+ A
      xor    ax, ax
4 }- P0 C6 e9 u9 d8 }- q7 d      mov    fs, ax
9 I$ a; }- l- T# [. U      mov    gs, ax     6 ]% j7 y: I) H
      sti     . I1 T! }* y2 `, t$ F
      ret
+ y6 _- j8 X! }  jbig_real_mode ENDP/ P) X% u6 ^4 p& p8 T/ v! p- K3 n
;------------------------------------------------------------------------------------------------
! |( h4 K+ K8 ^" Ereal_mode proc near: x0 ^3 F% r* Z
      in     al, 92h. c8 u. e( G# ?
      and    al, 027 E/ c5 @0 O5 N: _7 F& Z: g! V. d
      out    92h, al   
2 C% m1 S* ^5 N9 E$ B. k      ret/ H8 S. ^6 C  ^2 d, ?" {4 b
real_mode ENDP& f; e: B# R5 A, C. n' a* I
;------------------------------------------------------------------------------------------------6 [9 X6 c; O. ]$ I2 @8 Q
Get_Commandtail PROC near' i/ M+ ~8 O1 V5 J8 h3 T& U$ O* M3 V
      mov    ah,62h
. K8 ~4 ?- g, Y7 I2 R. `      int    21h
& j5 W( K( F  V4 N3 w/ c& |) |      mov    es,bx
' X( Y! M, ?* h# K      ret/ Q/ K- z& R, Z2 W, Q, I! N! s8 w
Get_Commandtail ENDP    ) z  i8 j! T5 D9 f7 {6 ^: O
;------------------------------------------------------------------------------------------------8 J* _- v7 E/ |% r1 K. _; ?
PSP proc near
, E' m; Z% @! C) b, a" }      xor    ebx,ebx
# N* c# y  R- H1 n8 d; P      mov    si,89h  h7 Z8 \) q3 Q4 t% X9 `3 s, S
      mov    al,es:[si]) ^4 E; @' f6 S7 c; E- S
      call   Change
3 i" {0 ]  S' Z1 Y" D; E9 F7 n% ]      mov    cl,4
- X  n/ _  y2 J. F0 b* W3 @      shl    ebx,cl
, D) j  O+ ]/ I8 w0 v( D5 K8 V      add    ebx,eax
% O( s: L, [0 Y9 z+ E! ]      mov    al,es:[si+1]
  Z2 S$ W2 c, f- Z      call   Change0 D. A: d5 p7 u1 G2 r% w
      mov    cl,4
9 ]: x" a$ }7 x! Z$ M      shl    ebx,cl
+ l! M1 _" Y% A7 v; F$ H      add    ebx,eax
: W3 Z4 A- i7 ?- I! c- [      mov    al,es:[si+2], o: k7 r/ y) V; y# D
      call   Change
; U* t$ p* _, g; @      mov    cl,4
* d% M$ {: B  {3 N: G3 j      shl    ebx,cl- |1 N: D" ^( A* |0 T( B5 @
      add    ebx,eax4 f5 e1 t) {3 p
      mov    al,es:[si+3]5 i7 ~3 J/ K) O" c- y- K
      call   Change
2 Z7 ?9 l2 c. F% ?( c, z/ a5 P      mov    cl,41 E- _  W6 U9 b
      shl    ebx,cl# S* i7 T# U: U  z
      add    ebx,eax2 ^$ N9 x/ u5 j# Z& n
      mov    al,es:[si+4]
8 g9 G6 ?  X1 C; F; S, X9 ?- l      call   Change
: d4 d9 c! X6 K& x+ Z      mov    cl,4  V  e8 F; h+ U: N, r7 v
      shl    ebx,cl9 W! ~( E! J5 ^  E
      add    ebx,eax
" \% S2 z2 w( |' l+ S      mov    al,es:[si+5]9 }( \" H0 i; A  K& z: \
      call   Change
5 R( V3 P2 ?/ U8 M/ r$ V      mov    cl,4$ r! {( K7 u. H. u
      shl    ebx,cl
/ F, P" Z0 [% p5 a      add    ebx,eax
. f: n8 I0 _+ y  w0 \      mov    al,es:[si+6]9 l1 P( o/ V+ x7 P( @* z
      call   Change
6 y% T$ n; ]8 D. {2 ^( y0 L      mov    cl,4
( J7 ?7 _9 J8 G6 h. \; [- u% z6 u      shl    ebx,cl4 N, {  `2 ^6 I4 G0 Q+ ^( R
      add    ebx,eax; `! ?; v4 }! z2 J
      mov    al,es:[si+7]
8 c1 `! D: t* B- h      call   Change& K6 s% t4 Q. h" a1 g
      mov    cl,4
- {( c# D0 K2 A, m- [- p. v      shl    ebx,cl3 L( P  o1 m* h
      add    ebx,eax: y, S# s/ E! q0 O* u
      ret9 \# m3 E# J8 P& k# F- D$ r' ]
PSP endp' k% n, w( K1 [+ v) }  W
;================================================================================================
0 b; U/ I: e$ v3 f$ v* W% [DPSP proc near/ g( r8 h- B2 r( W1 n* s& b1 h
      xor    ebx,ebx( K3 |+ R4 ^! M. W" L% C
      mov    si,8ah
+ _- F3 c! d4 m3 t      mov    al,es:[si]
( x" |  j! s. P4 M      call   Change
. `3 q- r, [+ n% p/ a      mov    cl,4" n8 [8 H1 R: E) i8 Y- Y) y, k: ]
      shl    ebx,cl
2 l# L* Y, `) q; l$ _1 J& k3 c( W      add    ebx,eax
# q1 s* H4 G& P* m3 P' R      mov    al,es:[si+1]9 U. U  L+ `% X1 a( T! Z$ s
      call   Change7 x( I! o* f* i  x, u6 y
      mov    cl,4
2 N+ W2 J$ I# C4 a      shl    ebx,cl
! }7 z( O' w) T, r5 G6 j* h4 W; ]      add    ebx,eax1 Z+ [3 r0 h& r8 r
      mov    al,es:[si+2]5 E9 ~4 q$ K+ \0 a7 P& ?6 |) {2 O; l
      call   Change
5 V# x3 `0 s* g2 K5 O( e& ]. U% X      mov    cl,4
% ]0 k0 W0 }1 y% N      shl    ebx,cl1 M% O5 I0 w. ?% C* c
      add    ebx,eax
5 ]0 j) `9 Z) j( `' m      mov    al,es:[si+3]! g- r8 w* ~, ~- A; @% r) F
      call   Change
, a) ~$ h) H, y$ `7 ^: M% c      mov    cl,4  X$ Z$ B$ g- W' ]5 c) i
      shl    ebx,cl" `! u5 e/ c  ?) F9 N( v; K/ ]
      add    ebx,eax) H; y& C4 `% }7 a6 e0 z9 O7 b
      mov    al,es:[si+4]. N* V2 c" ]8 |2 Y6 H
      call   Change
8 E4 f9 e' A8 x      mov    cl,4: ]# Z. |/ |4 N6 B. O4 ?
      shl    ebx,cl
8 e. X/ L% i9 V# O: c7 f- Y; m" w      add    ebx,eax$ f' K! a+ q; k  J8 K- |
      mov    al,es:[si+5]3 y6 @5 k" l' Q$ t7 N) {
      call   Change
1 Q4 e  |" x* N: k      mov    cl,4
1 \! u7 [& P( @8 b( b1 L      shl    ebx,cl
0 t( x+ D/ C. n6 ?, M1 f  k      add    ebx,eax8 U  f0 S+ C, f, U: u% a8 n) N
      mov    al,es:[si+6]' i1 V8 Z( U( j* E* A
      call   Change
  A7 Z7 n3 @- ?. t  L      mov    cl,4; b# t: d; f$ f
      shl    ebx,cl/ V0 w$ C$ n) M
      add    ebx,eax
4 Q9 S! s$ Y& w5 w1 L4 h$ U      mov    al,es:[si+7]
! V/ i& x; E$ p$ z# \  w      call   Change
2 n, r# u4 F  c* J' T4 V+ W. {" V      mov    cl,4
/ N4 A* H- |7 c6 L9 |; p: u      shl    ebx,cl2 z8 C! H: M4 ^( j
      add    ebx,eax/ w/ t5 j3 ~! ~7 Z% [) p
      ret3 B& j) G0 ]  k) x/ s
DPSP endp
! a# _& R& F) N0 f;================================================================================================! L  T* Q2 J7 C& ^& T
WDPSP proc near
- d, F, }2 N  K4 S% ~& b) B! V4 d      xor    eax,eax8 \- ~- i& y8 Z2 V4 f8 d
      xor    ebx,ebx
8 L; {; G: a$ u4 c      mov    si,93h$ i3 }$ A1 N! r& V3 e* |
      mov    al,es:[si]
% i" Y1 P. `# O  ^7 G6 r; L$ ~      call   Change6 W) O+ K. V0 q& D) ]# N7 `0 r# ~
      mov    cl,4
, Y% a+ z. v9 n8 |- Z      shl    ebx,cl: Y! D4 t4 W" m% v+ D
      add    ebx,eax
5 q0 B, e$ E' J7 ^  A! [      mov    al,es:[si+1]
3 J3 O: `. d5 @  ~* j, C      call   Change
! c4 M: D* W% g5 U1 s      mov    cl,4
, L6 b0 h7 M5 u: C      shl    ebx,cl
4 L: G% w6 c% b      add    ebx,eax
# }. Z( e5 m& \. B9 N$ h      mov    al,es:[si+2]
# K0 J$ A7 ]7 I) S) j2 G      call   Change! x( I8 Z8 ^$ o
      mov    cl,4/ P. s7 {7 A% O
      shl    ebx,cl0 m9 d6 W/ m# h1 _: W; D4 S. y
      add    ebx,eax
" r% f  |. `8 p8 `; B      mov    al,es:[si+3]. L* j  }4 _% B* b/ a  w
      call   Change
0 q/ y5 H, B* _4 \9 A+ ~+ N- |      mov    cl,42 }, p+ |# V# v8 v8 A
      shl    ebx,cl6 e3 y& v7 }+ G) @
      add    ebx,eax; m8 ~; [' [* M+ R" n6 U$ q
      mov    al,es:[si+4]7 y+ c% U; G+ G( T6 |* p6 k
      call   Change$ w( a! q) j: c: L* U0 c
      mov    cl,4
1 a# T5 ?( e% b; \  g5 @      shl    ebx,cl
* Y7 ~  G! q$ F. O0 F: n8 [      add    ebx,eax1 M2 l2 [" E; W9 N, n- G! U
      mov    al,es:[si+5]$ G6 ~0 q/ q/ w9 H/ ?; L& b
      call   Change
& J2 I, A2 }( g2 H      mov    cl,4
- U. g( }- i, H) J% z      shl    ebx,cl
" W. K$ b$ ?) z& A4 `      add    ebx,eax- f: F7 B: W9 h! R! J
      mov    al,es:[si+6]
+ v5 d: {( u3 _2 k$ C" w; h      call   Change
( i  q* t% d+ x$ x$ M+ r' }) I      mov    cl,40 G9 Y- m0 T6 Q( m
      shl    ebx,cl6 A0 ]. b5 w2 ^3 S1 o
      add    ebx,eax8 t% n) \' c6 z/ L4 q6 r
      mov    al,es:[si+7]6 F7 p  T% }8 H( t% N
      call   Change
0 Z  N3 O0 Y% e, \, s      mov    cl,4& n( v  n: F; Y$ e+ b8 }' l2 w! s
      shl    ebx,cl
6 o* t% ~; ~0 }6 r8 W8 x      add    ebx,eax- G4 L3 ]4 {+ f! j- h
      ret
; h, f: N9 C, G5 Y5 @# V) l3 UWDPSP endp
6 k' s; X  {. r$ c! r* J- f;================================================================================================2 G) I0 I& z7 a# t* _6 x2 s, O
Change proc near
# b( ^6 y) v1 n7 c4 f9 rA:   
/ y" z' G6 K6 P' x$ S, P/ K      movzx  eax,al
" r8 m4 g4 S2 @4 _; H" Z      mov    edx,eax
3 p3 x% M# T( A2 U: ^. @) p( a      cmp    eax,'0'            
3 _% ^- H* o8 F' u  I0 Y9 I1 V      jb     A- x. D4 P, R9 U1 |' d/ A
      cmp    eax,'9'            7 k. Q5 y: W2 z1 t
      ja     B
$ f- e/ t9 w  ^* W  I      sub    eax,'0'
/ N1 a1 s: m2 g0 a* w3 Q      jmp    short E: K/ z  `: D% F+ ]7 ]. ^
B:
! x" q9 I: _2 d% U0 S, {      and    eax,0dfh           $ K0 w0 e! K/ q. f' R) w- U& p
      mov    edx,eax
5 j% _2 Z8 z5 K      sub    eax,37h            # t8 N, ~1 E/ T- \
      cmp    eax,0ah' Z5 L9 f1 m# l2 g% ]
      jb     A                  
) ^- f1 Y- f% g6 a) V/ f+ c2 F      cmp    eax,0fh7 ]' x, S1 ]! X
      ja     A                  
: b/ [" p$ u- F8 h. hE:
7 U* @6 V; a. f' w4 p6 _4 m- Q  }# T* e      push   eax       ) N* w) Q$ c! R1 x  z1 t: v3 ]
      call   PRT                4 |, t- D0 d8 o; f& r  T- k9 Q
      pop    eax
  `' @# F8 V$ z* L( YCExit:
* g$ m" _" `) ~0 O* c, R. R) z      ret9 N% n0 Q+ G- r" F
Change endp
4 D0 k( X8 c! x;------------------------------------------------------------------------------------------------
/ c4 j3 h  n) o5 KPRT proc near6 \# I8 r; S- n9 u1 S2 V: O
      mov    ah,02h3 D1 S0 C, x* I* I1 U
      int    21h5 g! I9 F! X& Y  w4 w4 l
      ret; k1 [1 ^; r' D& X" {
PRT endp
/ D$ }7 R- r8 s;------------------------------------------------------------------------------------------------4 B$ n2 k2 g# b: w
crlf proc near
* ?2 s, p1 b/ r; O9 I) e      mov    ah,02h
5 u# \* G" k6 l      mov    dl,0dh
4 x  ]5 |+ _7 C3 `2 i1 P* M; ~      int    21h
/ t2 k) f& W: |! r      mov    ah,02h2 k! M( {* D/ m* R' q
      mov    dl,0ah5 p4 E8 Q1 ]  {
      int    21h/ S$ Z& f4 F  M7 j% T9 N; n0 E' D
      ret0 E- @+ b8 }& m1 E
crlf endp
2 a. ?6 G7 o% r' I5 Z1 d3 \6 h& S6 G;------------------------------------------------------------------------------------------------. M3 `( i# K* q4 }6 h
_32bits proc near" W( @& N% a! b
      pushad
9 d, c( d% Z: A      mov    cl,4  d9 m6 T3 I7 P# z6 K
      rol    ebx,cl5 z+ J  t  t' ]8 F8 T
      call   print_4_bits
2 K" n( K* H: C; i+ \! [      rol    ebx,cl. h: L% m& n* l' l
      call   print_4_bits
  h/ W# `# r6 s" H" t/ F% Q2 S      rol    ebx,cl
" M- z2 ^( |" s) d      call   print_4_bits6 G- i" ^. X  q9 b  ~  h2 \  A7 U
      rol    ebx,cl6 n/ H/ ]. y) T) Z7 ]
      call   print_4_bits% ]$ j! l5 d7 Q, q# P5 v
      rol    ebx,cl
3 f9 ?  t6 O# D, b, H, f' r      call   print_4_bits
, L7 ~/ {0 [# H: i9 u5 P+ y: S      rol    ebx,cl, n/ `; J- P2 p( H$ i9 I" l' b
      call   print_4_bits
$ g5 e. y( Q  e2 ]+ `3 C# Q      rol    ebx,cl; F; {) A4 r- T' U
      call   print_4_bits5 c% R$ ~$ W7 u0 r# B
      rol    ebx,cl" v/ ~) u+ c6 S5 ^& k! q
      call   print_4_bits8 }# o  J1 a" `: }
      rol    ebx,cl: t, {  K! e1 Z* Q4 m& A
      popad4 b. f& y" s' Z/ \! D$ l
      ret& m! E! V( n/ ?
_32bits endp0 t* d# ]$ T! b
;------------------------------------------------------------------------------------------------) i# X0 l( x4 b+ h8 \- c
_16bits proc near0 h/ H9 c1 q6 V. ^; z- z
      pusha        
3 p5 a+ c8 x% n" L      rol    bx,cl
  r: q: S, X6 V0 J" K9 B      call   print_4_bits
! e( w, }) e7 k& W, P      rol    bx,cl$ P2 o5 {' L$ t# [) U) G
      call   print_4_bits
' n( \2 U6 y/ z* C* K4 @      rol    bx,cl
* T6 Q+ V/ c" m% f: u" _' L      call   print_4_bits
7 I6 L( }! J% C% p% V7 X2 A      rol    bx,cl/ O9 B' |8 |3 [. `, H) H1 `
      call   print_4_bits; z8 B5 ^1 Z! u
      popa0 {' @( C: ?0 e) s
      ret! p3 P% H# Z# B# {- ]+ {: K
_16bits endp
# `4 q( g8 e4 z, T;------------------------------------------------------------------------------------------------# I) x: N: N1 ?3 ^* R3 B
_8bits proc near$ M) F( s6 a# k# r6 u  M
      pusha        6 b0 Y8 B- P, o  \/ q7 x  E
      rol    bx,cl. M: I, c7 u7 N# b# O
      call   print_4_bits
) H- `& Q& y& R2 E. B, f) g      rol    bx,cl/ G, U+ K4 g) f+ ]
      call   print_4_bits5 R4 ^- G" [7 u8 D9 f- u  d7 v0 `
      popa
1 C3 z+ o" t* [* K0 ~- P      ret
$ @, f8 K3 d* h_8bits endp
; a, C6 G1 l. L4 t! F% iprint_4_bits proc near- J! S( s: A7 ~/ L
      mov    dx,bx
# ]8 H, e) M  N& O      and    dl,0fh/ E8 U* k5 D2 S
      add    dl,30h3 T0 G" n4 x" E: _$ M, G" Q
      cmp    dl,3ah! {' c; b% @2 [1 G$ A! @
      jb     print
: A' x$ k4 |' C* m, Q      add    dl,7! D3 L/ M8 h2 v. {* G7 j
print:  ( H1 @2 g" F( y
      mov    ah,26 ^+ Z# ]$ Y1 D) T% a* k
      int    21h5 Z7 G% g2 q8 k, V2 u
      ret
* |/ h4 f7 T0 }) `9 u. s  E: v% _print_4_bits endp   
0 z4 M, L& d( N+ w" T& S$ g) zCSEG ends
/ s1 R5 ^/ f+ d! S0 k4 IEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-5-31 21:07 , Processed in 0.042397 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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