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

關於SEGMENT 宣告變數的問題

[复制链接]
发表于 2010-10-19 16:50:51 | 显示全部楼层 |阅读模式
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address): K3 t6 L9 i+ m
' A: t5 y' B+ v) i$ E9 }6 J% v
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'
8 a/ e- f  b0 N2 O6 ~! z+ e. V& l+ b) I
宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝  
6 K9 i2 n8 H# d8 J, `, w- j
' h. Z! {+ H& z7 L0 g1 I, ~/ X! P& K.model small. y( [/ E# w' k" t2 y
.386p" j5 v1 D5 g+ S" P/ q
DSEG SEGMENT USE16'data'
7 d1 |2 K& d% p3 T5 o& a" l# u1 Q/ a8 B$ J  E% e3 Z% V( k
DESC STRUC
1 _# F" l. u0 J# ]4 N2 b- ?; E) `4 E2 i     LimitL DW 0
& M% T& J1 ?1 q) D     BaseL DW 0 ( {. q6 N7 I6 l; l3 s) a7 q
     BaseM DB 0 ) s& a3 m) X/ \  m& q
     Attributes DB 0 7 f8 O$ v6 N3 d8 ^
     LimitH DB 0 9 e% A: y. G5 k) n7 W
     BaseH DB 0
, j' w( r$ e+ f+ gDESC ENDS* B+ h! t' e& n4 v5 R  ?) F

# X  C" Q* F. z3 u1 U5 EPDesc STRUC
' T. a# ~* C' J6 L9 H! z/ }     Limit DW 0 % t4 ]5 y$ Z9 X% Y2 W1 u, W
     Base DD 0 - ]( X: U9 m# V' h5 n' C- W
PDesc ENDS6 U6 ?! d3 S2 w! y. L. R0 Y

: N' k, @2 x) K% R4 MGDT_def Label Fword. A4 H0 w2 ]) y: g# p
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
- d$ X' B/ N2 H* nData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
: ^4 o! L6 c! ^6 LGDT_Addr PDesc <$-GDT_def-1, >
! X9 _( v9 A, H5 ?8 \0 P+ N. R) A: ?! {0 x
Maddress Dword 0
! W3 ~* N$ N' \+ p/ b4 I+ b9 m1 R- f; R" y8 b' L9 r6 Q
DSEG ENDS 6 W! h6 B& L. M) a6 S; e4 T, `
ASSUME CS:CSEG,DS:DSEG0 Y6 g2 T* g0 B( c3 x

/ w  D  @  d0 n* w# @) eCSEG SEGMENT USE16'code' / g- W1 ?4 B! Y
      push   ds
; O. }* ^  a# |      push   es
! K7 f0 ^* C/ p; H      push   fs
3 F8 ]( J/ W0 R& e9 O9 f5 T      push   gs; \7 T2 ~8 Z: c  f3 ]0 F
      call   big_real_mode     
" `+ |/ l: Y; }& I! z& H      call   Get_Commandtail. v$ [6 C; k4 U& P. D
      xor    ebx,ebx" R+ x5 g. k/ E, `  M& ]
      mov    si,82h; K) z3 g2 c, p
      mov    al,es:[si]
: `1 e' X; R) m+ [/ s, Z0 G      cmp    al,'r'
" _% c% a( D+ w      je     R, s/ V+ U6 |0 Q2 w2 P' }8 ?
      cmp    al,'R'
$ V; r$ z, ]6 @      je     R! L( _, e5 @# {7 ]: X6 d+ ?
      cmp    al,'w'
% ^/ C/ U; D. ~: c  [      je     W4 H& h1 F/ l$ n" ^9 k9 u- s
      cmp    al,'W'
- \* V" r6 f  W5 y      je     W         
& x7 U. R3 ^* T9 ^6 {% K5 o. ZR:
3 ?" e; P* p) h      mov    si,84h# R9 g' y+ G/ [  I0 w  h- p5 Q
      mov    al,es:[si]' n$ m) T) f  f' v9 N
      cmp    al,'b'6 V# t, j& Y  f7 h4 `
      je     RBT
/ t$ ?9 [& @, P      cmp    al,'B'
! H! n4 R* f1 U% O6 V      je     RBT. E2 I$ g2 r- m6 v3 u/ f3 W
      cmp    al,'w'
& B/ c- i0 p' H) b! x      je     RWR
5 p& v! J: \5 P/ |2 E1 d: w$ V) p; a+ n      cmp    al,'W'- t4 z! Y1 Q- w4 p& R
      je     RWR: i- ~5 i  F( ^$ v6 i, k7 H2 V/ q
      cmp    al,'d'1 q$ |7 C! x* Y* B* r
      je     RDR
- Q# q8 ]) y2 r  w; L& t- g+ o      cmp    al,'D') i' t# x6 G+ O2 w  l' a
      je     RDR             $ `$ L- {' A8 ~: h
W:      6 h  Q3 i2 }" Q" \. W( H9 R
      mov    si,84h% T# i0 _; E6 H& [( T. D% U
      mov    al,es:[si]
1 s" u" W4 @% @2 N4 {4 s8 Q      cmp    al,'b'
2 [. |- X3 a+ b      je     WBT  t, _) C9 v0 S
      cmp    al,'B'; v: T# G. a( |4 M
      je     WBT6 o8 j+ A6 L; P. X
      cmp    al,'w'( g4 _) Y! t$ I7 e1 m# O
      je     WWR2 {7 W$ ~3 E% E! `
      cmp    al,'W'- a6 @# i  i# u* t" [+ p% X
      je     WWR
8 ^% X' {/ P, C1 r/ m; B2 `6 }      cmp    al,'d'
# x. _) S0 I9 {" O4 P      je     WDR
1 R" j! x$ m/ Z( @      cmp    al,'D'
/ U; P& T7 ^( H  C1 s2 L* Y& Z( I3 R% f      je     WDR% m7 k9 P# k3 p6 X- e0 d2 }
RBT:
1 Q3 p: s! w, H7 S4 L      call   PSP        4 L6 U2 h) h" q4 C0 w
      call   crlf           $ [/ _" _/ N6 q
      mov    esi,ebx
6 Q# v, v7 _' `; D$ Y      mov    eax,fs:[esi]
  ]7 {  t* Y( P3 C  e      out    80h,eax- ]8 d' |! x, H7 i2 c
      mov    ebx,eax& `1 o) z! w3 |6 k3 _; s8 R* z
      call   _8bits
+ {' ]4 o( I  w# n/ m# w. M( G8 r      jmp    Exit
4 c5 c7 K3 z1 G! n  i- W& Z8 ORWR:
3 M( Y# Z3 g: q4 D7 U( {6 e) ]) U      call   PSP        
8 R1 t5 c- w! N      call   crlf           & j# d5 y; d2 C8 m: g: e. h
      mov    esi,ebx
" o; d, f7 Q4 Q; q- z! X      mov    eax,fs:[esi]
/ T3 J4 [  E: y      out    80h,eax
0 P8 q( `4 z, m; F5 {" {( x      mov    ebx,eax$ P1 O3 W, a- t+ A/ {  Z
      call   _16bits! o! C6 j3 D8 ]: ^5 Z+ u/ H
      jmp    Exit  S4 }! y) a3 i" v( N7 y
RDR:, p7 W: P4 q6 {
      call   DPSP        ; m6 P2 S3 B: k( X, G2 J+ e8 E
      call   crlf           
4 O! \3 C2 [/ ]6 B      mov    esi,ebx
7 r+ n& s% J) N, i$ D      mov    eax,fs:[esi]# A1 t, d5 V  |7 [% S* v
      out    80h,eax
9 X9 T, @' _$ W- ^+ b- O" |      mov    ebx,eax9 b, L# C! R/ f) P
      call   _32bits
+ B+ O* R) W/ i9 {  y      jmp    Exit  s$ }$ m) m! ~! G
;------------------------------------------------------------------------------------------------
$ `+ x0 s- @0 c% YWBT:
9 V/ g, v9 @! ?8 c' h      jmp    Exit- _3 O' N1 [% z3 X1 v' x0 @) R# |
WWR:
) g5 B: g6 V! u7 ]: C* z! X. x      jmp    Exit8 R% H. i( g) G6 w5 a$ D
WDR:+ M$ E2 `( j& q9 j/ m
      call   DPSP
* P4 j  v' _5 w! j6 @3 o5 g" Q      mov    Maddress,ebx      ( d# \- `" K: G/ n5 k. v3 ]
      call   crlf
" g+ T) q; G+ R$ w, u. }      call   WDPSP2 T" M4 L% w, l3 [, B+ f$ K
      mov    eax,ebx
0 L) ~6 B# M, C; c      mov    esi,Maddress          # P) O. O. L" u- D
      mov    fs:[esi],eax
4 e2 E. K* n, H3 u      out    80h,eax
% M: [  b6 _. k/ i      jmp    Exit7 `; L* j4 J0 O8 ]- \$ A8 D
;------------------------------------------------------------------------------------------------      
1 i. _, _/ G9 [* {, E; j" X% NExit:
6 R6 \% a5 U6 {; M; C      call   real_mode     6 ^# {: k& c  C: T$ E
      pop    gs
+ I2 O+ Z( A0 S8 h7 \      pop    fs
1 O, _! k8 E: C2 J      pop    es
, p, a1 N1 o" e) H, J6 }      pop    ds      
! q; V+ [3 X, \3 R% {- Q# a* K      .exit
: N- ?, q- H" j9 f* d; |;------------------------------------------------------------------------------------------------
5 p4 `: Q( ~& a3 W% e" @% _big_real_mode proc near
) N. g( Y" J1 a% N$ |- _; C      in     al, 92h
1 B7 s8 w" l% e" ^, D1 Z( K2 L      or     al, 002( {+ {5 c4 {$ j- Y+ }2 F0 E
      out    092h, al
7 ^- T9 J6 m% X3 z" T& K6 N      out    0edh, al
  e; B! F+ G  j1 n- i1 p3 R      cli+ x5 g! y* U% B, s- i6 b3 P
      mov    eax,DSEG
8 v# \% @8 r, p( m8 V" e7 g      shl    eax, 44 a' K! a: ^  l' n$ _0 w, \, s
      xor    ebx, ebx2 q9 X/ J, Q# F2 d) x
      mov    ebx, offset GDT_def
7 o* H: K) {( a4 [      add    eax, ebx
4 T0 c3 o5 ^7 b/ E8 h7 R) m8 r+ P      mov    dword ptr GDT_Addr.Base, eax0 ~# @( k& W: `/ X# X$ s
      lgdt   fword ptr GDT_Addr9 J6 d( S3 q, J1 c$ z
      mov    bx, 8/ l7 J/ R# f5 E9 H. w4 S% o
      mov    eax, cr0
& v2 M, G7 t5 @  p      or     al, 1
; F" K. h: K' F: ]  o& q9 M      mov    cr0, eax5 q0 `3 v" q7 S  w
      jmp    PMod
, B' S$ ^& \" h3 S" @' {PMod:
. C5 K' {4 Y, K% f/ @: F; g; v: O      mov    fs, bx* x: k& f) C" \. E; G" l# m
      mov    gs, bx
* U! e, `" e2 B      mov    eax,cr07 H  L6 V* o; K# N  [. y7 m
      and    al, 0FEh  T: w1 Q; f6 w% y
      mov    cr0, eax * ]- C! e- V# t
      jmp    RMod, ?# P6 E5 a. V1 N) l6 `- t' W
RMod:
" z1 G! b7 M# R# V/ R* w6 P      xor    ax, ax$ S" z' w9 p, Q9 i  \& D3 u. y
      mov    fs, ax; S5 B6 ?% v' P& H
      mov    gs, ax     
" F; C* ^3 a* g) \. h4 l      sti     
. \/ P6 K4 {% ^7 J% I      ret
" }4 U6 Z( {0 q* p: {big_real_mode ENDP
+ r& R; B* |" x. U  s" l0 Z. ]% u;------------------------------------------------------------------------------------------------
! m6 t6 \! f6 q0 a3 q8 ]real_mode proc near4 V* _1 c4 v$ v; p5 @) w
      in     al, 92h
- o5 A0 G& h. D, F5 w) P      and    al, 02
- o/ g* ?2 {, u/ q7 \+ L2 `" C      out    92h, al   
! F' D' C8 z  G( p      ret
3 ^" Q  N0 X: T& [real_mode ENDP
$ B6 ?8 I  I+ z$ I" [6 z;------------------------------------------------------------------------------------------------
) ^4 E& K* C4 p" T$ W1 HGet_Commandtail PROC near
% J4 K% `- L! l! [' {& i      mov    ah,62h
/ g, j! `) k( z( Z% U$ j      int    21h
; u. q* l3 @4 T4 y      mov    es,bx
7 [/ g  Y8 |. U1 A8 U8 ]# a      ret" i2 f1 v/ H9 ^
Get_Commandtail ENDP   
. h2 o( ~( }" B  E, ?;------------------------------------------------------------------------------------------------) g7 u! a8 y& i. |3 g6 v( z
PSP proc near
$ v+ B5 {. U0 m. Q6 k/ E) u      xor    ebx,ebx
/ j+ O+ n* c8 L      mov    si,89h0 X" o0 a' H& o( w, |+ J' w$ L
      mov    al,es:[si]
' K& W5 o4 \# m% y; t& _: x      call   Change4 b3 U) I" k/ p
      mov    cl,4) i' G( y+ ]8 E
      shl    ebx,cl6 N' B; P& m: _( k( u$ U8 R9 _
      add    ebx,eax
- y4 }: a" Z7 \      mov    al,es:[si+1]* M+ ]: h5 w" a5 G& P: u
      call   Change
$ r/ @6 F- S6 k. i5 n; T! J      mov    cl,4
# R2 C- w2 u% g3 s7 e      shl    ebx,cl
! g( v* w: h9 ?$ Z- g$ a1 g      add    ebx,eax/ g6 v  c1 G% _& x5 g3 R. \
      mov    al,es:[si+2]/ ?1 U( X6 s; g- X) |
      call   Change
3 E' P* D6 h) c3 X- ^9 }. e      mov    cl,44 `/ y7 C* P3 l
      shl    ebx,cl) A/ F6 w" B+ y/ x8 [) ?
      add    ebx,eax# j" G# G+ B2 i  S
      mov    al,es:[si+3]. q- h$ X* l. W; g0 D6 }% [
      call   Change
2 a. I4 {3 D5 R5 ^      mov    cl,4, |, S! U. c, Q
      shl    ebx,cl) I4 b5 [1 V5 j  K
      add    ebx,eax5 a; k* z; o3 _7 j9 K
      mov    al,es:[si+4]
/ i  V& m0 p' i- {3 R. U" D+ ?      call   Change
- m1 u5 Y; S" [6 E+ c      mov    cl,41 X8 _7 s. S7 e" }' ?( Q8 a$ K
      shl    ebx,cl
( J) B0 W! l; b! X      add    ebx,eax
3 M  h0 w1 v* M, a' ?) _7 \      mov    al,es:[si+5]
& X; O' R  q6 p      call   Change5 K0 J$ U8 W# E3 _
      mov    cl,4
# w7 Q1 }% f0 P: h/ I0 ~2 {9 n      shl    ebx,cl5 a- l$ _2 M! W- h4 Z* k0 _
      add    ebx,eax2 B1 I) a, y: C$ I. [% P" U( X2 u, [
      mov    al,es:[si+6]
8 p/ d% D4 n5 Q& n& |1 ^. u" R& \      call   Change
7 ^4 G: B2 `+ L8 f4 p      mov    cl,4
' X- g' m: Z% Y5 G+ ?2 [8 m0 L      shl    ebx,cl
+ \8 G# [8 x* E) N: I* D, Q      add    ebx,eax* ~6 \( i/ I5 n5 X( c) ]2 z0 }; T
      mov    al,es:[si+7]1 J/ g/ |- `5 k( B
      call   Change
6 m( z2 i# Y' g7 H9 Q      mov    cl,4% C( r/ B" m4 y* H  b: r9 g
      shl    ebx,cl+ Y1 a5 D+ e: Z! i
      add    ebx,eax
* X& c3 e) F. ]$ M2 f      ret
% f2 z1 N9 A) d6 R. B( J9 uPSP endp/ Q, c) P5 @: I9 |! B! X
;================================================================================================1 s; @" J" k% }
DPSP proc near
1 s7 P, L3 m) x( M' [$ B      xor    ebx,ebx
" a: p. h7 O* u1 k, `      mov    si,8ah+ X* m' B+ e2 G0 L, D
      mov    al,es:[si]; ^2 j5 {# e& ]7 U
      call   Change
1 w( R* R% {+ |7 I4 X      mov    cl,4
+ e# E) K& g, [4 l$ x      shl    ebx,cl
, S2 w2 V8 |1 Y" @. x) p      add    ebx,eax
: O3 F2 g% }" A  K9 _1 l8 C      mov    al,es:[si+1]
! \& y* k( k& U      call   Change- T% {+ R. C  b2 P) p! f4 [, e
      mov    cl,4
1 `) `6 ~- [$ V      shl    ebx,cl
* ]& O  y8 m- `7 l8 a5 _      add    ebx,eax
0 f! z1 J. W4 u3 E$ d& \4 `9 r      mov    al,es:[si+2]
9 u( x! S( O! K6 y1 A. G. P      call   Change. K2 |- \% n8 m
      mov    cl,44 Y! ]. e8 R9 Y# [3 H
      shl    ebx,cl" F: t, l0 u7 c) ]% }& i
      add    ebx,eax7 L. R) A' {; i, \3 M" T
      mov    al,es:[si+3]
: }/ {7 Z! L) b( v* ^7 j      call   Change
* Y8 @# k& p% C/ D+ W: o% K      mov    cl,4+ R" u  a: s) h
      shl    ebx,cl1 R& R  [, C) Y( l- K3 t. L# w
      add    ebx,eax- i- b" U# [9 L6 h1 ?6 n9 U7 _2 a
      mov    al,es:[si+4]
! Y1 l; u, M  @% U  k! E/ A      call   Change
  S" A+ l# S, r      mov    cl,4/ g- B& y! W7 }5 N' u: [
      shl    ebx,cl
* {* S5 V+ P3 ~* S. N. R' C      add    ebx,eax& f; E2 U% l. a* v3 i
      mov    al,es:[si+5]
2 ~$ ^& D2 N; A8 J/ j" u! e! ~6 g      call   Change$ Z& R9 @8 E# Y; C8 d) o) P; Y" b$ n
      mov    cl,4/ T+ I7 F0 l# E9 a; i/ j
      shl    ebx,cl9 _9 O$ r* K1 \9 Z
      add    ebx,eax; }* [1 \# o- L, a; y3 @: d
      mov    al,es:[si+6]
" ^  m2 }0 P" s* b4 Q6 Z      call   Change7 _2 e- P3 p  A5 Q
      mov    cl,4* m0 _' ]  O; a; g) X0 Y
      shl    ebx,cl! U! v2 r  J1 C! M0 z; O7 O
      add    ebx,eax; P( I3 c& \( W5 _- c4 X
      mov    al,es:[si+7]5 D3 A* E- I+ r& R- I5 Q8 I
      call   Change9 j- |$ K$ {3 S" C& [5 k) \4 W
      mov    cl,46 s; a2 J% P0 y/ R- j; O+ ]! p
      shl    ebx,cl  s7 @6 o+ t- }& `0 d
      add    ebx,eax
" \3 l, Z, X7 `: o      ret
3 f  |; S& n2 I! q- Z5 sDPSP endp0 S  b" X& l$ I1 B$ L5 F
;================================================================================================  ]/ t$ f5 H! ?& t. I
WDPSP proc near
( w" i% N  o7 f      xor    eax,eax% i5 ]3 t9 A2 b8 [4 W
      xor    ebx,ebx
3 V$ S5 |) F0 W8 ]/ j4 `9 f* n      mov    si,93h
+ X3 r! v! A6 w+ F! J+ L; }      mov    al,es:[si]2 Q6 f5 D. Y; n8 R2 V! a. D* N
      call   Change6 g  i( K$ |; w
      mov    cl,46 {; N5 {% W3 {1 B& [$ L
      shl    ebx,cl- X4 U) l. B& H) c" q0 b
      add    ebx,eax
9 L; O; J7 z9 V. C" z( H      mov    al,es:[si+1]/ V& }8 D) ]8 K
      call   Change& h1 W6 }1 z! M! M
      mov    cl,4' q1 @, T1 R$ S# G
      shl    ebx,cl
2 a: F7 y% [8 c      add    ebx,eax
' P, `4 E5 t0 i  `      mov    al,es:[si+2]
4 S1 O6 C7 \* p6 s0 n      call   Change# i6 E0 i- E) `* |  F4 _- B& A
      mov    cl,4
, C5 E: ~* G% `. I; k      shl    ebx,cl2 G/ X1 _9 T/ v% i2 C6 K* |/ B
      add    ebx,eax6 c% c( e. }; z2 [1 B- [; h" q2 n
      mov    al,es:[si+3]
2 Q0 o, D. q" w# m& y      call   Change$ }0 z, r9 b1 j+ j
      mov    cl,4- }4 p1 Z( j3 d5 m
      shl    ebx,cl8 M+ I6 w" W- Y
      add    ebx,eax
" x/ c, h9 g: N( i      mov    al,es:[si+4]
" y! C3 ~0 k7 Z' D* a4 j      call   Change1 z( Y$ u6 J% V3 c" e6 `& _
      mov    cl,4
+ C; ~' _: t# S. z& M3 Y* N' m      shl    ebx,cl8 A6 i% S1 C2 p: [: {, s, V) n
      add    ebx,eax* Q: J! O; }+ A/ [' ]+ r0 z+ Z
      mov    al,es:[si+5]
' f% C: \- i) r  K- S      call   Change: c) _( Z+ g& R; H, T: D
      mov    cl,4+ {3 s1 ^: @8 Y, B5 L& K
      shl    ebx,cl
# [8 V( Q' ?6 Z# O* R2 H      add    ebx,eax
7 G) T. }5 P& @' s& h      mov    al,es:[si+6]
2 d' E) z2 i9 p      call   Change
1 _" O' A" g7 `  o  E      mov    cl,4
/ g1 d, D( K5 u4 `2 x      shl    ebx,cl
1 l/ R& A$ d( Q4 g$ u; P% h      add    ebx,eax% A- a+ P: y) x4 g& M& l" s
      mov    al,es:[si+7]8 t- x; j* h' b
      call   Change( S3 A) L' Y) T0 S' K
      mov    cl,4
! d  o6 f, b$ j# x5 |      shl    ebx,cl! F4 m( z4 h4 G6 Y. e2 }% |, O8 p
      add    ebx,eax
* D1 S& H  K" E- `4 A; {      ret; v: T& b0 r! N8 p
WDPSP endp( B6 M2 z  b2 {6 p; X6 Q
;================================================================================================: ~4 F# j* W7 w
Change proc near% O/ F3 H5 O& V; l- h4 [4 W8 M
A:   
5 b2 o% W" L' T% P2 ~      movzx  eax,al( p8 r* C8 i0 _  H7 T
      mov    edx,eax
9 [7 A3 L, X5 Y- i4 \4 ^1 c      cmp    eax,'0'            ! V  ?) V& K& [7 T* ~$ M
      jb     A" J; t7 Z4 X1 b; M; a% O5 m
      cmp    eax,'9'            
% ~) Y" [! H: C9 h2 K0 W8 r( {      ja     B# D9 p! d% @0 W4 y) g: N# x
      sub    eax,'0'
' K) ~6 P$ Z' C7 v& {9 p) v9 z+ k0 `$ W      jmp    short E5 M2 F/ L' n( \+ y6 j2 H
B:& h0 }- v( F2 i% s% P" }2 w5 B
      and    eax,0dfh           
; ^6 d/ s; {5 O0 C6 h      mov    edx,eax
, X" L! N' o, [  c      sub    eax,37h            
( A7 ]1 x% O& ]" z      cmp    eax,0ah, R* k# _- s; n& a  t7 _: A! L
      jb     A                  
& \: X; d/ b; k4 n( l" K7 u- G. E7 U/ N      cmp    eax,0fh
! q8 I* h' m7 ~" V$ C7 M- f( z      ja     A                  
7 T1 a3 d8 F2 H  ~* h" T/ \% cE:
0 F( ~9 J' K3 T4 G, a5 d0 v      push   eax      
" E! F" V" Z0 @) m4 A: |. i$ L- J      call   PRT               
4 d& b7 k" F- m( t2 E# y      pop    eax3 z# A& p: s( s+ f
CExit:1 q0 P" K# z# D9 u
      ret* w! C; z" q9 Z3 l  w" ?
Change endp
6 c9 N' s8 q( x  r;------------------------------------------------------------------------------------------------
) v, C7 D0 H4 C0 GPRT proc near
% E* y' r1 B$ u1 F# a/ i+ K      mov    ah,02h: \' I4 Q& r/ [. c
      int    21h
1 r: A8 R: O: a$ B8 j4 o7 b      ret0 d3 G6 ?, w# S" n/ I( h5 Q( r& ~
PRT endp: N/ J$ n5 Q/ s: _9 M" H
;------------------------------------------------------------------------------------------------) Z' O" \6 {5 |
crlf proc near
, Q8 F! c$ v4 D# |3 S2 E6 n3 |+ O$ ~      mov    ah,02h
: @  v% a( m  i: M0 ~0 D; N      mov    dl,0dh. J2 _1 o/ e1 B! N/ J! @  @
      int    21h% d1 I& v! F. I: w
      mov    ah,02h
- j" u' c( d1 |- @- j      mov    dl,0ah0 y. w* K, K1 P4 x1 I
      int    21h1 t5 t+ X, j" {: I
      ret
; U, M! |$ q# P) O/ {2 O% G$ Y4 Tcrlf endp
, M5 v- Z+ k& j; e- k5 O+ Z;------------------------------------------------------------------------------------------------
1 R4 l  W- k7 W' ~* s2 D8 q1 E_32bits proc near
1 Y3 V2 e/ v6 r, z) S( e      pushad
8 Z) w. i  c& A      mov    cl,4
, w: \, y% M& I! n# c8 k8 Z7 p      rol    ebx,cl
8 z3 l" z3 V2 q( V      call   print_4_bits
2 c0 n  j; x# D, K/ _! E      rol    ebx,cl
& q% _9 R3 d( C      call   print_4_bits
  U2 V! h, z+ [      rol    ebx,cl
1 o, v1 c7 a1 k% I2 T9 u7 V5 E7 N      call   print_4_bits
/ ?. G4 e- z0 }5 a6 W% [; d      rol    ebx,cl
# D9 h+ ~* _, W4 N% l( g& G4 o/ V      call   print_4_bits
7 D5 w2 m# h7 n# J      rol    ebx,cl4 F8 W# R; S0 m
      call   print_4_bits
3 i; B* n7 ^! I+ I0 e7 {      rol    ebx,cl
+ }" {; o' g$ X' |9 Y, J      call   print_4_bits
6 D1 h" i5 r: n0 X6 Z9 w! e4 e      rol    ebx,cl1 @! }: G! h! F1 g  o; |
      call   print_4_bits
7 {& {9 E( h3 D' B; X      rol    ebx,cl! h, J; z3 `! l. ~
      call   print_4_bits" U1 ?5 A! s% v8 F2 G$ C5 `7 B! t2 u
      rol    ebx,cl
: U3 Y6 }0 Q3 {) i" B! d0 q      popad
3 Z8 _. f" J% K3 h9 t      ret
* R1 U- J; w2 l) u( T_32bits endp
7 o0 x( T- a  U5 l# S) k$ B& \;------------------------------------------------------------------------------------------------% D8 w1 H9 r5 g) _( O
_16bits proc near
& N* E4 ]0 E2 i* J$ b( d0 `; M1 A      pusha        
: D4 S$ d" f' \3 ~1 i4 y& h; d      rol    bx,cl
9 d) u# d9 \+ Z  }# H' I      call   print_4_bits" d2 J& y1 k: ?' L
      rol    bx,cl
: ]1 U  u: \( B5 u5 b      call   print_4_bits
! K" K* i' L! V4 y" m7 u      rol    bx,cl+ d! A  N/ \6 r& U' @+ W
      call   print_4_bits
$ @4 m7 m" G+ Q$ o. G* A8 B      rol    bx,cl' |2 [1 J" c; ?: G
      call   print_4_bits
/ P! v* U' M0 I% e9 T5 t; ~      popa
" h- t, `7 U/ @$ s      ret1 l" N: s, k$ R
_16bits endp$ l: ]: U1 Q  `0 R+ p8 f% I* v! |
;------------------------------------------------------------------------------------------------
- u( R0 {! @' l7 K8 O2 F# R# g# [_8bits proc near1 m; j2 d8 K: E8 A* Q4 I/ C
      pusha        , z. H* o* U  @* W5 t
      rol    bx,cl
1 w1 m, f. n- ?! V0 G7 P4 N3 {& h      call   print_4_bits
) C- w1 n- S: f; f% \+ W4 b& i      rol    bx,cl
; x9 }  }6 t2 J- W- U      call   print_4_bits
; z  f5 w% k% I4 r- f6 N* {      popa
/ X. |* n! }+ a( k& A      ret
" O' k. `: x* l$ P& ^_8bits endp
+ T% r) v5 j+ }7 fprint_4_bits proc near7 {5 F2 `! w* Z  @( S$ z2 A9 {$ ~, ^
      mov    dx,bx+ ~* H& h' n) A7 b. l4 R
      and    dl,0fh: a" G: X- r( w2 y( y: ~
      add    dl,30h
. D2 I& ]' W/ e( D0 _& i! M" i' D, x      cmp    dl,3ah
* O. U; h; X& h  t, ^. D      jb     print& {! S' t% ^. L6 x5 L% q
      add    dl,7
" Z. a# ^$ n& l0 v1 q6 tprint:  
1 h& v5 V1 }7 I9 _      mov    ah,22 M" N* @+ I  H# A% I
      int    21h
2 ^0 U1 S4 E) O8 b+ k, q      ret4 s, \* _7 s1 F0 I/ D2 l5 t( m  Z
print_4_bits endp   
& e: @+ M5 r( T/ l$ RCSEG ends9 o3 x+ B$ m! J/ |
END
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-7-21 22:13 , Processed in 2.013074 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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