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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address), G: Z9 t( l$ l% m* s) I+ N# R
( J4 I! u5 V2 d+ ~8 k
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
( P* P, P! f  R  j
. Z1 E9 T, X( {/ J$ i宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
5 ^+ d% H. o; \
+ o2 }% ?- {3 E- P) W3 Q% C6 c! K- `' O.model small% Y* x4 M+ G5 q: P* l* D
.386p! ~" c. Z) `* L" }
DSEG SEGMENT USE16'data' 8 f" U# {: t9 g1 S0 F. E

. ?2 y6 _5 `2 n: C' }% I' H# rDESC STRUC' }' M8 t% L' G
     LimitL DW 0 ' b( {2 y9 L+ ~- v) R
     BaseL DW 0
% R" S" {  d' O; G     BaseM DB 0 # b9 O  H+ ^% _3 |3 C6 F( a( r
     Attributes DB 0 / @0 C* {3 T4 Q
     LimitH DB 0 # Y! }% v& l0 |+ k
     BaseH DB 0
8 R( ?  ]- U8 g3 v% |' C+ FDESC ENDS, g1 K6 f. p, S$ g) ]
8 s# ^* U( k' x
PDesc STRUC
# ^: V: M( S5 y     Limit DW 0 + @7 X1 Z4 d9 o' ]; t
     Base DD 0
# P# N& R4 x3 m. S. jPDesc ENDS
4 b5 _2 c* w1 O2 `9 E9 `# F1 F6 h% |7 s' X  i' H5 _6 }
GDT_def Label Fword
* ?4 H( w, T7 b+ @- h; i8 N$ TNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
8 E: F' Y  L8 ]) OData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
: r+ T* V- ]9 [# H3 m% @GDT_Addr PDesc <$-GDT_def-1, >
( J9 D. n5 Q& b( J, \0 q% D' D: `7 I' b$ J8 y! R
Maddress Dword 0
) @( R1 X( u1 J5 f$ C6 [/ N5 s1 t2 }% V% b
DSEG ENDS
1 Q8 O% r1 b: n- }ASSUME CS:CSEG,DS:DSEG2 F- V# t5 s% N- e( U+ c

6 v7 k# S$ E) D- g$ XCSEG SEGMENT USE16'code' ; u, e: T7 B, \9 q1 [9 }$ j$ Z
      push   ds
* M8 B$ Q4 N/ j' n      push   es* \" w* p3 y, v! z
      push   fs
) ?% u  Y7 x, m5 x$ F7 F      push   gs% v9 h9 j1 L: M) [' z  u
      call   big_real_mode     
' f8 O% N4 v: S' s) E" ~3 i4 o      call   Get_Commandtail! p% m" N  O! B4 `9 I, k! O: m& U
      xor    ebx,ebx
1 v$ Q5 {1 x$ t$ g      mov    si,82h
* Y+ |) |1 T3 T* @      mov    al,es:[si]
# d( J/ e0 y$ ~      cmp    al,'r'0 [; P) [' I9 d2 \) K1 y; p
      je     R  L+ K: y3 w; }0 _6 b- B4 u. B8 o3 j
      cmp    al,'R'/ n! N9 b6 i' {2 y+ t
      je     R. k$ \" X5 @7 x, X
      cmp    al,'w'
1 i6 J; L5 r2 X5 u, t/ T- Z) G      je     W8 k2 b9 A- c" ^+ Z! F
      cmp    al,'W'
+ s" p: k: Q! _  B1 v      je     W         
: M$ b- l$ E$ w6 cR:. |5 n% K7 l; U
      mov    si,84h7 J( a! t6 d, Z
      mov    al,es:[si]) L, [9 d% @8 c# m6 [2 s
      cmp    al,'b'6 l) w1 V* A% H5 S
      je     RBT+ U% _5 R! t+ `! y- e
      cmp    al,'B'
9 T' {, s$ w9 B, o      je     RBT. a, G6 a) c4 A# w* g
      cmp    al,'w'
3 T( w% [8 {" x  c; [      je     RWR
8 w- o2 w3 F, z& v# x* ~' u      cmp    al,'W'1 v. l9 a, v9 G5 f6 [; R
      je     RWR" b7 k6 e/ H- G4 O9 ?" h6 T
      cmp    al,'d'
# J9 v6 H" L3 O+ c/ F9 D8 I& {# D5 c      je     RDR
# |3 M% [( W8 j- {/ [      cmp    al,'D'/ k( ^6 K4 @7 Z
      je     RDR             / x/ t( E! L+ Y
W:      / z+ l8 ?- g2 t9 ~, R6 p* {
      mov    si,84h
8 m1 l' d. l, C) x4 q/ @      mov    al,es:[si]
/ V; u# q# _% |      cmp    al,'b'' k0 u; w- n% W2 `# E) R! Y. j8 i
      je     WBT
. L* Q+ `; W  K! i5 D+ w      cmp    al,'B'$ p& p2 ?" O, @! \9 R
      je     WBT
0 _% d' \+ ~4 ?- e  n: G  i      cmp    al,'w'
0 Y$ ?0 e- z7 \( f% K2 G      je     WWR  `7 E2 t% V4 V3 {( d
      cmp    al,'W'* j0 y! K0 ]2 e0 ^# a
      je     WWR
9 S' |; r/ r" M) h. u0 p/ D* o      cmp    al,'d'5 K1 U# t3 D5 R. H' C
      je     WDR
3 `. ^' L  E' @, r      cmp    al,'D'" ~3 a" Z' _3 X+ R( C0 W7 c
      je     WDR
9 b6 ^$ |( V! r) L6 e+ ARBT:
( A; Y/ `# D6 B0 s& m      call   PSP        5 V% c# X! G5 ]/ \  w* x/ o
      call   crlf           ) R3 H! H+ S' l% l" N
      mov    esi,ebx, {9 O- A  i7 q3 Q' ?$ K4 b3 c* m" ]
      mov    eax,fs:[esi]
* W# V6 u+ Q- R! I1 |      out    80h,eax) X  E( T2 w9 O  p
      mov    ebx,eax
% X& q& R0 q3 {  A% p; H& y      call   _8bits; i! \6 f# A: \8 n
      jmp    Exit
" W# j6 s- V4 V( iRWR:
" x/ z! a7 L5 _1 X      call   PSP        
1 P& [. @2 Y5 I' F/ Y      call   crlf             O6 S& M+ [$ r  A! O
      mov    esi,ebx
1 {( j- B  p2 S+ V" `* E" N( ?      mov    eax,fs:[esi]
$ J3 P* s* e# {. Q+ x0 u9 f      out    80h,eax
' X6 \+ k4 d0 r/ Z/ k  C      mov    ebx,eax
, N9 V% l5 X$ `! m- I      call   _16bits- T4 ~1 s7 O0 p* O: k+ ]
      jmp    Exit& k% L' B( T. {( N5 p4 t# p
RDR:  X+ I1 U9 n, E8 @! m1 v
      call   DPSP        
9 J% z0 F: T% y; D& i2 i' t      call   crlf             g+ G$ B+ _% p) ]* \
      mov    esi,ebx# _  X: f! i  j# j/ r* r
      mov    eax,fs:[esi]4 \6 A- \  i$ J
      out    80h,eax
7 B4 b" m5 L7 g9 M3 z      mov    ebx,eax
0 \6 a9 T: i1 ^4 t% _9 ~) P8 M      call   _32bits
: J' |- K/ ?- s' k  S! _      jmp    Exit5 q9 Q6 M1 C0 ]- t6 B* u+ r
;------------------------------------------------------------------------------------------------: R  D; a- N1 m; X) v6 z
WBT:8 |" x- Y/ i7 F; c9 y
      jmp    Exit
5 {; ^5 F' P6 Z  ]# ]WWR:
9 G/ f8 |; @) {' R9 Z      jmp    Exit
3 R' G, ?& M9 v/ n, t6 R+ V3 w# MWDR:
/ y# K. z( ?: V1 g      call   DPSP
  L. R% I, Y! x      mov    Maddress,ebx      
; K! I4 w5 k" L7 s# q& k0 l      call   crlf
! _) p# f) s! X/ L; T6 P      call   WDPSP2 x! u' L; e) r. j" a/ y
      mov    eax,ebx
+ p: s; B6 A$ c% }5 U' b      mov    esi,Maddress          % d* H. r$ T( M2 n8 d
      mov    fs:[esi],eax
# S9 v( N. |2 `% E. u1 Q; E      out    80h,eax2 }0 _( P* E4 Y+ r
      jmp    Exit
" E; f/ V! N! _;------------------------------------------------------------------------------------------------       ( X8 ^0 O, N) K6 M( e& ]
Exit:
5 X2 {( Q( k+ b. w" O5 t; j      call   real_mode     
; K& k7 x! |$ n! N+ l      pop    gs1 j4 C4 l2 q% D1 W, ]& j
      pop    fs4 N; Y2 d, x4 v; ~# i4 n
      pop    es
: |4 a$ d7 U  M, n      pop    ds       ; k3 [  J. n" T
      .exit# D0 g/ S3 Q+ Q- f6 r
;------------------------------------------------------------------------------------------------
# G4 _8 O8 V! H# Rbig_real_mode proc near
  ]7 E% F5 c0 \      in     al, 92h
5 P0 a3 L7 ]- w      or     al, 002
) A8 U% q& n- Q4 K, _      out    092h, al. [2 ~$ M2 B* F( B
      out    0edh, al
7 [- r' n. _8 ?- s, G0 I( C      cli* z: l( q  i4 F7 F+ ]! D
      mov    eax,DSEG# P* x; d+ ^6 Z# q' A; V* ~
      shl    eax, 4! `. ~4 c' S! l, c( i1 R
      xor    ebx, ebx6 e$ i. e4 a$ M6 O1 f6 i! g
      mov    ebx, offset GDT_def
6 |4 T$ W7 f" J$ r      add    eax, ebx( h' t( M# R* K8 D- [
      mov    dword ptr GDT_Addr.Base, eax
* i3 I) z) [' l4 r      lgdt   fword ptr GDT_Addr
8 n# I& S2 [1 X% j8 k7 D" j$ t      mov    bx, 80 y$ O# Y# Q; B) i. `
      mov    eax, cr0$ ^' ]* n# m, q. l9 X+ [" O
      or     al, 1
  w5 [; l* q4 G$ c      mov    cr0, eax
1 \3 ~" K8 J1 a& {      jmp    PMod% Y' G! D) n2 X' U7 n3 Z* j
PMod:, \) W0 R7 N0 ]- c4 \7 ^- p3 S6 ?8 U- O
      mov    fs, bx" Q. I. J: h! x2 o% J. R! ]
      mov    gs, bx
6 n0 W) N9 H, G) @/ ]0 P% `      mov    eax,cr0
- d7 _8 J/ t2 `* Y' ]) W, f      and    al, 0FEh
# W9 F8 q, b3 ]$ Q( B" N      mov    cr0, eax
, @' t9 w' D; X; j: S      jmp    RMod7 U- c; ]8 N+ H* B/ _
RMod:
, U* }  ]7 s, j( f9 y. U0 Q      xor    ax, ax
6 V% R2 d) M7 H! @$ o5 N      mov    fs, ax( C! V+ A3 i! Y2 |# G+ R4 p
      mov    gs, ax     
1 q9 @; T/ J( r" h6 ]      sti     ; s- K. b# A* y  i' A7 w6 U, y
      ret2 f* R1 p6 J' |4 ^, o
big_real_mode ENDP% K: `, _" Q5 c
;------------------------------------------------------------------------------------------------* O+ k/ j; D5 S: V1 S
real_mode proc near2 F8 P  J( k- [. i% v5 F  C$ d
      in     al, 92h, A- ~& ~3 u! _' ~
      and    al, 02
4 r9 J1 M' `0 w: }/ I      out    92h, al    ; `1 p- X1 D* L" h/ b; d
      ret! |# @& R; B& q/ S0 }. y
real_mode ENDP: }: H5 L& K, _) N
;------------------------------------------------------------------------------------------------# E" ~$ V$ _9 q
Get_Commandtail PROC near
$ k5 o# j8 J! v  B      mov    ah,62h 8 U0 }7 C! ]9 U! I% ?/ a
      int    21h* `& u0 g, N  u2 [6 L* P1 [
      mov    es,bx
! t1 o! S& r5 ?' B  D      ret
% z, I, w* ~, C$ I. OGet_Commandtail ENDP    7 E0 m; S% P' ~- e7 J$ B/ ]4 g
;------------------------------------------------------------------------------------------------
0 t! W* i$ [( q# pPSP proc near
) r) B. w5 y; z7 }. t      xor    ebx,ebx6 e8 ^- S: U( V# a3 Q$ e
      mov    si,89h" f; |# r8 b3 b
      mov    al,es:[si]
1 F( x9 i7 a! e% s4 o& X/ \9 R) g      call   Change
( b5 ?/ l, \( S. F: ?5 Y      mov    cl,4
4 S4 Q5 @! n! e/ A  b      shl    ebx,cl
- S$ @( m4 c! n8 h$ l- E. f      add    ebx,eax" w+ `: l0 K* {2 e2 M6 b
      mov    al,es:[si+1]! j" x! N) M" K3 l- d9 r/ J
      call   Change
" Q& ~4 I" z# d7 k: Z      mov    cl,4
3 Z5 S4 W+ ^& a5 N4 \- }) Q. ?      shl    ebx,cl
% P4 i" X) H9 k1 L      add    ebx,eax
, I+ Q+ b; D/ K      mov    al,es:[si+2]
$ D3 W! o* d; e# I) ?" i! W      call   Change
6 [1 r% S1 O0 H. A      mov    cl,4% [) _7 T3 _8 G& S8 G: I
      shl    ebx,cl
0 h9 P; g3 I# s1 A4 ~" j8 i      add    ebx,eax
3 R; t& S4 O/ i      mov    al,es:[si+3]* {' P5 E  _8 B, A9 v+ r
      call   Change0 W: Q  G1 Y: A
      mov    cl,4
" e% u' c5 W0 t      shl    ebx,cl
4 q) H" i# X5 G; P$ f& l- E9 x      add    ebx,eax
( X! @; b& _1 P; Z3 i      mov    al,es:[si+4]
. k0 w& T" U; C( K5 Y      call   Change) ?) m) S% h. H
      mov    cl,4$ U( N* v; m% l: X8 @9 I& c- f
      shl    ebx,cl0 c1 ?- ]! a5 z
      add    ebx,eax
& M0 n% q$ Q2 h: ^      mov    al,es:[si+5]
( u* W4 R/ P* ^# g  j0 e      call   Change- ?; `4 C4 p; e; |* I" @
      mov    cl,4
; u' k, k: M; J      shl    ebx,cl
- H6 c& Z* w9 L( p* a1 p      add    ebx,eax  p, C4 @, z. W' y/ J; W
      mov    al,es:[si+6]# L- z) N% y" O
      call   Change. P& ?# u0 A$ o: @# t
      mov    cl,4. J6 l& u; U6 @+ w: V8 l' d* z
      shl    ebx,cl
. X2 L7 x- a- ~1 S      add    ebx,eax" n0 c9 r7 Y9 G% `. B& J, k% S
      mov    al,es:[si+7]
" K* e+ l* A' n- W      call   Change
9 O0 z. u' b: A- |  ~      mov    cl,4: U& f) \3 @! s# M% {- S+ n
      shl    ebx,cl
( A7 N3 b9 I3 t: f3 I      add    ebx,eax
+ M. `" b; Q; M+ W      ret9 X5 f5 _$ a% A
PSP endp/ ]' _' u, C. ~( I& t0 F% `
;================================================================================================3 Z8 Q4 _7 E# u5 L. N
DPSP proc near( Z6 ?6 ^, a; ]% q- k4 R
      xor    ebx,ebx( o: g' J! m3 u" Y& E* U/ _
      mov    si,8ah+ u& E* p  r4 u2 K0 D5 `
      mov    al,es:[si]$ s' P! D- C4 d# d% _9 G3 {
      call   Change) d  V' L9 p' K/ e9 \
      mov    cl,4
  T8 i! }5 ]: H& B      shl    ebx,cl
' g' h# T; {1 K: H# J      add    ebx,eax- z  S/ I6 c9 z% J( ]; Z! L
      mov    al,es:[si+1]# B3 O$ K  w; F4 o% ]
      call   Change# {& A' d. I! m9 j2 R
      mov    cl,4
, Z  }( L8 f3 H! O0 ~      shl    ebx,cl
) T2 J! N% h. H9 L. r: [      add    ebx,eax
, N* y/ q) G  ?0 ^" t% s" B3 B" s9 I      mov    al,es:[si+2]9 F2 ~0 q9 k$ n: }+ ?) j& G
      call   Change
1 Y: ^1 p1 _: q! W. w1 y% Q      mov    cl,45 i5 a) t$ T2 n1 f" ?# j9 T
      shl    ebx,cl
# e# U6 p3 U4 i, q- g8 O      add    ebx,eax  ]' f2 _5 p/ e: X! I) s
      mov    al,es:[si+3]
( R0 `" ~( d' o  _: [6 j! D, s' Y7 {      call   Change2 x' n9 S3 c( y, [% Q
      mov    cl,4
% l2 B0 {: r+ |& U      shl    ebx,cl4 {8 T- \5 t% n9 E" ~6 p; r- Q6 ^
      add    ebx,eax6 `; V  g# k7 C! G
      mov    al,es:[si+4]6 X- C6 q  C" N9 M
      call   Change" D; [& K' n7 o
      mov    cl,4
# L  Z$ U% O" h8 k9 Y8 ?      shl    ebx,cl/ h$ Z* C+ U5 G5 R6 y
      add    ebx,eax3 x, l7 l: c1 Y, |9 X
      mov    al,es:[si+5]
' P! E- j: ?* x* H: u/ \0 }6 s( ?      call   Change6 ~' n, L1 \' Y7 o; q. n
      mov    cl,4; f: [; p8 o; I9 I+ q
      shl    ebx,cl! ?* X- n% |5 ]
      add    ebx,eax
0 P: h7 V/ G& B      mov    al,es:[si+6]
0 s9 l( R! @# m! P& f: G      call   Change3 `2 k/ F8 K  m! w) f+ o5 F3 s
      mov    cl,4
6 M# U1 M6 t/ q. W+ J      shl    ebx,cl" e5 `$ u0 g, e+ d6 r7 c0 b
      add    ebx,eax
" d3 h3 _+ |' Q3 Z      mov    al,es:[si+7]
7 \0 P% ^( z5 G( }      call   Change
$ k2 f1 p7 D2 L9 K, E& k9 d      mov    cl,41 ~7 y0 c! L( M3 H- F
      shl    ebx,cl
) h% s% P7 G8 M. j( n4 [% B) j      add    ebx,eax
# D- m& Q+ I0 |/ k# n; F& T      ret
- S) C, h( z9 f- uDPSP endp" Q; a3 V) G6 P  {$ u- @
;================================================================================================, F6 u; I0 H; w. F5 c. Z
WDPSP proc near8 T$ W6 {$ f/ U6 B& C
      xor    eax,eax) S  {# U( I! A
      xor    ebx,ebx
+ F- y( Z! @* m7 F; `5 A      mov    si,93h
2 [8 F* w  E$ b% G2 H# {, ]      mov    al,es:[si]3 z9 }+ O8 {/ e2 G* Y* O6 `
      call   Change5 L' m+ S# u* O2 U
      mov    cl,4
4 u3 H- D' ~8 K0 |4 l      shl    ebx,cl
+ X; }0 X/ X# E$ q4 Q" u0 J      add    ebx,eax4 f; F5 i0 _  \# `' k, v
      mov    al,es:[si+1]1 L1 O8 S/ g# L9 w
      call   Change3 Z+ v% f  T$ W- N
      mov    cl,4' O* |9 ^8 j% U* j4 F) @3 W- G
      shl    ebx,cl
" W& q- @% J/ c* D+ b3 U  X      add    ebx,eax
* n+ c; q: [! J, [6 `  n      mov    al,es:[si+2]
$ l) O5 t* `, |9 q+ C      call   Change
- {. y% I" Z+ [2 D2 _4 F$ s      mov    cl,4& b. Y+ n4 A$ W3 f
      shl    ebx,cl( Y) ~9 }8 \: q
      add    ebx,eax3 s1 @+ s( L1 a: T% Y0 G
      mov    al,es:[si+3]& N3 n$ y; ?, o
      call   Change
$ I1 v, z+ u. ~+ G2 ?      mov    cl,4
& F4 r2 }. D& X/ C! k* U$ Y      shl    ebx,cl( w$ {# Y+ a0 b% d1 j# u- x
      add    ebx,eax( k- n1 e0 H: |
      mov    al,es:[si+4]
  K# u. q3 v: K8 n      call   Change
0 g! y$ G# L* f, W      mov    cl,4$ `! Z& O1 a+ m
      shl    ebx,cl
" [: y7 e- V; J7 t      add    ebx,eax3 x8 `; r3 j6 B, a5 i& `
      mov    al,es:[si+5]
5 n0 `4 ~" \8 ]  s      call   Change" X5 i/ R# R7 }" k% r/ i$ @
      mov    cl,4
. k+ O2 C. W$ s: b      shl    ebx,cl  H& o4 B8 R' b: x) B6 l% d
      add    ebx,eax; Z: F4 b0 l9 m& W
      mov    al,es:[si+6]% @+ ]# \, w( @
      call   Change
, e# e5 z$ U. L4 O8 ?& V( d      mov    cl,4+ s6 i/ d1 Z+ q5 E6 F
      shl    ebx,cl
& A( E9 I# G8 P4 @9 R% P      add    ebx,eax
- K. ]- I5 y0 J' Z+ T      mov    al,es:[si+7]; B9 h3 n% {% d' j. F% G+ t
      call   Change* T! y5 L" b: F0 u0 [! C
      mov    cl,4; y1 U: b! S8 g5 R  c/ X& z$ F
      shl    ebx,cl3 Y! @# C& B* F/ Z0 `: a9 T. z9 x
      add    ebx,eax
/ a" W8 ~' b- ?8 `2 ^2 K      ret' d+ u# J2 c9 d2 x: @
WDPSP endp: P4 ]5 y  `5 z6 E4 [
;================================================================================================
. m: e9 _8 y6 e" |7 d* Q" ?1 I: y0 GChange proc near
. C; P/ z2 y* [7 M, G. R, E. [8 R, ]A:    5 }" m, i2 V2 U! F6 K
      movzx  eax,al
* V' n  ~$ R4 c. @      mov    edx,eax
  ?& G( N9 u+ M, b      cmp    eax,'0'            
# n/ g: L$ M1 {3 {! ?" A8 ~# g      jb     A
6 U! N# s9 ~! M# `0 c5 u8 W& d2 F      cmp    eax,'9'            8 f. {' q  v5 o/ h) s5 z! w
      ja     B
) I( A: o3 N# k& q. c1 V      sub    eax,'0'
+ d) x8 o1 ]' b( ~: r' T      jmp    short E' e2 a9 s/ q+ n
B:: s7 c0 J9 v" }" n
      and    eax,0dfh           + g2 W2 S9 @  X/ H; F4 |2 }
      mov    edx,eax
7 c8 c4 G+ R, n6 Z/ i/ b# e      sub    eax,37h            0 R7 \2 V) O3 W) C
      cmp    eax,0ah( E; E* E3 I, ~
      jb     A                  
8 j/ F. J" ]; N9 [: B      cmp    eax,0fh
% n8 o, f# \; v/ {0 C      ja     A                  
# |* A0 G. z  K6 A" TE:/ s0 h+ B$ P7 J* r. \
      push   eax      
. D: g4 b1 _% V/ P1 M$ }      call   PRT                1 A: {- k: u. l2 B9 K
      pop    eax
' t/ D% V4 o, l6 _" Y# wCExit:
+ ~6 E5 P" ]# M( c2 B$ A% n7 G      ret
! S2 G9 V: H; D% A4 zChange endp) ?: @5 `( \$ v$ a9 o' L( B8 ~
;------------------------------------------------------------------------------------------------; v1 _- G5 [1 K3 B- d3 D
PRT proc near
: p  p* Q( v2 J      mov    ah,02h8 |1 T* Q) m2 B  _6 @* P7 J, w# C( E
      int    21h2 s/ q; F" W! |- S5 X
      ret
  P( Y. I5 p) Q% a1 B5 a) V! L5 APRT endp
. t6 Z( e& }1 f) c;------------------------------------------------------------------------------------------------
* z7 ]7 B9 T% L, e1 G5 @- Acrlf proc near) H' z2 [. L) \! N4 |
      mov    ah,02h
% Z# v: L! W" Y/ d      mov    dl,0dh
) |9 c/ p. V: D2 J4 N$ z      int    21h+ U% J( y" s6 A4 ?3 @/ L0 ?
      mov    ah,02h
1 C9 e# c. ]  o. A2 s% Y      mov    dl,0ah) j$ \- q$ q6 _" S) I
      int    21h; t8 t+ J, {& P4 B& v" Z, }
      ret
# U2 |/ H, @3 g- v2 Dcrlf endp0 U" [0 \+ ?& w
;------------------------------------------------------------------------------------------------9 t& ]& ~6 B7 [" c1 q, x2 h
_32bits proc near3 f5 W; [+ O* G0 X( ~6 q
      pushad
. h' _' \! K: q7 z$ V; [      mov    cl,4
! A  \, D0 g/ p6 y# q      rol    ebx,cl
! p9 y4 f# L% c8 M6 E" c      call   print_4_bits0 m8 t7 t! J) c% k/ C$ f  d
      rol    ebx,cl
4 l) D- [* K) @$ b      call   print_4_bits
, ^: \. A, y, P+ h5 j6 {      rol    ebx,cl1 j' G8 \  i% l& G& K
      call   print_4_bits4 ]: `$ e, ]+ U( A
      rol    ebx,cl: ~( x0 d, F$ ?. ~* B. B
      call   print_4_bits
" ]5 f( H% K/ P9 M1 v& Y/ W* e      rol    ebx,cl
! `. j+ d6 \/ J% v( ^2 u$ C: I      call   print_4_bits6 [# B  C3 P1 b2 c- d& _4 R
      rol    ebx,cl
! r. j" g' h# w- Q8 h7 }) ?      call   print_4_bits  A" i& {2 S; ?
      rol    ebx,cl; j8 l; v# n* k  O
      call   print_4_bits
; |1 y- n" t" r- ~1 O5 d) R      rol    ebx,cl
% X' z2 K, o# t      call   print_4_bits
( b/ e5 r8 t/ M* ]& f      rol    ebx,cl, k  z  h: L9 F  u7 N
      popad8 V+ D: T. q. o0 z3 B' F
      ret
( z2 C+ w& D0 G$ Z, n/ f* o! R$ L+ ~- {1 S_32bits endp
2 N7 ?3 `7 `! e# K) T" g6 H;------------------------------------------------------------------------------------------------
8 t! N; U! ?) F  R& ]4 |_16bits proc near
, D- o7 P( v4 V3 B3 `      pusha        
4 W; o8 q/ p5 ^      rol    bx,cl
: X8 n5 X2 Y% G9 e      call   print_4_bits+ @$ l( L+ P/ s% y3 j
      rol    bx,cl
0 e4 k5 V; _6 A6 B+ z7 z      call   print_4_bits
/ N' O" m4 R& n2 Z      rol    bx,cl
! V8 K5 I6 {$ A      call   print_4_bits
: u9 Z* W: M5 Y' ]0 N8 n9 R1 s: k      rol    bx,cl
* r- c! K; m4 b4 Q5 I      call   print_4_bits
( E  w- X, @+ [+ L2 ]      popa8 T( C: H" \, m* K& L
      ret
- o, X1 S* m8 s: U_16bits endp
7 b/ a5 c$ n% x: V+ k+ a9 ?;------------------------------------------------------------------------------------------------( B) L9 T1 e2 V6 q  y
_8bits proc near
3 r' c0 s+ Y1 e3 x6 u2 |4 N      pusha        ! Y5 O$ t# W1 ~! U# ^4 |" |
      rol    bx,cl0 q9 ~9 B: Q+ J( C$ y+ l8 N
      call   print_4_bits
2 Y) v% n* w/ t3 l& j; W      rol    bx,cl' x- t$ F0 q5 u- `( J5 i# y
      call   print_4_bits
6 ^. {8 k" Z0 X% h; U      popa
6 ~6 {# m: S. T# \3 o4 E      ret& K2 M' k  Q7 ~/ ]( ?. z
_8bits endp
- h! H# d" B6 D( \/ R" P, i1 J( Aprint_4_bits proc near
0 N0 \; e; g$ R0 ~; @! U! l      mov    dx,bx, x3 j4 O3 A& _/ B) R  \1 G
      and    dl,0fh
! e3 L9 w* S  W9 v3 ^* v      add    dl,30h
1 k+ I$ o0 T* \6 b& M- t* ]      cmp    dl,3ah
1 y, O) v- ~8 h( I% A2 A) ]" e; c      jb     print
! O! M8 G. r' w7 f      add    dl,7( E3 }8 ~) ^! M  n
print:  
2 l1 U! Q+ h$ [      mov    ah,2
) T' \8 e0 L* a      int    21h7 \9 n( F" V, o5 Y. {9 Z- n
      ret
# y, O, I3 z/ j6 E3 m- [print_4_bits endp    . V4 c, g$ W6 l  Z5 {2 X
CSEG ends
4 d' Y& [6 U+ Q! W3 s+ vEND
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-3-15 06:47 , Processed in 4.835593 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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