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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)" q7 G" {# _) w6 Y# }3 |# P
+ s- V0 B/ o' `
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
1 ?6 g) p/ Y7 o% F  e) G! Z6 k, h
, R. O+ A0 S+ Q) `- q' F; N宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
  d. Y8 N* W8 {5 ]. u1 X7 A
; \( c1 @2 ~: n.model small( w5 M  G1 m0 U( \' R  Q$ ]
.386p6 _; G& T' V$ n+ O
DSEG SEGMENT USE16'data' " Z" c2 W0 G) A2 u6 v/ L

* {1 k) m, W8 s) r& g2 ODESC STRUC
0 Q6 _4 Q# I" o9 E$ z% a     LimitL DW 0 % _7 w3 M5 p+ T/ v
     BaseL DW 0
4 \5 }: o3 {* V: K3 g' J5 V     BaseM DB 0
5 T8 L" a9 H- L* J) D# _& U     Attributes DB 0
+ j: ?/ j, X4 y0 `, Z     LimitH DB 0 3 r9 p) U% e* Z
     BaseH DB 0
; s- S; c0 N) _& Y% d, HDESC ENDS
& s3 [0 e* M/ t, L
7 x7 d# `9 ?3 MPDesc STRUC
; Z  ~- o" t4 Z6 G     Limit DW 0
; ?; b' W$ N5 F6 o# [1 b4 J     Base DD 0
' n7 \% v5 r" x2 O6 A3 Q; `PDesc ENDS/ y% I/ t% J% v: G  p- _& X, ^, m; i

3 e' V  s/ z1 TGDT_def Label Fword7 D# g# y% Y/ X. c: s
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>6 z9 e9 Y# K9 E4 _  a
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
6 c0 v) E" c4 M, K5 T, o% ~GDT_Addr PDesc <$-GDT_def-1, >
, [6 z: s7 R/ J4 j9 J+ U1 M, r& ^0 X4 D/ H2 \
Maddress Dword 0
1 p# }" v& d7 U' X
* p( f3 [+ [/ F1 h6 pDSEG ENDS
, z( d. P( A2 q* v6 k3 x) M* \" XASSUME CS:CSEG,DS:DSEG# T# g" g' z( o( o/ A. z

- U; ]: h  A( I! \* \CSEG SEGMENT USE16'code' ) \. I- Y6 y! P
      push   ds3 u5 n0 I5 J5 y+ A9 M0 u7 V9 p
      push   es
! v6 ]1 e+ r+ w      push   fs
/ Q! w+ Y/ F) Q; e2 s      push   gs: X) N- A  C2 t" G6 s
      call   big_real_mode     
$ _7 N7 l( Q" X! p' |      call   Get_Commandtail& q' G" u7 @1 s0 E+ v
      xor    ebx,ebx
" m% s9 n9 C, R- G# a2 x      mov    si,82h
2 G1 z! d+ _8 B& j2 r& X      mov    al,es:[si]" v, `' k6 S$ I; U3 g# W
      cmp    al,'r', N6 ]! |, V8 ~4 u/ ~/ n
      je     R
5 E7 N3 D% R# D8 o3 @, O9 c      cmp    al,'R'! \) u' K9 a. N, m
      je     R0 D5 ~2 F! A3 v$ ]% o+ ^1 N3 ]) V' r
      cmp    al,'w'
2 g8 P0 ?# D% S4 q+ o. i      je     W: d& ]+ ?6 p( x  g+ n
      cmp    al,'W'/ x0 r& _5 }" M7 K; V  @- [
      je     W         
# e1 U0 R- ]- N! U* h9 PR:
% w3 {% T2 {8 |4 @5 m' m+ \7 R      mov    si,84h; ?$ @* p; ^! u5 |9 J$ c' s) u
      mov    al,es:[si]
; Y, W8 u( M+ t4 z& s/ O" y5 V0 t, B      cmp    al,'b'' B; {! J4 \! r, M
      je     RBT
8 k; V4 A( x" J: B# [8 R      cmp    al,'B'
( A3 `/ e' J7 A      je     RBT
8 c. y" u7 Y1 @; Y, U! z1 N+ S      cmp    al,'w'7 V+ p* c; f# A$ U3 z# n- H
      je     RWR  Q) R: ]1 S6 V" R8 l: X
      cmp    al,'W'
' o. `) H$ @, S8 D$ d      je     RWR2 Q  g1 L% r. X
      cmp    al,'d'! y4 ]8 x( j+ B% B! f5 q9 I
      je     RDR' o- {1 z$ q. C4 ^2 J5 ^; q
      cmp    al,'D'/ p# y  g* b% e/ [0 G, I7 `& X
      je     RDR             2 M$ A# i7 A; p0 `* u, o2 S
W:      # H. p& O, f! r* O
      mov    si,84h$ `- O0 ]9 r0 b& p- B9 O
      mov    al,es:[si]
0 e; a6 r7 D3 S6 p6 w      cmp    al,'b'9 `3 U9 X6 U7 z) `
      je     WBT% w4 ~3 e* F! `# a. T0 X
      cmp    al,'B'
* n) V) p3 h1 K      je     WBT
( T. K" ]& I0 q  e" d6 e      cmp    al,'w'' Q" x% O1 f: t3 r% k2 d
      je     WWR6 R$ `' @: ]5 ~/ e) \+ M: _% C
      cmp    al,'W'
' \: P! R: O$ i0 m* i      je     WWR
" ]/ ~  B4 X: G3 ]  W# D2 ~      cmp    al,'d'
; ?+ K7 y' f/ y8 p5 J/ ^2 S' X7 e      je     WDR6 U! Z/ |9 j1 P1 |
      cmp    al,'D'0 K8 ^; i7 K/ D7 J0 N! R
      je     WDR
. \  L  Z! W  d% t: j/ A/ x, v( YRBT:! k* K$ ?5 ~- _4 U/ c8 ]$ o% a
      call   PSP        " w' A& X. X) n
      call   crlf             w4 t+ z& `) w! U$ o5 `' q
      mov    esi,ebx5 l4 X8 |0 o6 E1 @/ p7 e& r
      mov    eax,fs:[esi]
! z6 [# R1 w/ Z8 f# v! f0 `      out    80h,eax
/ I# J; }3 ~' I- U1 t& G) \, P) T      mov    ebx,eax
9 b4 J- J" _: R( ?; s, ^      call   _8bits
$ x* T& D3 \$ X2 B: f  [      jmp    Exit% x4 @& {% b6 h$ S# u4 g' T
RWR:
( N  S, T+ u' l' E, p      call   PSP        
# f3 h" ?7 p; a) h      call   crlf           % P! U+ C9 t  y6 ~# k
      mov    esi,ebx5 A7 r' L$ o- _6 r% P
      mov    eax,fs:[esi]. ]: F  x5 I. e1 r) K- v: {
      out    80h,eax, y% w7 R0 N6 B+ R6 J
      mov    ebx,eax7 G$ `% g( R: k% i3 C9 m9 }) ]
      call   _16bits" _% a* f* T# _2 c" G# i
      jmp    Exit
2 ]0 A' o9 x# YRDR:
' p: g: I) Y; T% F' f) P; V3 ]) B1 R( v" r      call   DPSP        2 {) |8 ?4 k) \9 H7 I
      call   crlf           8 t  ?# v3 o, ?! s
      mov    esi,ebx1 K# Q( @( j2 t. I
      mov    eax,fs:[esi]
8 ^7 y" T) f( A8 S6 J& v' t. A1 ]( Q      out    80h,eax
. I/ s' f/ k# K  [+ E# ?      mov    ebx,eax8 b3 o5 z2 H$ r, o
      call   _32bits
, T: G8 s; z$ R6 v0 L, `& @      jmp    Exit/ s/ d- D: ^" l( }, }
;------------------------------------------------------------------------------------------------, j* `* e. P% W
WBT:
8 H0 U9 {% V: C: F( W      jmp    Exit* H& F4 b6 @5 x. U+ K
WWR:
, F. ]8 ~: e5 ^! S+ c  I      jmp    Exit; `$ R/ b& B6 t% _
WDR:3 P9 C  t) X! q8 v9 v# x
      call   DPSP7 n1 O% n: I$ ~7 |
      mov    Maddress,ebx      
: c  T. Z8 a& D& \! j+ i+ _      call   crlf1 V8 ~. W( E* |! F. F
      call   WDPSP0 F# D% ]) D% M: l' Z: R# X
      mov    eax,ebx
+ z1 d1 ~) k, l" b9 Z5 _& T      mov    esi,Maddress          0 ]+ {* F. V% j( B
      mov    fs:[esi],eax
. A; w/ r7 i# I7 C& X      out    80h,eax
1 y3 G" }) [5 h, r: M      jmp    Exit
  y5 O0 w6 D6 ^, i% V/ Y;------------------------------------------------------------------------------------------------      
# r: H, ^$ W1 G) A& Y/ p. DExit:0 f% S0 n( y9 v! T, b' @. h8 B
      call   real_mode     
$ d% I2 c. C1 o2 t3 p4 f      pop    gs
$ L( H% K) K, H$ N* K      pop    fs7 D+ c7 v, @' E! M* F1 k
      pop    es$ F9 v6 t% `; l
      pop    ds      
. ]% v  r' y6 ]9 K* B8 ^      .exit- y$ Q. d' l0 ^+ \+ |8 Y% M
;------------------------------------------------------------------------------------------------& V4 b; W" `0 f* p2 J- J# L
big_real_mode proc near
4 G" ~, M  W4 x/ b      in     al, 92h
7 E" A. ~/ x3 y/ d, c      or     al, 002& Q, V6 ^) q: `+ O; X$ V" r3 H
      out    092h, al
6 F6 z/ ^( P) f! J! t7 r      out    0edh, al
" z1 i' p! G) }      cli" ?- }' t6 F4 P$ T( Y
      mov    eax,DSEG
9 T8 n: K, P7 c0 X6 c0 j      shl    eax, 4. m* r5 m. Z! P
      xor    ebx, ebx: l8 m1 N( X- A2 ]4 N; U# v
      mov    ebx, offset GDT_def
; b4 i( Z- o% E: @, x  L* S) E      add    eax, ebx+ T- D5 Z* [+ @# F( D6 `) C4 m. \
      mov    dword ptr GDT_Addr.Base, eax! F$ m. g, g, T' Q$ Q7 a9 `; n2 z
      lgdt   fword ptr GDT_Addr
8 T$ L5 |; W; R* `" N5 a* j      mov    bx, 8% t# K, t7 O- i0 {9 \' T/ p
      mov    eax, cr0
3 q$ h  K6 Q6 P+ k( C) l- h8 R( ~      or     al, 1
& t3 Y; V# S' C      mov    cr0, eax( r8 Y# w& v# m7 w' ~7 a+ P
      jmp    PMod
" |! r) K# P5 n* N5 g4 @: |% IPMod:
0 M5 b$ S# X7 K( E7 D. ^      mov    fs, bx- s: s7 x/ V$ J. u8 U7 r
      mov    gs, bx. q2 F" F! `2 Y/ z" j& |; u
      mov    eax,cr0% c2 Z$ L8 U, w8 L7 h/ h: Z
      and    al, 0FEh+ T/ j# I5 w: K
      mov    cr0, eax
3 k* D. Q9 [# h) v, j; k* y      jmp    RMod
4 b# q7 O2 H6 s8 Q6 uRMod:2 J! C9 _$ J. _: `. Y! \' U$ x
      xor    ax, ax
  H1 F5 M9 [5 q3 p# O  E& f      mov    fs, ax, E% F6 k6 ^" b# N) u: Y
      mov    gs, ax     
! g# x4 z& l, }) O1 C. Q7 S      sti     
/ L( g$ j' b+ o* U4 F      ret. u3 h+ A3 n3 Y
big_real_mode ENDP
# A& f( l3 e: A* z;------------------------------------------------------------------------------------------------1 `7 b; _  R1 v, \  h" u# p
real_mode proc near& z& f7 s- }8 @2 ~% Q) \1 Z
      in     al, 92h% w5 o# {8 t4 z/ f5 w5 {
      and    al, 02( K  U# @6 r- Q8 g, w
      out    92h, al    2 w) X1 \3 u0 v' ^. }- E
      ret8 Y- t" `" d3 i( B  ?0 G9 Y
real_mode ENDP
1 k9 E$ H& y6 `3 X. q  ^;------------------------------------------------------------------------------------------------
! B$ l4 j" h2 w+ I' r- vGet_Commandtail PROC near, e, v+ h" J, i3 x8 a( g6 {
      mov    ah,62h ) j* j) M- O& Y7 T2 U! q$ q, p
      int    21h( C. ]8 h( }6 m$ v
      mov    es,bx
! _$ h( ~2 \" u      ret& i6 }+ J3 N5 c! |3 Q4 x, J
Get_Commandtail ENDP   
: A- S6 z9 G% v+ {4 [# Y' ^3 j7 ];------------------------------------------------------------------------------------------------' y0 R8 h% j6 ~# q4 A) y
PSP proc near# M7 D5 |( b1 i4 T) J
      xor    ebx,ebx. R6 r- `. c* R) k  I8 F$ m
      mov    si,89h
! P8 ]+ T5 r7 `" E/ Z$ s; _      mov    al,es:[si]6 L- S# J; u' {* ^. a) A( s
      call   Change+ Q: x. o8 M3 U' O6 ?
      mov    cl,4
. K2 W6 \; A1 E8 Z      shl    ebx,cl
" I+ G2 o- M: G0 f' ~# e- v      add    ebx,eax
& l  R4 S) M# n" C' I4 w      mov    al,es:[si+1]
$ E. A8 s( `7 S' e( M; I) ]      call   Change
/ Z" ]2 I5 ], z1 V& L! V& \% M      mov    cl,4
+ v  U/ R; P# o/ _      shl    ebx,cl
( f( ^- D; d; z      add    ebx,eax& z8 `; j. m) {# O, j% Q* d+ ?
      mov    al,es:[si+2]% j" O0 X0 x/ I/ z4 N% m2 m
      call   Change
7 u5 v, H7 v& Z* w      mov    cl,4
3 q6 D+ X1 Z: j      shl    ebx,cl
- j7 m* ^" G* K$ I/ n      add    ebx,eax
' e. {2 r) v7 q  v4 e4 F      mov    al,es:[si+3]1 S; H: D5 x+ z+ X1 L
      call   Change
- I9 b6 H4 v; F. F      mov    cl,4
# Z. i6 U% r- P8 U      shl    ebx,cl9 k) T6 K  Q; }, `) R
      add    ebx,eax
4 g2 ?& c# u+ `" @2 t# J4 ?      mov    al,es:[si+4]
$ b; b9 j) q! i' f2 r( G) R! D      call   Change# ^1 K- g3 `' X* g1 ]
      mov    cl,4
+ G2 R8 @# B- k7 O5 S      shl    ebx,cl, d% v( N- u; H5 ~0 s) N3 U2 L
      add    ebx,eax7 G3 \! U2 Y5 M# ?- C  d# f
      mov    al,es:[si+5]7 U# P- H) l2 a( j9 I# B9 w
      call   Change) c' p* r$ [  q, {. ]
      mov    cl,4
7 Y( F6 b& @& ]      shl    ebx,cl# \( C& S( H# l- ]
      add    ebx,eax
# T" k! X' g) m2 W6 e      mov    al,es:[si+6]
1 J* f/ v2 [1 [/ Z% Z      call   Change
' o% \8 N- G1 V1 Y) B; ~      mov    cl,46 V  z2 e: P7 ~: f% S$ ?
      shl    ebx,cl2 s  x( Z' G9 i# i' t
      add    ebx,eax' e2 D- ~0 R: [# I0 b2 l  i
      mov    al,es:[si+7]$ B9 O% A0 B3 Z
      call   Change5 E$ s+ P8 y+ l3 E
      mov    cl,4
1 S" \. K8 m9 h/ X3 |9 U      shl    ebx,cl- `) f5 b# _% \! i: n
      add    ebx,eax
: G. c( Z$ F! }, b; s      ret9 P' N4 ?( l8 f4 z( R
PSP endp
2 r& K. }. L" K4 y;================================================================================================1 Q8 r. x7 W$ f$ _1 L2 T
DPSP proc near
  `! ~% F" K" r: c! x' S) _! Y& ^      xor    ebx,ebx- r8 R( x: r) ]7 O( ?2 R
      mov    si,8ah& l! d! y. o4 L) N
      mov    al,es:[si]
- n2 c3 p& K* G! t      call   Change0 p) T* |: @  W5 w
      mov    cl,4  R/ u: [6 c, Y( \9 D8 W  j
      shl    ebx,cl
- @& B2 r6 B  |0 d, \" b      add    ebx,eax
* S# a" ~4 _3 y3 G% u      mov    al,es:[si+1]
6 o0 F* U8 z3 \# z6 q( A0 \4 n      call   Change
" Z/ h9 b! ]& H2 Q      mov    cl,4
  N8 r# H& W+ u+ x      shl    ebx,cl; p# U4 v, _+ ^0 A
      add    ebx,eax! X# `0 A( y$ {7 Y% f7 v
      mov    al,es:[si+2]7 R$ D/ N+ ?3 B& }3 Z8 _2 u" I
      call   Change
2 t5 e7 i& V9 U% {1 i& r      mov    cl,4! y* L9 x( O% Y' [1 _$ S" u0 J
      shl    ebx,cl+ V3 a3 y3 W4 t5 g/ E
      add    ebx,eax1 a7 ^( _9 l7 e1 F8 v
      mov    al,es:[si+3]
; Z+ w, h% Y- V& N% _. t      call   Change
4 `, E; @4 d1 J' j( w      mov    cl,4
3 l/ E  k& S1 B. I      shl    ebx,cl, s9 A% u; _- Q/ i5 o5 W/ Z
      add    ebx,eax+ G" a9 x, F- v  {3 a- [
      mov    al,es:[si+4]
( d" s  Y8 U' h      call   Change
, N9 C5 \( r4 r      mov    cl,41 x! T' ^+ \- Z) N# g7 G4 J
      shl    ebx,cl
, T' Z6 F: \3 Z$ C; p! `      add    ebx,eax) _1 p( a# s: c1 F
      mov    al,es:[si+5]* e/ [7 {; ^, D1 t* |7 S% N" o7 }
      call   Change" p* j! N( t- ~0 R2 w1 O
      mov    cl,44 E1 }6 w5 A" Z+ ^/ B- a
      shl    ebx,cl( O# B7 ?: [" k; J
      add    ebx,eax
- _9 _) k1 Q$ J8 B& Q7 H5 O* S5 F      mov    al,es:[si+6]
7 v: x7 D; h+ F( x/ U* F      call   Change! X, b) b( P+ G# l
      mov    cl,45 M0 Q1 q. R7 d6 p" V$ _  H1 {
      shl    ebx,cl* N' Z8 @$ ?! B3 {
      add    ebx,eax! ^6 z. D# r) {! I0 {/ G
      mov    al,es:[si+7]
+ F! e+ x# S  O( N2 I- T/ w      call   Change& z/ b3 W- I% y. Z# k& l  `2 T& T
      mov    cl,4, o& w" V' g, r1 B7 s. m6 @
      shl    ebx,cl2 G9 \. L8 W4 Q3 j
      add    ebx,eax
& {3 }' s1 r, W1 ^& c  l      ret
+ U7 A+ k( E8 ?% ?4 H/ q8 ?1 xDPSP endp
' x- ?2 P1 ~2 M8 Q& M4 m! m;================================================================================================
4 Q+ h( a1 z4 h8 r: V) Z4 _' NWDPSP proc near
( ^6 p% W4 _3 K9 A      xor    eax,eax
1 S9 E. _& B. e7 S. ^( R      xor    ebx,ebx
- J3 X, B# C* a+ Y* f      mov    si,93h; m$ I; l! w% K& M( c  e. p! ~
      mov    al,es:[si]
  G" T6 a4 C1 P. ?      call   Change7 ]/ }! N. X/ g) H
      mov    cl,4) ^! y% T- D, x( q
      shl    ebx,cl5 i- V6 {  Q# p- i, X8 s
      add    ebx,eax
+ |! j: w( m* {4 D: x      mov    al,es:[si+1]
; \& M/ w1 G0 V  Z3 ?/ v6 m- @      call   Change
/ a: [  A% l8 \6 B* P" f      mov    cl,4
) a- f( `. h+ \" @      shl    ebx,cl4 Q# \4 V! @" b
      add    ebx,eax
+ }7 D8 k" d5 G$ W" \      mov    al,es:[si+2]6 u4 [5 q8 c6 s! ]6 N6 V2 a! j
      call   Change9 o; K7 k3 |: P; w
      mov    cl,4; l5 W7 `% N  M( S. Y% I; j
      shl    ebx,cl' d& i7 E) M8 [, B9 `) S
      add    ebx,eax; x+ W1 w5 M" y- u  S
      mov    al,es:[si+3]
& T4 D; i4 G# T. `& U      call   Change
: ^6 w% f) ^/ p+ d8 m0 J: R      mov    cl,4
! f) B( V2 D. I      shl    ebx,cl! e& Z& R9 f7 M: J+ h% g
      add    ebx,eax; {) @* Z$ X: h9 p
      mov    al,es:[si+4]& e: i3 m: {8 B. D9 [# t
      call   Change
3 |' V0 _2 m- L0 x3 L) d      mov    cl,4
, g% _' L6 y+ ~8 X0 W+ ?+ P      shl    ebx,cl
" U8 k& K; P8 s& Z7 G% E      add    ebx,eax7 X. D. b) a2 B8 _
      mov    al,es:[si+5]  v6 X* T4 C" C# ]& k3 k: s( E2 `
      call   Change
$ n% L! |: j% g) v2 d2 [' w      mov    cl,4
; o" x# @$ t, ^9 T1 a$ \      shl    ebx,cl1 O7 e8 g3 [' Q% ]
      add    ebx,eax+ |( W# n" b" f3 n; N) A% f% N
      mov    al,es:[si+6]$ u, U; r* P- ]! g, D
      call   Change' R1 N9 Q0 l& P9 G: ]1 {
      mov    cl,4
: z6 M- D8 Y& C6 v      shl    ebx,cl
7 @& z7 ]6 [& z3 A  E4 o      add    ebx,eax4 T3 s* n2 R; O- S# l0 \+ q3 I' I: U' a
      mov    al,es:[si+7]
( u7 A' l+ i; J% e! s. L! {) R      call   Change) h  ^6 P: a7 D$ V; T6 T
      mov    cl,4! e: j$ F' H9 N; B) P
      shl    ebx,cl
7 r8 E; d( v) I" b1 W! D# `      add    ebx,eax
( Q6 J" B- Q1 s# }# H5 ]: }, ?      ret8 O5 }8 G! ]1 S, _. m) l( T+ B& h
WDPSP endp9 C# u4 {; J2 f! R! q0 c! T$ w
;================================================================================================% j/ |1 w+ F6 F1 O+ ~3 ?2 n* x
Change proc near
: V. R; ~: B: K' T3 g! R) C% }A:   
  T1 m: B+ D) K) U3 R      movzx  eax,al8 N9 X9 ^$ y2 j3 Y- I8 l* x
      mov    edx,eax! y3 ]. P- c% K3 g$ B
      cmp    eax,'0'            & N$ j9 S9 j! U
      jb     A
+ U# Y7 D, W; L* {8 [. j      cmp    eax,'9'            & ?0 D% [) y! f( F$ p  T
      ja     B
, e& A6 A4 Y8 p; C& j; J" n      sub    eax,'0'/ u" x8 X* E' W; u, ]. ]: a
      jmp    short E
7 X7 ?; Z  [. X7 y3 R' BB:/ i; z9 Z; u1 J( }3 ~
      and    eax,0dfh           - `. ^" T8 G3 }) Q6 q2 n
      mov    edx,eax
* U2 a& Y' ]2 n- G, W3 G6 e4 n      sub    eax,37h            $ R/ I1 Z3 V2 W% E
      cmp    eax,0ah
3 Z3 j+ U3 f, c% T( V! v      jb     A                  
; R7 [4 D% }( Q1 ^9 ^' c      cmp    eax,0fh
6 j5 |: S2 e  m3 G0 n; o      ja     A                  
; t0 P- ]7 N" \  d7 Y+ o) f( UE:
. f. [7 |/ X3 [9 t5 M+ `      push   eax      
- W$ s! @+ B' F5 A* L      call   PRT                7 ]& C! ^# U% f
      pop    eax/ a) Q. k: n8 Y* i  G, `
CExit:. s  J1 `) ]. V9 g6 g: L
      ret9 G9 q; s& f% K# \3 X
Change endp
+ U+ w: f, n9 I9 k;------------------------------------------------------------------------------------------------
- q, L& V8 N) M4 m1 NPRT proc near' F; V7 |% y7 e% l. J; f
      mov    ah,02h
; E, N2 z" ^6 }      int    21h
4 ]' G9 F; R; ^, _, u      ret' P! l! k; {8 c+ s& H+ q
PRT endp4 M' e5 d" c# }& x% ]1 c$ I. H
;------------------------------------------------------------------------------------------------" l" w$ H: L9 v4 Q
crlf proc near4 O# `0 W, v% [0 m
      mov    ah,02h8 L" w0 A& U& h9 l9 R, F
      mov    dl,0dh. o$ K2 y8 K1 O/ Q  ?5 Q  y# N. v+ k
      int    21h8 S' z' g% C( v
      mov    ah,02h8 @: Y8 `7 x4 r6 r1 Z9 }5 D
      mov    dl,0ah" o" ], Q0 x/ B  @
      int    21h7 x' v0 P/ M1 `) d
      ret1 r' g0 ]- L. _2 E* v, u
crlf endp
/ P6 e; B+ A4 K9 T0 [% I;------------------------------------------------------------------------------------------------) }4 U4 @6 `6 @8 x/ ]
_32bits proc near  I$ O3 H4 Q3 S
      pushad
  j/ ?3 B/ \5 [' {, Z      mov    cl,4
" R9 F* e7 B8 P' L/ k1 H      rol    ebx,cl
' ?; x! b# T2 c( ], O7 l8 W      call   print_4_bits
: D5 M: Y& x) Z; P      rol    ebx,cl  |: ~' k  n' ~9 |3 q
      call   print_4_bits! P9 O; K. G+ J1 l+ P$ t$ g
      rol    ebx,cl
9 f% V6 d0 D  O; T7 S. l      call   print_4_bits/ @7 t: T4 f0 e
      rol    ebx,cl7 d  |# ~* ?0 }! h
      call   print_4_bits
$ h6 S- X. ~5 ~8 @- `8 F      rol    ebx,cl, y* x6 _1 ~: A, F3 d# [- l
      call   print_4_bits0 F4 S! v6 \& l0 y$ g
      rol    ebx,cl
% K4 E8 a. s: u7 N* L9 v      call   print_4_bits
- U2 `* n# r* a6 w% R      rol    ebx,cl; V# F% {1 U) T# k0 W
      call   print_4_bits
' J% k" w+ a1 R  m$ h  z      rol    ebx,cl
9 d2 o0 F* g  @# F) S      call   print_4_bits1 V/ n" N* l0 g$ ]
      rol    ebx,cl
. _- ?  ~) A' Q) f4 _      popad
" i2 c  b% q; x& U      ret
! p  A8 {1 {  {- M3 k1 j# \_32bits endp
! D% |' s5 C" P  {( U;------------------------------------------------------------------------------------------------
0 \1 U& w+ O8 K_16bits proc near8 e7 F  a6 {& K; I0 w, ~9 n- |4 {) l, F
      pusha        
! Y& [& T  G$ _) |8 o' P. f      rol    bx,cl9 D8 z( z  |, n* ?% Z, ^- D; _
      call   print_4_bits
( r0 C% Z" \: S' o# \% Z      rol    bx,cl' Y, {3 \$ d  g$ n; H2 [
      call   print_4_bits
/ ?/ T% Z. F4 g7 F$ o      rol    bx,cl
  v* v6 v* i* S1 j1 W% }      call   print_4_bits6 T# g1 `9 v" R
      rol    bx,cl- ^" h1 ]2 r; J" g
      call   print_4_bits1 R4 P, C: p8 w, t: U* b
      popa6 l9 Q3 g$ }2 b& d. d1 a
      ret
+ i3 S5 x. h# b, n7 y_16bits endp: |. U+ e8 c6 i$ w* _3 R# m
;------------------------------------------------------------------------------------------------
, Z2 ~+ J7 F8 ^1 J6 u_8bits proc near* {  `6 c1 ]  H& q9 o
      pusha        
0 d0 |( Q5 ]% k% v1 e  d/ L      rol    bx,cl
  f/ w' g# m* g, c2 q      call   print_4_bits
- m" {! `+ B/ @8 Z$ H6 @      rol    bx,cl
; R" g- ^% k8 @7 e7 j      call   print_4_bits
9 S( C, ^+ |9 w' g2 r' T      popa
9 V0 K0 R* f' F0 U! N      ret
0 \' a8 r+ J0 u1 S. Q; i9 M- l: r1 n_8bits endp1 n) E- f0 F4 J$ {7 h# B
print_4_bits proc near! s5 d2 W; n# G6 O' G  m5 k
      mov    dx,bx
3 g  `" F; B% r: t      and    dl,0fh+ B' W3 I: p; N! X5 G! B
      add    dl,30h/ D, ?, d- O# J* \; F
      cmp    dl,3ah' z' r5 F$ F) `) Z
      jb     print+ i* b$ X# k4 g) [
      add    dl,74 b! U4 P; e# A, Z+ u  W
print:  
5 m5 n. z( D( r& Z1 C% O0 \* J* |      mov    ah,2
% p6 k& X* X% m7 r! c5 n! T' Q      int    21h3 V2 n* I- n+ V2 |9 n1 Q8 e; q
      ret; b" ]4 g8 ~8 R6 a; |4 ^
print_4_bits endp   
# u1 k, `( P  \, o' N: _CSEG ends6 F2 L1 B' h3 B* q% V, x
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-4-4 14:39 , Processed in 0.149535 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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