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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address). v8 t! h) V, V+ M# F! q; c

* I2 e9 L0 q, d) l; ~2 h則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'1 C$ o* L3 l4 |; A) \/ J

5 T4 P' P7 E$ E% u宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  " d( y4 _; x! n3 I/ }% |
' Z) [; ^4 ^# S
.model small/ Y4 E; v3 A' l2 Y
.386p, H9 U9 I+ o% ?8 w
DSEG SEGMENT USE16'data' 2 _% g  J4 b/ w9 [$ Q! w
* r5 s! X7 X% o, E
DESC STRUC7 a( j! b- `( C8 h: J
     LimitL DW 0
% l2 `( e& v" k1 T4 f! v5 ~+ V     BaseL DW 0 . G& t: z5 m1 G$ D- }, i: S" Z4 K" ]
     BaseM DB 0
) u& q# O) _9 J0 u! P     Attributes DB 0
# D, A; M: `" P) n: A$ ]     LimitH DB 0
. F% v  S- O/ V( c3 D# R* ^     BaseH DB 0
. e- B  r& [3 ~" b4 Q1 VDESC ENDS
9 V9 Z- P( N/ n; q- I8 k' O2 N5 A- ^  T# W
PDesc STRUC$ X' E+ v3 Y' u9 c
     Limit DW 0 2 o% F* T6 z9 u8 g& n1 h5 q3 r
     Base DD 0
+ o; W' P$ v$ I3 \PDesc ENDS
6 [, P. F1 Q( ~
' h# ^" {: W0 iGDT_def Label Fword
4 u1 \) J2 D( l. }Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>9 k# F; g1 K' @" G% w0 K* X
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
0 ?  ]/ b, Q& t0 K% M8 P& u& r' VGDT_Addr PDesc <$-GDT_def-1, >$ }( F: E- P7 U% U

: i7 x1 W; l# [% u' HMaddress Dword 0
5 c  W: L& y/ t; _. Y7 t
0 b& ^; r6 M. zDSEG ENDS
2 a- q7 |3 V. @ASSUME CS:CSEG,DS:DSEG
1 e0 X$ l. G- m$ Y) Q$ @* R! j& x, h# f% P5 W) s) O' x- ^
CSEG SEGMENT USE16'code' 9 V- s7 ?% l( T" t
      push   ds  I; o$ O9 ^% i$ r/ Y7 J0 ?8 B: ^
      push   es2 R& }7 r" F2 b) A( |$ D* G1 z6 G
      push   fs
3 t, v* a3 f' Y: s0 ^' ]      push   gs* _, Y4 d+ O0 L) a+ e% D4 s; I; {" I+ E
      call   big_real_mode     
% Y0 a4 O6 ]& l% w2 U      call   Get_Commandtail
* F: L5 s+ t# \# i      xor    ebx,ebx. G! v" z2 ]4 R
      mov    si,82h( U: V" I! v" J+ W  C) b" e
      mov    al,es:[si]
8 q7 x7 j2 G% O, ^      cmp    al,'r'
+ {0 x5 N* W- ?5 L      je     R8 I. G! k% o0 D# b3 J
      cmp    al,'R'- u/ t& \" A3 O9 P
      je     R
+ i% M6 E% ]8 \7 u% l; @      cmp    al,'w'
  ]' A! E$ C. i& a8 ]4 g: y      je     W
% X9 g& A7 f; I* Y      cmp    al,'W'  m. M# y* c! b% {0 I2 X
      je     W          ' Y' K5 b* s8 B/ b
R:
9 {9 S( J$ N& v1 S      mov    si,84h
$ I7 `& T/ N, u. Y      mov    al,es:[si]
; h! U& v0 k. ~" @$ D. l      cmp    al,'b'$ ]: Y' v  O* ^+ w8 B  q1 M
      je     RBT
" j* d1 i: G1 {" ], }: X      cmp    al,'B'
' q* D$ X4 E- l3 X      je     RBT1 m! R+ B% a" a0 B
      cmp    al,'w'" j+ J4 e6 O1 }3 J+ H, ~
      je     RWR
: L2 ~7 u) S6 u) i2 n      cmp    al,'W'% h5 V, F# j' Q: b
      je     RWR
! E$ f$ k4 k4 |9 A: c% q% [      cmp    al,'d'
- b3 o( t3 }- f/ M! `" d      je     RDR
9 F5 p+ r% p$ w- v! Q3 D      cmp    al,'D'% Q# I5 h3 a; }  [0 G
      je     RDR            
. z( ^' L& W" [W:      
' x; F% |7 k$ N7 h" E: h/ @2 E# L. T      mov    si,84h6 I5 w& @. S' T  @, @8 Y. s
      mov    al,es:[si]2 f& g" N2 b1 Z" F+ u8 h+ }9 C
      cmp    al,'b'
7 Y) \: D4 `% b) B' \' y      je     WBT
2 t& U2 q4 q* j3 F      cmp    al,'B'; |& y) [3 K. ^0 |& o
      je     WBT8 P8 A8 Y' b) `9 D
      cmp    al,'w'& s$ ?- O, i1 L+ e
      je     WWR
' F9 w, g9 ~8 d% m      cmp    al,'W'7 P3 Z0 K4 k$ I3 Z9 X
      je     WWR( w; ~$ }* b  y2 P$ k- T9 k
      cmp    al,'d'5 ], Y, I$ q/ r3 T9 {( V
      je     WDR
+ R; k9 h( G) k      cmp    al,'D'
0 N/ c  y8 Y' d! P      je     WDR! n: ]7 q3 |0 b3 l" |/ ~( O4 Q
RBT:
6 _' D/ s* i/ |0 a( m      call   PSP        - l0 k7 e1 X% }( e
      call   crlf           
1 C8 w& k9 n, e/ _4 W. E& L      mov    esi,ebx
4 ]. s' D4 }; K      mov    eax,fs:[esi]
; _5 X2 @" b  Z# E' g$ D/ ]; ^      out    80h,eax
+ d* M( L6 }& X2 {      mov    ebx,eax( W& [, C, |" K; G, g& _  S- P. ?
      call   _8bits
. a8 _2 b$ A7 c' @# U      jmp    Exit
' o; W: Z/ Z+ S" x% zRWR:
+ G! f% _* S  S/ N+ A      call   PSP        
& n$ A5 r% H; _1 y' s% [; V      call   crlf           
5 ~1 D$ }& B. J. E& i( [      mov    esi,ebx1 v0 g" |" g' n  G, D% p. R$ c
      mov    eax,fs:[esi]
5 S* q, P5 O4 \9 r# l      out    80h,eax
7 m7 l  ~/ w6 k3 l      mov    ebx,eax
( a3 [. O& i5 D* {7 o# v% Y! d/ l      call   _16bits1 S6 [6 g" }1 L$ [5 S
      jmp    Exit
' J2 m. B( F, M+ e1 x$ cRDR:
0 l  m( V. H4 _0 a; ^8 y, I      call   DPSP        
% M! o' B! z: s      call   crlf           
6 J' u# j3 M8 {      mov    esi,ebx! t  ^  g! T  n( _( t
      mov    eax,fs:[esi]( `* G2 M" u* X3 U
      out    80h,eax
* x3 f( @/ {. O# s      mov    ebx,eax: r0 e, A, @0 E/ z
      call   _32bits
7 T$ ~3 F6 @' z      jmp    Exit1 {4 W( I" w& r- \9 I) W" W9 Q
;------------------------------------------------------------------------------------------------6 Q& d$ H8 o6 N" @4 i2 A
WBT:
9 g" `3 k( P( p6 L# Q7 i/ G0 G      jmp    Exit6 Y* c: X; A/ m
WWR:
. U  T7 y3 D! E: A" c+ d      jmp    Exit1 ~3 Z0 I  E0 t5 k
WDR:
* g/ N' Y* c6 `- j# o- @5 p      call   DPSP1 P* w' Q, v7 E2 D* W' ?, k# }/ Y
      mov    Maddress,ebx      
/ U3 q# W# ~' P      call   crlf1 n) Q: r  M5 u; S# u
      call   WDPSP
! n' L) [* l( A) g9 @$ v$ \$ r      mov    eax,ebx
) m: D" S' X# r( o/ V& P9 Y      mov    esi,Maddress         
2 z$ {0 j( }) R* g1 k- _, C. M      mov    fs:[esi],eax' _6 p* W1 b& S. C& u+ c- }
      out    80h,eax
6 q' N" M9 n4 M' H" K: K+ W  X0 g! q      jmp    Exit" P# J4 M2 i  q2 P1 m
;------------------------------------------------------------------------------------------------      
! `& E# O$ ]0 \; m+ Z% V' IExit:
$ E! Y2 Z# G+ B( m      call   real_mode     
8 r4 z1 a' L* Y6 ^& n/ [: G7 L      pop    gs2 p3 \0 B. }: ~* p4 L. ]9 M$ |( v5 ~
      pop    fs
2 L+ b; G& [2 J1 ^0 E# j      pop    es
6 Y( f3 {8 r: Q1 ^* |+ \      pop    ds      
1 i( I6 r" P$ p      .exit: v# D: q7 I9 ?7 @' T8 ^
;------------------------------------------------------------------------------------------------
  k7 d4 \3 s6 o4 g$ e. }' Fbig_real_mode proc near! k* H; i$ d. ]( Y; Y" l
      in     al, 92h
' P& q( R# K) I( v4 E" I7 W3 i0 _      or     al, 002! m6 j6 O0 I( a2 J
      out    092h, al
" y+ w; T% S) |      out    0edh, al
% N4 Q7 n, o# R) E5 D1 P      cli. A+ }$ Z# u" M% B8 o
      mov    eax,DSEG
3 x. G1 {$ X9 D% [2 A% P4 k      shl    eax, 48 R# }. L% J3 k3 D% T. [
      xor    ebx, ebx
& z1 f+ g/ H# M- d      mov    ebx, offset GDT_def' P& L' U+ y+ P4 y+ n( c
      add    eax, ebx
0 Y. J: o4 Y$ I2 z      mov    dword ptr GDT_Addr.Base, eax5 @3 W- h: k( \) {+ O
      lgdt   fword ptr GDT_Addr
! Y( m) @  H4 ?- t9 g7 j- a& a$ n      mov    bx, 8
) o; y' H' E+ Q6 w4 S6 s% v      mov    eax, cr0+ P3 X( u: H* `9 U
      or     al, 1+ n3 G* y0 y8 E2 @; W0 P6 N. y0 b
      mov    cr0, eax5 G6 s9 }, h1 |# }2 i, q
      jmp    PMod% @  |# v9 c' D3 J  f
PMod:" `0 c. K& F  M* i# j6 z
      mov    fs, bx
+ b% l( s/ h9 K! D7 i6 D, ?      mov    gs, bx
* G; l# s: r2 p$ ^. A1 X! U      mov    eax,cr01 S" }: u* c/ V8 b
      and    al, 0FEh9 m) n9 A7 B- v  J0 E# k2 r) a
      mov    cr0, eax , \& s4 t' }. H3 M& [  Y- N$ M; S
      jmp    RMod
8 ^, y3 x  @4 i) R  @* l! v! mRMod:
2 M! ]/ U6 j$ K) u      xor    ax, ax
5 \$ W* z# O( ^2 p+ a      mov    fs, ax
4 j: y  O8 f; U( {; c      mov    gs, ax     
6 `5 Q' @* v! }      sti     . z2 w3 P6 [* i6 g% V7 i) o
      ret
" w* r4 @0 b3 h4 P/ o/ a5 H) [big_real_mode ENDP, ]1 J' U6 E' f( L$ n+ S' O& i* v
;------------------------------------------------------------------------------------------------
. P- [& i8 }4 p9 t# I% A6 p5 Treal_mode proc near
4 C2 E, ^! `. W$ T' M      in     al, 92h
- Q" r5 o; p" m      and    al, 02
. e, Q0 q  \) m$ y( u      out    92h, al   
, P: A) ^% V" J  ~      ret: q3 C: E. a6 t* f5 j
real_mode ENDP  F; O6 c0 x7 w4 ?
;------------------------------------------------------------------------------------------------
" d% L4 F6 {3 `Get_Commandtail PROC near- ]& K$ Y* J8 C
      mov    ah,62h - M2 C4 G! M! q7 i. Z
      int    21h$ |0 _5 N$ }- l, w& c$ G; M% [
      mov    es,bx# t( ^! _- S7 D/ c
      ret
- s; c3 m' n; j; a2 H0 [) ?2 ^Get_Commandtail ENDP    8 e( \+ O$ j4 D4 G: n, J- @
;------------------------------------------------------------------------------------------------
+ G( J& v9 ^6 A7 D1 E1 ]PSP proc near: H4 b3 j% y) W" Y& Q/ ]
      xor    ebx,ebx
- L2 i* P) h  H' g9 _; I% w' d      mov    si,89h1 j& l" M6 C" D; x9 C# [
      mov    al,es:[si]
3 b% ^+ L. l& v8 l2 E* G      call   Change' i7 k6 H. ?7 n4 Z  @# O! Y
      mov    cl,4
! N# D) Y7 |2 C  A+ v- K  {      shl    ebx,cl
  u( C* H5 e$ B: U      add    ebx,eax, k- g( v& n* `* \, i! L6 {) S
      mov    al,es:[si+1]/ m. z! E4 z; g$ ^; X
      call   Change3 s8 e! F. Z' d: D( {
      mov    cl,44 x, `4 C0 S# N$ \8 e, ]0 p
      shl    ebx,cl+ C5 G/ W) r& k. V" c) n
      add    ebx,eax" m1 A5 c5 O" W, P* p. c
      mov    al,es:[si+2]
2 j& _6 p$ s, h! g! ~# d0 A      call   Change
) p) o% e8 U5 ^8 F, Z      mov    cl,4" F. A$ J8 \( j
      shl    ebx,cl
& G! |/ M' c+ f      add    ebx,eax
# v# n' D  b. a0 ]9 l# I      mov    al,es:[si+3]9 [4 v/ ?! D: T+ r/ m. e% I
      call   Change/ b0 m% x& ?- y( R; P3 H
      mov    cl,4
: q8 X6 d/ k3 r+ m- l( g1 G      shl    ebx,cl+ {% @5 ]5 J! O$ ^2 e( u5 z7 i
      add    ebx,eax
% \9 }% L4 q( \3 O* p7 J      mov    al,es:[si+4]
1 _; V+ ?- b& l5 i3 d      call   Change# ^/ Z# o' e- t
      mov    cl,4+ b3 H/ u! g1 V8 k- b, @
      shl    ebx,cl
0 Z% M7 k7 X/ J  k0 M      add    ebx,eax
# c3 ]3 r+ `8 J! |4 @      mov    al,es:[si+5]0 g* D% u4 o4 v) e8 p
      call   Change
% L5 t9 r0 S' X8 x! L      mov    cl,4
8 M. x; i0 p& r2 Z      shl    ebx,cl( F, Q1 y  p" l& \8 D
      add    ebx,eax5 D& w# J0 V  h
      mov    al,es:[si+6]
( }: j; R9 U7 ^/ M7 |) ?      call   Change& D8 ]7 k2 z6 ~. v" O& W2 I; {/ a
      mov    cl,4; ^% k, C. H9 c0 T& d% T
      shl    ebx,cl
. n8 f5 G! k& f# S+ `      add    ebx,eax
* ?! K4 o9 o: g3 g0 d' N      mov    al,es:[si+7]7 Q# S5 ~2 i. c
      call   Change1 V* V& p5 S0 _3 b
      mov    cl,4& b) r1 ?8 A" t7 W. t
      shl    ebx,cl
8 [, k, M4 L. R; w      add    ebx,eax
/ ]! p: U- F1 \$ n; q3 b      ret
8 L% G( s: F6 u) aPSP endp
$ x1 F( d! g7 k$ I, d# g: p;================================================================================================
$ _1 N* H3 ~9 fDPSP proc near$ Y  h6 W& L) d' K
      xor    ebx,ebx$ Y% f" ~; h7 _: Y, G
      mov    si,8ah7 I4 w* C7 X- ^; U- z
      mov    al,es:[si]0 @$ i$ w/ X5 ]+ a0 f$ i
      call   Change/ w; z3 \! x; f8 n% X, x, \
      mov    cl,4( V" `! e! D& f, \+ U5 O
      shl    ebx,cl
  J. `9 C) f. {& i7 R# n: H$ o0 I      add    ebx,eax1 R: @  D2 K5 I4 v4 {( Y
      mov    al,es:[si+1]; B7 [/ K: d. M4 n+ J: F! d
      call   Change3 `4 f, R9 h% ^: o4 H  v! @
      mov    cl,4+ o3 T$ H# E0 N3 O7 p
      shl    ebx,cl! d4 V1 S& _( X, F
      add    ebx,eax
& `$ x( r) v7 K- G( U% u      mov    al,es:[si+2]
' b& w1 F$ r( W: W# O' \      call   Change2 N1 n& i; y( [6 O/ q) M  X1 t
      mov    cl,41 O0 N  x. D( _9 t. m
      shl    ebx,cl
: H4 R4 M/ a/ K6 U  U      add    ebx,eax
" M, `  k. p" d2 |4 Q. }      mov    al,es:[si+3]
4 T1 {( N$ }# c1 s1 i! c      call   Change, O% {) W9 Y; ]0 o
      mov    cl,4
7 T: U) \" k" s% h4 ^8 s      shl    ebx,cl
& }0 E' l, f6 E1 \/ X9 n      add    ebx,eax) K; i1 F6 D, [$ ^* X8 O! [" ^! K
      mov    al,es:[si+4]( M! U9 C- N* A7 {: I, F6 e
      call   Change9 U/ m9 B) O% v& n4 h
      mov    cl,47 v, C9 b8 p' Y( v, l4 Q4 s
      shl    ebx,cl
8 l( b& B4 y, N0 o7 C. L      add    ebx,eax7 f* a9 e9 a& `7 Z1 x6 d, z
      mov    al,es:[si+5]; L- \/ G9 u! g# @
      call   Change1 V. p  i2 E1 y: {! c/ b4 U  ~' n
      mov    cl,4
( n* y# B- G- Y1 n% r      shl    ebx,cl
( m  w8 S' K4 r6 g      add    ebx,eax
  x' _3 ^$ g' _( _* J      mov    al,es:[si+6], x# r  i6 \- X/ d) L
      call   Change( {( q- O8 A9 a/ X
      mov    cl,4$ B# B; y) I( G- R0 l& y5 U' m
      shl    ebx,cl
# \: P4 O# Q% g4 {      add    ebx,eax" M) e# P! c7 ~9 T6 {( j
      mov    al,es:[si+7]6 }0 Q8 A! {) t) B. o
      call   Change
1 g. j& e1 W/ {- G1 J      mov    cl,4
) `2 g9 o% p0 V- n2 Q' I: B      shl    ebx,cl* p* j' z7 h9 ?, T3 p2 r5 z
      add    ebx,eax! S, ?& w, R4 c
      ret
; R; M( a" n  C, f2 t' d2 fDPSP endp
; Y+ {0 y5 s4 O  G$ d# c7 i;================================================================================================
: J' e. N) @( FWDPSP proc near
8 c) a: _! i+ g) H( C4 n* d  e      xor    eax,eax# G) o# p. \8 o0 M; K
      xor    ebx,ebx/ C' P5 C( H$ T* G$ I: i
      mov    si,93h; p0 L' u, Z* O9 d5 o' Y) F
      mov    al,es:[si]
& \, \. s2 g& c      call   Change
" O& S2 S: w/ O* @      mov    cl,46 S# Q  Y) X* L
      shl    ebx,cl0 y! W6 c% |! G  y
      add    ebx,eax
/ O( H% F9 e) ]9 _% M" a      mov    al,es:[si+1]
( p2 j, G# P! I) |6 l7 p) @      call   Change% N! D" Y% d. X
      mov    cl,4
- Y. \( ^  u, H  u4 g      shl    ebx,cl
& g: I, m2 P8 _2 F' Y      add    ebx,eax7 R6 j$ W% u" I  Y" u
      mov    al,es:[si+2]
2 v, o* L8 ^, m- q) m. v# q7 `      call   Change
4 t' I. P* g+ y" p4 S; S      mov    cl,4( K2 n- `" V/ ~8 e. L; f
      shl    ebx,cl
6 w( B3 k7 c. M      add    ebx,eax7 N% l) F4 X4 d/ O' b
      mov    al,es:[si+3]
' a1 H" t  u3 d6 N3 Z      call   Change2 P% A% Z& {" m6 }) s9 W
      mov    cl,40 |  x4 G$ z& K$ \9 `4 V
      shl    ebx,cl" a  h" l" W% v5 F- B8 G, P( A, `
      add    ebx,eax& L- V3 D. t( p4 O$ E
      mov    al,es:[si+4]
9 _( w# a  B: H$ `" \      call   Change
8 A8 }$ J; E0 C$ |9 r0 r. F      mov    cl,4
& t- C  j' B0 b, e      shl    ebx,cl
) S" j4 D9 |$ x% N) u7 q+ P/ J      add    ebx,eax
+ w' O+ K5 i5 J/ r; a      mov    al,es:[si+5]  ^. @. ^/ i2 \" B7 c4 c& {/ Y" ]
      call   Change
8 Y2 l( U9 @1 y3 p2 G' K      mov    cl,45 [" g, H' g* t+ a% n; H
      shl    ebx,cl& I' b* M" G: x* d( C$ \
      add    ebx,eax
7 S; A; a, I! V      mov    al,es:[si+6]- v* f4 d7 k) x, U" N/ N) h: E
      call   Change
) Q5 N1 X9 }5 D* K2 O      mov    cl,4  |. ~  ?9 K2 B$ W/ I- ^8 C( g
      shl    ebx,cl, U: n, G) ^( ^9 }% J
      add    ebx,eax9 o% X1 F' c1 u6 U! @% \) V
      mov    al,es:[si+7]. @. v7 _% `/ q; \2 t% i
      call   Change
* |( ~. ?5 M) C! h5 K- @+ u      mov    cl,41 i2 L; B4 W# f) `9 @
      shl    ebx,cl
/ |" o) Z5 M, X; k$ s5 N9 D" V      add    ebx,eax
9 I# \+ L5 A0 j* S      ret
; y* M2 \$ ]9 }/ _  p( h) jWDPSP endp9 g2 ]/ W3 O. k6 q* \+ }
;================================================================================================
( K( Q: U7 u) _$ G, d: iChange proc near
3 J( }3 [; T) RA:   
3 u8 f7 z9 h5 ?# v      movzx  eax,al
4 o2 }0 D: z8 W- _, K      mov    edx,eax- }6 k  v2 I/ W- }
      cmp    eax,'0'            ; i1 N  J/ o9 f. F
      jb     A% M+ }4 a! z6 ]2 j: \; U4 t& D
      cmp    eax,'9'            9 \7 E- e$ {5 ~1 f" s
      ja     B3 ^3 N5 C# r: P1 z8 z" o( w. e
      sub    eax,'0'- `- o0 u4 x5 Z' w" B" t2 v
      jmp    short E
$ b% e2 t4 A: q$ cB:. y$ e+ o) ~# a8 O4 ~  L  r
      and    eax,0dfh           # Y9 D; ?+ O! c3 K
      mov    edx,eax
; b- z" ^4 C$ w8 {, ?7 b      sub    eax,37h            
( n/ L& ]* ^: `9 `6 {      cmp    eax,0ah+ n! N9 c" j) I- _1 k
      jb     A                  
8 o& g9 D; E1 m7 L      cmp    eax,0fh0 n5 w! d& J* G1 T, `; n
      ja     A                  $ x- ?$ ]5 [- j# i/ s
E:
" f& a' T2 K) }. g3 ~+ q/ p* Q- `9 ^      push   eax       % R# E. h6 A8 |$ d
      call   PRT               
9 {. W' _1 U9 {! t  \8 D  P2 P      pop    eax
+ r% R- Y6 e+ `) o" N" wCExit:
: L5 E4 ?8 g: I8 ?# n      ret5 S# r' W: s; K! t. n  T% Y
Change endp3 V( {5 P4 Y' `* X8 x/ d- ?0 N- Z
;------------------------------------------------------------------------------------------------
. q- v4 G0 I! ]5 W8 N% _3 o! _PRT proc near
9 R; D, _" f! |0 u      mov    ah,02h# `/ A/ k6 \2 V$ |, F0 T
      int    21h
( o: h7 X, u7 _  d" g  u& @  D      ret
( o% W* ]5 r6 v: l' m3 iPRT endp
! M0 g% V8 d( r# s+ ~;------------------------------------------------------------------------------------------------
. H- Q( e5 H4 M: _) ucrlf proc near; M& Q) V0 W. f
      mov    ah,02h' f7 {6 M. |% d
      mov    dl,0dh3 e. T1 |; Y) J$ y
      int    21h
- f* y& o: ~4 e9 D      mov    ah,02h# f' M/ _6 O2 Q5 i; D1 K  U1 W& z
      mov    dl,0ah
; m4 I0 t0 ]1 c+ I      int    21h
: W; e  z) x) }7 Q; \: h      ret# @3 A* i/ F1 c$ W6 A( j# K
crlf endp
5 l' l2 y. z5 S;------------------------------------------------------------------------------------------------& ?0 O* O8 {' y4 y; C
_32bits proc near
0 g/ Z$ V2 r# C      pushad
" M; ?% q! _( j/ w" U      mov    cl,44 b! e" d/ _9 x: r6 P  d) z) x
      rol    ebx,cl
+ O9 l8 b* y3 F* F% R  W- S  e      call   print_4_bits
4 c% r' d  F5 Z+ h1 @  F' C      rol    ebx,cl
  k: k" p/ y' X8 L& G  E, d! [5 i+ l      call   print_4_bits* N: j- E: d2 y3 ?5 f
      rol    ebx,cl& T* v9 Z" f- G& v
      call   print_4_bits- U* h' c2 B5 T& p
      rol    ebx,cl7 D. u& b3 \) x  I
      call   print_4_bits
  B, e! S% I# R  D7 k      rol    ebx,cl
+ \8 C  o0 P- _9 \& _7 X- s. w      call   print_4_bits9 z1 r2 c# z, K& d( s
      rol    ebx,cl
# i  \% L9 b  p. a6 e      call   print_4_bits. `: R& _" q( H/ r) q/ V7 L
      rol    ebx,cl9 V3 A7 D) `" e! B
      call   print_4_bits7 W  \  x+ t; K; O. H1 m
      rol    ebx,cl7 l  v/ Z$ d+ X) ]2 [
      call   print_4_bits
( v0 ^9 m) y1 u: p2 x      rol    ebx,cl  h& \) }7 |) @1 L' x3 `  [
      popad
( `. H* P; F8 s      ret) x* u& ^8 Q' @. `$ ^6 Y
_32bits endp( g; n) ?; h! _% N  U/ O
;------------------------------------------------------------------------------------------------
* c. y8 X+ d* o_16bits proc near
0 L$ u3 l4 P8 R      pusha        
8 I. ^5 [" j& C; l( t# Y2 `- a      rol    bx,cl
" g$ u/ g, c- Q4 _3 W$ \      call   print_4_bits
+ B; @$ y  O1 q% V, m# ~      rol    bx,cl+ c, G, S/ q2 C4 y! b
      call   print_4_bits
0 A3 K! E8 N( `      rol    bx,cl
# T4 Q' j4 g8 ^  y7 x( [- [, N      call   print_4_bits
  c8 d$ @; }9 d1 G# X/ j5 M      rol    bx,cl
! y! e& C+ s' w7 O6 J      call   print_4_bits
9 s2 B  M' A9 c4 d$ g      popa
$ M9 w# j/ S7 P; x, X0 t      ret9 h0 Q5 c- l+ }$ l. u5 a
_16bits endp/ F+ s4 P% N1 [1 T
;------------------------------------------------------------------------------------------------
; f3 B! J9 h4 ^$ f# C  r9 {1 Y_8bits proc near
: S( t( E# O; M( [9 K: E      pusha        6 b) i+ H4 d9 _! p! n9 e
      rol    bx,cl
2 f- R; u) u0 Y+ L      call   print_4_bits
# `- _0 W7 O) ?) a! w) b9 Q      rol    bx,cl6 O: m3 }6 \  }
      call   print_4_bits  K. i9 L7 [) v& G9 e6 S
      popa1 x6 Z# y4 J# D1 h% D
      ret9 ?3 u4 f( s4 G5 u" O
_8bits endp# J& z9 d! }% `$ f" v7 q$ H
print_4_bits proc near
4 S& \" Z2 @! G      mov    dx,bx  p+ V1 R! ], u; K
      and    dl,0fh$ }) {0 b' D! O4 Q' e: K$ H; T0 E
      add    dl,30h
) `7 Q% F$ S5 @% D$ s      cmp    dl,3ah
, l6 |0 C4 e. @! a8 U      jb     print
- V0 z; R3 U- @9 \: O( [& S( s      add    dl,7/ U- m& t! _* ?
print:  / b* B+ _' I% v7 `& V
      mov    ah,2
, |6 ^7 p8 Q( W7 b      int    21h. u( f0 J' ?! V3 f0 f# R2 m7 T
      ret' F1 q8 j8 B7 K
print_4_bits endp   
% m1 J& \8 _( `; O" B" i4 eCSEG ends3 n, e( Z9 P! Z+ \% I
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2025-12-1 08:36 , Processed in 0.084476 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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