|
各位前輩好,以下的程式為在 big_real_mode 讀取記憶體的值,例如: C:\memory.exe(程式檔名) 01000100(Address)! ]% M1 W! E. ^ f h% V$ f
0 v$ Q$ l( c$ j4 U
則會顯示01000100位置的值,但是我另外在DSEG SEGMENT USE16'data'5 Y& n! e; ~; H
5 ]' N; p n' z6 r宣告了Maddress Dword 0,但是程式執行時,會hand住,麻煩前輩給我一些指導,謝謝
* R% u! N& R% x4 c5 K$ t2 a+ P5 k* f- y/ G4 [& _3 T# |
.model small
+ D" E" }+ r& o* \" j.386p9 l2 I3 H) v" L! |
DSEG SEGMENT USE16'data' ; S. x% S5 s0 J
$ c9 s& p0 k2 w+ K' Z" e% E; ^# \: M" tDESC STRUC) a9 E) o# r& Z* H! Z {4 f/ R x
LimitL DW 0
" t$ n, O; D& m BaseL DW 0
3 u( w9 c# t2 d6 }7 Y1 \1 H BaseM DB 0
& q4 U4 E" K$ H& ~8 _8 t$ q* Z Attributes DB 0
' C W; C1 h! i$ j+ r LimitH DB 0 ) @1 H: S. g) E9 E% a4 _; S! k
BaseH DB 0 , h5 P2 O. T+ Z. l9 @3 Z
DESC ENDS# t, t6 _4 @2 `- u) N
( t- e5 H+ b9 A% aPDesc STRUC
" c$ o9 x( E D/ x; C7 y Limit DW 0 |& w, U. O2 ^9 f
Base DD 0
# c2 d9 K: l: @0 J" M. [PDesc ENDS* e% f# [ S6 c3 y
8 R ~5 N3 l, d& d5 Y
GDT_def Label Fword
5 v0 `& ~; R% dNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
7 b% d h# e/ u$ d- w3 _& ~Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>. `9 K$ b Y1 V" ?+ d2 y, y* G$ g
GDT_Addr PDesc <$-GDT_def-1, >+ U1 p) `0 ?- O0 Y' |( P! B
8 I6 r7 i' T# m0 N' R
Maddress Dword 06 }8 g% N- E. P: X# N* T
9 `6 ]( H, x$ u0 \6 E$ h' Y' wDSEG ENDS - c8 I' c. j7 L2 E- @" b
ASSUME CS:CSEG,DS:DSEG
) r1 }+ D4 a' w: e' [/ k! t% p1 A6 D# |0 E
CSEG SEGMENT USE16'code'
- b& c! y# Y7 M3 @( ^7 P push ds7 s9 h8 l2 O* f9 G% k" [
push es' V8 K! {, m8 R7 m1 _9 A- x: E" J
push fs
1 c! T1 ? A: i- o, a7 h push gs
* W1 @' U4 i/ y call big_real_mode 6 @- s: Q) T5 T
call Get_Commandtail
: }* q9 X, {# x; H1 q% R xor ebx,ebx
' }2 x+ F9 c7 f* w3 X+ ?/ u8 O mov si,82h
' o) |2 o- r! e- t; {- U' U1 M mov al,es:[si]
9 I, l$ N) U& M8 I/ T3 S" { cmp al,'r'
1 R3 P; n3 T2 G. \' x je R
* f- Y7 l6 l2 e) v5 y/ a cmp al,'R'
4 {5 |& i V9 R. F je R
" x G! I% A' o9 d4 l' ^ cmp al,'w'
$ ]* s2 Q- I& N2 f je W3 A9 N: s/ ~6 U( Q! Q; A8 a4 O
cmp al,'W', c7 p' m" `7 M
je W
" L2 v$ l( ]2 @# k4 QR:
% i h3 F: E7 u6 b: S ^: | mov si,84h" x6 `5 ^+ \9 r8 `' g1 ?% s
mov al,es:[si]
" f! H# L1 K# H6 @& Z! r6 n cmp al,'b'! Q f' D: H6 c4 r c/ x
je RBT, D; w' P9 H3 G: ]
cmp al,'B'
% k' P; v G) o' R5 M% l je RBT, R" a: L2 Z% d
cmp al,'w'4 S% k9 `3 g. x! Y/ o, t
je RWR
0 H! g- \% U9 R% I% Y" P cmp al,'W'
|& {. b* J9 v3 A. |2 T/ n6 B6 F3 A je RWR
$ W+ B5 x* _7 R* G0 p cmp al,'d'. {: Y l; L+ | U$ B) c- P
je RDR
% V9 z$ x$ i. y cmp al,'D'& V' g; \. @% k. b5 s
je RDR $ U5 @' W6 Z3 J3 j s, E$ t
W: 2 O2 O8 L- D, Y6 |0 k; z8 n3 m
mov si,84h
4 O; ]$ r" G- |6 O. F; w# s0 D mov al,es:[si]
* ]8 ^% t+ i* a; ^' Z cmp al,'b'
2 T( ^$ k$ d! B" w7 K+ V2 e je WBT
( N3 _ t/ b$ Y6 L cmp al,'B'4 G ^+ [/ t% T! `& s @ {1 u
je WBT9 t0 P# J! [) }0 S3 X: |
cmp al,'w'; {$ x6 C0 I% B0 B1 ^; B
je WWR
$ G9 s# y& a4 m% p cmp al,'W'
! W$ W- }9 I+ g0 V0 H* t% S/ I je WWR
. _" O+ |% G; `. a, _3 E cmp al,'d'4 V. ^* p( P& v
je WDR
1 J: l; G( L& v. F) U3 P cmp al,'D'8 m8 _$ r( l) I1 x# k* k
je WDR( y+ Q/ L, q& D! q' N A
RBT:9 P" d, w4 ^, W8 I( `
call PSP / m7 C! |7 H0 q0 [- X1 a9 i
call crlf
4 C6 D' l* W1 I3 m mov esi,ebx3 X3 L* t; B. Q# u. j9 Y2 V
mov eax,fs:[esi]
" m% ]8 Y0 V S5 K5 ]1 \0 N2 M out 80h,eax, U" M# `3 a5 u2 q G6 { J: m. v
mov ebx,eax+ Q# ]4 ]" f& X: r
call _8bits
' f( V. p B/ S- g jmp Exit7 \3 `. w. k/ J+ c, o
RWR:" {6 X+ l. [/ b2 c+ u3 j! o4 G( @
call PSP * b$ V. q4 W9 W3 O& k7 G6 b5 d: s
call crlf
9 c8 O+ i+ ?$ A9 `2 c; l* P* v mov esi,ebx2 p: Y( t# }) a8 ~" w; V7 c
mov eax,fs:[esi]
0 q# y3 J% N0 ]+ b8 R% v& h out 80h,eax
& Z& _. @/ O* ^! L! E) P1 v mov ebx,eax! L$ L- C% u( o; N
call _16bits
& k* ~9 r8 k8 w( p$ ~# m jmp Exit% m G# u& s5 x: S& g. b4 {
RDR:9 Q" L7 n" |) E/ O; \
call DPSP
' Q8 w1 C) i7 l$ m call crlf - \) n5 [5 `# o$ I0 Z f' |
mov esi,ebx
; z* U& l. d0 w1 G mov eax,fs:[esi]
5 {$ i: x( R- @7 q9 g out 80h,eax5 j. u' c n3 W" `% J! c: h7 ]9 f/ H
mov ebx,eax, ^' s5 M# [ | O! D8 _8 ~ q
call _32bits, {; {7 a2 q- s1 v/ x. B- @
jmp Exit2 k" F* Y9 R' [6 ~
;------------------------------------------------------------------------------------------------1 L0 T& M3 R C4 p5 S% R
WBT:
: C8 U( z/ H! }* f. B' {" `2 _0 t jmp Exit& f, x3 _; ?% S3 j' r" ^+ S; B
WWR:
& u1 U z3 ^6 [9 h5 } jmp Exit. x8 S0 @- N/ p) m
WDR:
q3 o/ y( K/ ]5 P3 x call DPSP. O, [4 }3 b, J; |& o
mov Maddress,ebx 7 P( Y; _- M( {0 N
call crlf5 l$ Q# c, V" C. b
call WDPSP; ?7 P3 O" O7 |
mov eax,ebx
2 x! `4 K9 P' U mov esi,Maddress
" R1 S7 q n8 y0 a; H% X mov fs:[esi],eax& a) n+ I& V' U% s j3 w) w" r" b
out 80h,eax
: ^4 ?! ]: f0 C I jmp Exit
' |" K- w9 o' w' c# S2 A;------------------------------------------------------------------------------------------------ 8 h( `7 q* e; Q2 I
Exit:* m$ c9 @9 l/ T5 }8 g+ F+ H
call real_mode
5 U, ~8 O4 R8 ~8 p9 @( G pop gs8 W6 q7 K) l: M" e$ \$ M
pop fs3 g |7 g- F+ x6 P- V! ^& h" N2 d
pop es
Q D: L o0 Y! e; R/ _8 W pop ds # _# M8 X J, [) j7 I! H; s' {4 e
.exit
, ?' Y- f2 V, s+ |" f;------------------------------------------------------------------------------------------------0 g0 O1 ^ C) ~& a$ y' {
big_real_mode proc near+ t0 a; Z/ t* {" o9 J6 _% b! i
in al, 92h; j* _7 Y3 u9 D% M3 u( K. h: F/ }* Z2 q, @
or al, 002
- ~1 S4 i7 G! g5 c out 092h, al
7 U& o( d, U" ~( e7 J. }! U: h out 0edh, al% B( `9 i; J; t4 v" M6 a
cli* R! |% U" w, A9 t# s( G7 B
mov eax,DSEG
, s: v. N- L: {( K; T1 B/ W shl eax, 4! `. s0 U" ?9 I$ Y5 Q% W6 @
xor ebx, ebx) G0 I: o( I6 T) y4 }5 V0 Y2 r
mov ebx, offset GDT_def
- z% ?+ O5 m2 }. @. g add eax, ebx
: i ]$ U8 X. Z9 F: K/ S8 X mov dword ptr GDT_Addr.Base, eax' ]8 [0 w7 N1 {/ J, M
lgdt fword ptr GDT_Addr$ o6 `$ x F/ @( e: K8 A( Q
mov bx, 8
, H; H' h# S j2 `9 w6 I! i mov eax, cr0
) T, n5 T, Y) X- i7 a# Q7 f" ~3 c1 r! L( d or al, 1" J: y7 o6 r. E4 [7 V) h8 s/ k
mov cr0, eax( Q2 [" R) X- O O! ^
jmp PMod, X9 t" `+ r* B
PMod:
" L2 F- {6 U+ r! Y mov fs, bx% q9 P* n7 M2 {# N7 ]
mov gs, bx/ ]" `" J( O) ^& v8 R, Z% k
mov eax,cr0( {* J( _' L8 j
and al, 0FEh# S, [3 w/ q5 b c9 o4 J
mov cr0, eax
: Q; Z! Z+ D$ _% X) o$ c* \ jmp RMod" J6 q* l1 `8 V
RMod:( M7 x$ x# H* {& V3 t5 @4 s' F: s
xor ax, ax
, H4 E: ^3 Y v" j mov fs, ax' L9 K; V; J; g5 X2 @
mov gs, ax ! `/ W% q, `9 A8 F* f
sti
* G% l0 {5 M$ j. ] ret
: u' N4 i8 y! ibig_real_mode ENDP1 n+ R, G3 K1 v6 v
;------------------------------------------------------------------------------------------------
I% M, c: }- E7 W* o+ @% ireal_mode proc near0 x# I2 Q; ~2 P- w2 Q) p
in al, 92h
; q0 t" p; i4 j0 c and al, 02- @! H+ z! w$ Z8 y: ]
out 92h, al
. p" N3 g8 t X ret
! D' p; G8 t6 ^real_mode ENDP
( V! v# T8 o6 D( }8 I2 J* @8 _;------------------------------------------------------------------------------------------------
) D' z. t# D2 o, B8 K% c; \% OGet_Commandtail PROC near
% Y! Q7 K8 C; t. ?* [ F* g+ A6 y4 ] mov ah,62h 2 q8 U9 I- s9 T7 R7 a: R
int 21h( c8 V- K' i8 l5 d! O$ Y
mov es,bx
- h- X- d, ^% g ret0 U, G( ]5 L3 e+ m! O: G; o3 Q
Get_Commandtail ENDP $ A" v& p t$ D4 G/ K. r. [) k
;------------------------------------------------------------------------------------------------
5 T+ t N0 B: I* w' n! aPSP proc near5 H& G- e" Z4 l) g
xor ebx,ebx2 v! Y1 A9 ~# X+ v5 R( I! P" E
mov si,89h8 a2 p: k2 V& F0 j( `
mov al,es:[si]9 e; g# s, a5 N* P6 w2 d1 |1 U
call Change
4 H+ x% F2 j, L `& n7 c' \ mov cl,4
! Z4 o2 ^' Y. A0 u' ]7 ` shl ebx,cl
$ Q- S1 E$ z" f8 ~7 g5 i) t6 p T6 g add ebx,eax3 F" a9 [+ b. d$ `* X9 P0 z
mov al,es:[si+1]% J! A' @. [/ B; G6 |
call Change
; }. |3 Z0 S0 F mov cl,4. a. y! G! }" J3 [# o8 B
shl ebx,cl) t' q) ]' J1 O. ?, x0 C1 K
add ebx,eax! ?$ S1 {) v% I1 v
mov al,es:[si+2]
8 T8 {# j$ r# f call Change+ ^2 Y& t, ~. j: d& |0 H0 d
mov cl,44 h/ O/ N# s" _& E; z
shl ebx,cl
- I0 ]& J* M' z9 |. }0 v( \3 p0 E add ebx,eax' ?' K4 N' ^( y+ b9 B
mov al,es:[si+3]! g0 `- {$ ^1 ]1 o; O
call Change
8 X9 j3 C R5 ?0 U' w mov cl,4/ n" Q, J* Q, S6 b+ |3 u
shl ebx,cl
4 i+ F! k* z0 ^1 `( O R* V6 [ add ebx,eax3 O+ U( w" x/ d) _
mov al,es:[si+4]! f0 L0 ~3 `. Z" k- r! e
call Change4 U9 V) j, L& u2 M" O# B
mov cl,41 }5 w5 `9 ^1 p
shl ebx,cl, ?1 I1 I4 r' z, k2 k
add ebx,eax
$ g+ ?4 i2 K. o& U) d mov al,es:[si+5]# t$ p1 O( p% X7 ?2 @; p6 I' }7 v
call Change
) X+ B6 U+ \+ P; E! \- z# l, Q8 \ mov cl,4
% i0 W; @' o; Y! P0 B: N shl ebx,cl
) F8 F- i; \' [/ G: z3 ]0 y- Q1 } add ebx,eax" j5 z& ^ G% _9 A8 R! H0 Q# m
mov al,es:[si+6]
* j0 M1 }2 v8 u: w call Change, G! l$ z4 Y3 V1 g+ _) Z! }+ u2 ~
mov cl,4
( Z8 F) i. G: o4 H2 b8 y* u shl ebx,cl" L) P; }' U. \ w b w
add ebx,eax+ I P* M* E8 k1 {( M# ?* `8 g, j
mov al,es:[si+7]7 L: m( d4 j( }1 J U9 I% W
call Change l0 Q2 w$ [" e0 G% Z
mov cl,4! ~' d9 y4 Z1 U
shl ebx,cl
- j6 S/ T( p2 k: I add ebx,eax
3 }4 c! t8 P' b! Z ret
: x7 S v6 Z, TPSP endp4 q& j+ O8 w2 }$ Y2 F/ _, _) H0 b9 }
;================================================================================================
x$ ]9 k. X* i( ZDPSP proc near
/ R5 ^- i3 q3 E- e" t$ R& G xor ebx,ebx; e/ U" }+ W' T3 u. i
mov si,8ah. n3 w9 ?4 M# n. N- h
mov al,es:[si]
5 {8 j# Y5 @& B: \! \% A call Change1 b$ m3 C& I. y7 y% V# H+ D& j
mov cl,4
, V3 D" J$ h3 h shl ebx,cl2 B$ F5 T/ x$ g0 ?& B
add ebx,eax
- U' i9 W3 ~$ T$ J% W% ]! v: k& d7 L mov al,es:[si+1]
J$ N* z* s" l. N call Change6 O1 T) |3 z4 e( E# [4 G$ _9 k
mov cl,4: j1 A1 W7 ^+ q; f. M
shl ebx,cl* y3 R$ v3 A0 i: p
add ebx,eax
/ d0 J% F" ]% n) ?9 q$ Z, z0 l mov al,es:[si+2]) R& B& @8 {( o& L, i) S) X' o6 G
call Change. P& u ?+ P' t5 }+ j" b, D2 q: N
mov cl,4- y! t2 p/ h; B ~
shl ebx,cl
5 Q2 |/ J" ? l; k, h5 H& X8 y add ebx,eax7 Q; n8 z' C8 q" _5 }. A# K1 E4 ]2 K
mov al,es:[si+3]# n' A) f% w0 Q; k+ ~1 v
call Change
/ ]: `, ^7 c6 y5 \2 C: n: I, E mov cl,4
( g$ E, I( I8 a8 j& Q shl ebx,cl
3 W4 X+ m# J8 F add ebx,eax
, h$ v3 C$ C$ \8 ]3 E( ` mov al,es:[si+4]1 i6 K4 I# i6 h9 i
call Change& \% B1 h/ c5 j! W& W
mov cl,4% h: p' `' L2 @' O
shl ebx,cl% R. [; i! u7 g$ D: {0 D' Y; T
add ebx,eax
- T9 T9 B) M/ P1 d9 P1 F mov al,es:[si+5]
: p2 f# U$ x- S8 q! | call Change }1 c+ R: E. H$ H9 }
mov cl,4
! F% o1 U8 a. u* I C shl ebx,cl+ h, L& Q9 q( B) L* `
add ebx,eax
- x5 T1 W* Y' r* m( C7 W mov al,es:[si+6]
9 n4 A1 h4 b# L8 V9 | call Change
: P* v4 Q f+ {# a mov cl,4* n6 h6 }! [7 k0 F9 _
shl ebx,cl
; u; V2 F( y% \, M add ebx,eax
, T1 U& @# [% @% @ mov al,es:[si+7]
$ V& ?0 o+ D* M% K @! V/ M' t call Change
2 W# l, G& m$ V, R% | mov cl,4
9 d" R6 |+ S% G shl ebx,cl: K+ Z9 N. _- B" N7 |
add ebx,eax
5 J: I; i1 f% R* r( H ret# k5 `& \$ X- t8 u
DPSP endp5 W* {. [" I: |7 l: ]# r O
;================================================================================================
5 X/ ?. s- V# u, M+ T BWDPSP proc near
- T6 W9 L8 D4 Y* D5 N# m0 L xor eax,eax
7 e/ @/ ~5 O9 R2 e$ W2 X" z+ L xor ebx,ebx) \( y7 y8 g7 x0 }3 u( Z: p& _- M! q
mov si,93h: |( S9 [/ R0 k1 `' \/ S
mov al,es:[si]
3 O3 r( A4 X) a5 s) ` call Change
Q( j1 i5 [9 Q* }7 ~% J mov cl,4
6 e1 }2 X8 P3 Q/ |/ G4 b shl ebx,cl
' A4 ], K( A9 f; c" P6 O add ebx,eax0 C) j( ~ l& B2 _2 B
mov al,es:[si+1]
- m5 b1 l8 {# T: u$ D o: ~* { call Change. l2 L" D7 C g3 g' o; W' D
mov cl,4+ ?+ b- l" O5 X- D
shl ebx,cl/ m# C9 V# b4 Z
add ebx,eax
- S7 k# R( ?" w6 j& b9 p7 \ | mov al,es:[si+2]
5 |) [/ v. K- V* H# ]9 w call Change
6 h& L$ p/ q) D A# b% `5 j2 F mov cl,46 f* K( l# Q9 {# Z: ]8 G5 a
shl ebx,cl
: `3 T: F' |1 x0 D3 c add ebx,eax1 Q) s" o# |) \0 n
mov al,es:[si+3]
5 `* h0 u: A# m' c% F1 B2 h call Change
0 J$ I, n4 B3 x& }% b& b- p mov cl,4
% l' S7 ~4 H0 V$ y. V shl ebx,cl
9 n# l; S6 P8 u4 h0 |6 ` add ebx,eax. z) E' \ u/ v; ]' [
mov al,es:[si+4]
* @5 @2 Q. A9 F4 } l* l; R& j u! c call Change
4 H9 i# N ]8 @# g mov cl,4
5 n8 ~2 X; q! ~2 @. z% h! z8 w shl ebx,cl; A' ]# u/ _5 S' u p
add ebx,eax8 K+ H; C8 {; W0 X
mov al,es:[si+5]
) B& J6 p: W! M" y6 V call Change+ j/ }+ D- {) R: }$ i2 S
mov cl,4
: [+ r. A" J- v4 l0 v0 B shl ebx,cl8 E0 _) q) f- {# @% w
add ebx,eax
' {! K, T' V: U( M( O5 y5 Z mov al,es:[si+6]0 Q0 g+ T. ^0 T# q& \# g
call Change
# ]4 \) T" f, b4 Z mov cl,4' \% x. I5 z2 s
shl ebx,cl
: i+ R& X$ `* S& R add ebx,eax# p7 I+ h& }5 p+ D( ?
mov al,es:[si+7]! c) V; M- ~( c8 B J) [- m
call Change5 i" \, X9 ?' _9 U) G. ~
mov cl,4
2 x$ _8 H- Z. L& K! G shl ebx,cl$ i# V1 ` M3 z: W* e0 F |5 u
add ebx,eax& u0 H# ^% A p ~& u4 Z8 R; R$ @
ret7 Y5 y: Z. ^( A- n7 \
WDPSP endp
: i: S' m# a: \2 Y8 \;================================================================================================
( d; `) q: X6 E5 u" L, u; {Change proc near
( |* t; Z0 r( p, J/ JA: 1 w( _( v' `6 q; H1 k; P X
movzx eax,al: r# N1 g" T* h2 G/ h( b2 f
mov edx,eax
2 V0 D4 s- t- t5 a' L- {1 A cmp eax,'0' $ X" u& ~3 o8 P0 z5 i/ |5 t1 V( H
jb A
; W, t- S- M: I5 r+ n cmp eax,'9' ; l% {! I% L5 O! k$ o
ja B! b/ I/ o/ c; @0 v" F& \" W
sub eax,'0'. ~; \+ J; m5 z" J# o
jmp short E
: s! [" G q j. n1 R* R% u! ?B:. i9 H- _7 v3 \- N1 Z! ]. K( F
and eax,0dfh
- j& J8 X2 c6 N1 K mov edx,eax/ ?2 m, j, g3 U7 }
sub eax,37h , t; G: s/ [9 z5 n6 n4 k% s( o
cmp eax,0ah
+ w" D% a0 P- a% c: ` jb A + r9 P X, p, R8 B/ ]
cmp eax,0fh4 I2 n5 e2 \( e* F3 A/ s
ja A
' h$ e5 D8 b- zE:% Y* l* ]" P5 V
push eax
+ L* O/ e6 U* A call PRT : u2 U4 e7 m b" d6 y3 \
pop eax
, ~/ i3 N6 }2 B0 u/ @CExit:
# z8 E, I) R2 h# t ret
# {; B1 G$ m5 k( u& c' PChange endp& ?# Y: S% R6 X
;------------------------------------------------------------------------------------------------
, H! i" Q# d& I; o2 ~# ]PRT proc near
1 l+ Z$ ~6 O# V M- C! D mov ah,02h. E+ n( `, P3 `/ V: F$ g
int 21h4 r L) w; U3 J0 r2 ]
ret
* J& h9 I2 i* F- B E6 z; c$ v6 q qPRT endp
7 P2 ~% z. K; Z# }/ \" T1 F: ]- g;------------------------------------------------------------------------------------------------. S& J k0 T8 z8 r' S
crlf proc near
9 b2 P3 O; \8 N0 a9 K mov ah,02h' q6 A" Q2 w9 B* K1 @3 u
mov dl,0dh
5 L% ^8 X: }- S$ H( s ` int 21h
7 O4 O, u0 A% K4 k mov ah,02h/ H( o6 w1 M8 k3 G, ~" Y1 ]
mov dl,0ah
% z- j! R) V( x! C3 C( B1 P' x int 21h
, t- m* t% T+ i2 ?7 ~ ret! o O( T6 H |) C2 {% U/ Q% u
crlf endp" [6 k. K/ d h3 h
;------------------------------------------------------------------------------------------------, ?; E+ m2 o9 _7 P5 ~
_32bits proc near
% w' p/ k, @7 D% ?; O% Z pushad
+ \0 M/ }( {. M2 P5 K mov cl,4" G9 ~% g5 E2 z, x
rol ebx,cl0 \1 |" I% ^! T* }! Q; e
call print_4_bits
/ ?, l, l# F4 p7 H# ]5 k! L rol ebx,cl
5 q. q8 a( F6 h* q5 r5 z6 N% H call print_4_bits
7 g1 H1 Z$ B" v9 _: a7 ] rol ebx,cl, P2 x9 a9 F9 u/ V( ~5 ?) ^
call print_4_bits
3 f, s+ T) K3 z; b+ v+ m rol ebx,cl
0 H8 L, U" Q4 F, E& O call print_4_bits6 x) q$ s+ ^% j& E9 `5 j
rol ebx,cl! |& |5 n9 ^0 g# j
call print_4_bits; f2 o# Z$ J4 g# ?1 O. Z+ z
rol ebx,cl& q1 f1 J( u% A+ B
call print_4_bits
4 W/ j0 ^. B( U k8 X: T rol ebx,cl" G, N8 \& `' z+ O% N4 h
call print_4_bits
/ i6 O# U/ y4 Q& a& ?! q rol ebx,cl
2 K$ | A1 G3 p3 z call print_4_bits
0 [( W% A8 g4 G4 o* x rol ebx,cl$ Q5 N6 l: F6 Q! h
popad
) G6 G) s0 ^9 H% m# y ret4 r: n" P+ h+ B+ B: K, N
_32bits endp
: D9 s$ _/ }; G! U7 {/ x) i;------------------------------------------------------------------------------------------------) D0 J2 U( r: x, j; H8 O
_16bits proc near
, q( j* ]$ \/ B$ h1 k. a+ [ pusha
/ `. A# Q4 M% w9 a$ X6 S: a! l; D rol bx,cl4 a# c! d1 q$ e7 M# E4 X
call print_4_bits1 M# U8 |+ p2 q4 V7 n3 ^
rol bx,cl
2 x+ w# X/ _: H$ c+ Z call print_4_bits1 [6 z7 l* Y. Z* x6 H" A
rol bx,cl3 h$ d N9 \4 y4 k6 l. G
call print_4_bits
) [1 r, t2 i$ a+ Y+ ^ rol bx,cl
! J$ j2 N$ C& p4 A; P. F call print_4_bits
$ A( O9 j) s a: h popa
4 f. T1 U0 n' Z0 H5 M3 Y ret
! y, O5 e; F W0 r* M_16bits endp
& L5 {% s- e8 ?6 B: |! e$ f;------------------------------------------------------------------------------------------------
( }- X. Y7 {8 H_8bits proc near
: H$ O3 q$ q% P/ `0 s pusha
/ o8 g" _$ @; Y rol bx,cl5 T2 V* u4 U$ l0 \
call print_4_bits0 ?! E6 C+ M5 w
rol bx,cl0 l8 X' H% @! L: s4 D
call print_4_bits- ~' [2 g, E) a. ^$ a0 k
popa) b) f! l) N" E- Q! V
ret% k3 V: f ^$ w; ^! ~: k7 {( `
_8bits endp
+ f1 {" R9 c, ^3 ~print_4_bits proc near g9 A" o% H0 b) y
mov dx,bx
. o4 L x+ `6 ]- N; c and dl,0fh
# X; K$ S# l! m6 k add dl,30h* E1 N: _5 a, q- V8 t. G+ X' \5 L4 A) l
cmp dl,3ah
1 X0 d+ W. C# v {9 w jb print
2 ~( j: u& p2 l+ a2 v K, k add dl,7
) y! `) R& F9 Gprint: & x/ u/ S7 ]2 V7 g- [- z) I
mov ah,28 C3 V) y6 r( L- [2 P H
int 21h. I$ m e( K4 e6 t c8 ~4 u+ P
ret
7 }$ G9 U8 G2 }print_4_bits endp
, v/ f% o$ Y2 B" X& h4 ECSEG ends* G' `7 N0 F! u1 x* _5 t
END |
|