|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧+ @- t) ~/ H S" j
enter macro8 a3 ?/ l" F$ D1 R/ {8 X
push dx# D/ G% q' w* g5 H) l: K
push ax4 Z, W0 e- l, J& g
mov dl,0ah* [. y/ f* g7 L& w
mov ah,24 X( C3 }' Q& J* o
int 21h- ]7 R0 k/ f) @9 T
mov dl,0dh
4 @6 C$ ?3 @, J. F! R* { mov ah,2 e% ^7 u7 `4 g @3 o6 T4 J; r
int 21h
: a( N7 U s: \: a! k; F pop ax: q/ G. V) X% c% i6 q" Z
pop dx
. ?7 o0 w! P" _' D4 q" g3 p2 \endm( ^/ q, A" x+ E( Y* K% g! s
$ U- \' y$ r( i& t9 ^assume cs:code,ds:data
( _% ^& X0 W, [' F. ], d- }data segment
+ x* i8 s" h: H6 ttable db 300 dup(0)( k7 T0 {1 ]! t8 Q7 D4 K
pro1 db 13,10,'_________________________________________________',13,106 h3 o& E X4 l7 q& `; m
db 'no more than 20 characters English name.',13,10! k0 E, _: L) R* c9 @1 {
db 'For example:',0ah,0dh,'liang xin hui',13,10
: D& F" b9 G5 C+ j7 S db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
) q- c( c; c( L% l" E! V db '.................................................',13,106 k' u. M' k9 m
db 'Please input:',13,10,'$'' I2 W3 J% w; Q- ~' X m" O2 S
pro2 db '.................................................',13,10
/ U% M: x: a( T. @3 ? db 'The results are as follows:','$'
5 e' ~ @6 |6 |; o" L. L5 t
8 w; G% e/ Z) Z" w3 mcont db '________________________________________________',13,107 y& M" Z3 f. E, }: t) {0 Y
db 'Can You Continue(Y/N):','$'% e) k/ ]5 J7 L
' k* A6 O C0 U$ @
cp dd 50 dup(0)
9 P1 M1 l7 u0 g O/ O# adata ends
& X1 c; @9 W, c* b7 o2 i. d) z) n& u: E, A O
code segment+ U# D9 `+ C6 l- F
start : mov ax,data
1 T! R M! x# b+ G" v4 N7 M mov ds,ax
# W1 G$ {7 W4 s1 M! e call prop1
- t8 r2 |9 P% l& L5 x5 \' E* R) k mov bx,offset table( l) G8 |$ e& t
mov si,0
8 _+ f% @- x5 N7 }3 r mov di,0
3 v5 C- [: D' Q; h6 k. d* a
0 O+ R* Y. ~7 r. x & O' \: N+ f) J! | m7 ^
call enterchar
# X8 l" {- i3 ]: G vperp:
9 S* d& X2 W: a dec si
, s% E6 x5 ~ E. p0 W/ Z+ M mov dx,si; y' ?1 `& }; W- F8 y
inc si
: x% J4 \ q0 d) l, t1 C mov cx,si
) f7 \, T, x. W' K1 x2 j call arrange, i6 R% D/ ?& ~9 ?5 f r
call prop2
" I1 C- i' Y# A) J/ h call putchar
e5 f" R J! u `1 k4 Qliang:
* e4 \: b- H" b7 i) C call Continue
1 r# b1 N$ C8 O* O( C2 b1 T" N& U call judge/ b9 D' P, G; ]' ]: t l
mov ax,4c00h1 W6 s2 r, a: K z: d# h" }1 J
int 21h0 }6 H. U8 P k, `
& w8 e( S/ M% t, T, D, [# d' u
) C, Z* i8 g1 e" }Continue: enter8 {1 O0 }8 }* D! d p
mov dx,offset cont
) V8 v) p4 t- j mov ah,9h4 D5 }8 h0 s( D
int 21h3 ^: b( R9 S& D9 s
ret ( L: n& l. p/ w% u# w; R
( O, o" j2 y: n6 Y2 ?judge: mov ah,14 r9 |1 K) C/ j+ z
int 21h
0 q0 j; w" ^1 [7 \ or al,100000b+ k* d& ?) Z- O3 z7 `( L
cmp al,79h
" w) l4 E. [6 W3 h, d6 b: c je clear
6 @1 f: s7 _7 {- c0 w cmp al,6eh
9 y1 c0 h0 c/ R* ^2 J1 L je endj, Q! o/ v/ x4 f" s+ x; ]
jmp liang
, y* ~ D) R7 @8 d$ h- Aendj: ret + F+ r' A6 i2 L: ~ V5 `# E1 f' Q
( k6 I3 ~ s. Bclear: mov bx,offset table) E; B; ]7 c1 H/ K. d) h, B+ K- K
mov cx,300
6 H! G0 c, D8 i8 x/ nzero: mov byte ptr [bx],0; A# z1 k5 T. n) X$ S
inc bx* L( o5 M6 f: U2 O& w
loop zero
+ p, F M1 c% M( u' v. ?- S+ q0 ] jmp start
+ [& B \! I' P" s. w
# ~. \: b/ @- p8 f- S0 D8 ]" u- d, o( ]4 G2 d* ?( [2 C7 j8 e" V
enterchar: mov ah,1" g$ R4 q/ I0 b% T1 S5 ~
int 21h1 V7 ^; r4 x+ b$ \9 I
mov byte ptr [bx],al / v1 P4 z- a. S I& T( a1 _
cmp al,13
. v+ H7 o4 p# x, j; {4 b8 u5 a) E3 i# [ je endchar
. d+ L6 \/ p) ]0 D' q mov di,1
3 f. O# V$ t( D% O inc bx
8 w7 |+ G/ W# b7 n5 p$ P8 r jmp enterchar
: i/ L- s1 ?& m$ b3 l5 w |+ j$ p- u# {7 ^# R# p1 k0 v9 C
endchar: enter
( q- [# z3 I |3 X9 g( I& [/ ?/ M9 R0 D mov byte ptr [bx],' '
+ z! G$ b/ Z5 f! B cmp di,0
% N1 \8 X7 G% V' j% H U je perp p: R' U% V- w$ \, |! x# v4 K
inc si0 s! C0 `4 ~7 v- @+ M
mov ax,si
6 v. e9 W, i: ^; h mov dx,21/ `9 X9 S% ?8 u
mul dx
. b( l; y0 j- |! U/ \3 n! K: G mov di,0
1 K" q( f3 I% z9 V mov bx,ax
G2 N5 ^6 q0 ^7 G0 V jmp enterchar
+ J0 `4 Y2 [8 f* @8 i' f- ^2 q. M4 Q/ ?+ `! F
arrange: push si
( D+ q' D. [6 b push cx
* n* b4 ^* s G0 {; k# r mov cx,dx
9 n2 E/ [3 Y6 h* p5 C+ r0 h4 {9 }7 W( } mov si,0; o/ t" c6 G$ L H
mov di,213 k y3 Q$ {9 e0 R+ a' L
3 j3 @: z8 O1 Y% T8 j. {, H/ ms1: push cx I7 S p' _$ c+ X" d: ]* u% v
mov bx,0
# d Q( _7 D* ?7 p' z mov cx,20% s. Z2 |. E# V# G
ss1: mov al,table[si+bx]
3 g$ _% P* s1 K cmp al, table[di+bx]
$ q) D+ n' b( J8 z. z B# Y; ~ ja jiao4 q3 s2 x) t. l) A3 D$ I: Z @- n! @
jb s2
) L; Z9 H* _. j+ }! v) K inc bx
# [4 r+ [' n; F, N+ ^2 B loop ss1
5 _) p$ v: u4 e& w* ^ jmp s2
7 Z" F8 k& Z' [% e2 Q
7 w: R: x' p. U* x, bjiao: mov bx,0
- ^& r( [! V. f4 L* E( r# A mov cx,20& C0 l' ~( F' Q& ]. @1 `. u- z
jiao1: mov al,table[si+bx]& I- I1 w' }/ V7 q* k0 x+ ^# j) C
xchg al,table[di+bx]
4 E7 `# @3 L0 L( R( t mov table[si+bx],al
$ u6 y9 X; ~% Y0 C# l* q inc bx
0 @1 D+ M9 V6 k/ N loop jiao16 S: Q5 [: a. R2 _6 J% I' H* }
6 M& v0 x! _% ^# v# J! ]5 O8 c9 Us2: add si,21
$ u: [+ Y( W+ z D7 ^ add di,21
z; X7 ~- i4 m* W; d' T pop cx% H; j4 C% a& U: K7 h1 O
loop s1) `8 Z) h3 W5 S) M4 x% E- z
3 V" o# B* k0 \. \$ W6 X1 x pop cx
# V* S y$ H W8 V- ~ pop si: w/ C9 _3 c9 y* E
loop arrange
- c8 C( |8 q: g9 e; ?% B$ \& m ret
9 Y7 w: I7 ]8 [! I
+ I, ~, m% u1 M8 q! Q5 {% T0 Aputchar: mov bx,09 W7 s9 d% b( |4 W1 m
mov di,1
~/ v$ I8 D- t, C * ?6 Q% O. Q7 D
1 q3 U4 y m* Q: } k5 C
mov cx,si
& m0 {' F1 c/ J9 l/ h& U! gput1: push cx0 T/ ^1 w3 [4 r! S! h
push bx
, j- |0 G+ b0 x& Y9 c3 ^5 i- A! X . O! X0 C. H$ ~0 ^. n% l
enter
2 r/ X$ P/ ]) A
; U0 ?- B: f. }) f: N; i mov bl,10
* u6 ]5 Q4 f7 c5 s! I mov ax,di/ r8 h' A6 p. r/ Y9 I/ t9 ?
div bl
' t3 M9 ^( K+ b% P8 B, K0 T mov bh,ah
4 w2 C- @. ~9 F8 B8 y add bh,30h/ ]2 |0 |0 o5 a7 D' ]3 f6 L
add al,30h
/ _; {- U! F t # G# z! u& ?3 J# ]7 v. Y& }& V
mov dl,al
; ?3 m. C" B4 Z( n0 ^# M) t# S mov ah,2% Z- F7 ?$ H( C6 h" e
int 21h
" v9 |; u" ^( ~ c- K mov dl,bh5 W% S+ ^) B- Z% y' |/ L3 k& d6 C
mov ah,2# v9 F7 `/ R F/ W) h
int 21h) P3 ?) Z& M* A2 s; |7 p6 @. g
mov dl,3ah! _& Z7 j$ O- b2 Y" P* s& `1 u) `
mov ah,2
& y& Q6 r- M/ S9 r int 21h. w$ b) `8 A9 o" D6 ^. F, S4 F
pop bx
' e" I$ }+ J9 r' {7 O4 @# o mov cx,20
! g4 ~& M G2 F- ~& D( x9 ^ push bx" \; ]4 U0 b/ s4 [" |# S0 B, w3 G
put2:
+ [# U8 ~" Q3 d' n mov dl,table[bx], R% @8 P) r9 V7 z/ w) X+ U# L
mov ah,2h0 L+ ]5 l; ~- G [- R
int 21h% p; G" v; s9 D; O4 d A
- J! h" B/ E; t- B. X. B' J inc bx$ J5 X" C- M1 Y; |( Q$ J
loop put2
1 B% N: Q4 F1 U7 y& y inc di 3 \3 T9 Y- E) a* c" z$ \1 w: }
pop bx
9 N" R9 ^6 C# i7 o/ W4 j! R! t" [/ r add bx,21' l Y: d4 r2 |' T' S6 K
pop cx
+ B% d, A/ q5 n8 H( Q
3 d( k/ r( E J% H0 x loop put19 Y: y$ _, L7 r2 U
ret, y6 y0 _3 I# F8 n7 X" x
+ `/ \5 C% K8 U0 aprop1:
! }( x; M1 N9 M8 } mov dx,offset pro1& E( y$ q4 s' R" { d2 ^& b
mov ah,9h
7 n8 Q. D' P% l! M7 [( O4 ?8 z int 21h# f. b; |1 Y, A
enter
1 [ V* x2 f% O+ J1 K1 {. } ret
3 w0 A3 r& D* R- }0 v. j) ^5 S1 J
! w! ~7 [$ t8 U3 nprop2: enter
- [; A1 {8 [& u8 h0 |, B# f1 j" [* U, _ mov dx,offset pro2
# `: C }6 f$ b mov ah,9h, [. X! w. S( P' P0 k* n" ^3 X) _
int 21h
) e) I; L! m' b1 {0 P ret
/ @# I2 [9 ]5 J, W! s5 S+ ^- m$ P! t4 e) l m- _- e }
code ends; d$ S' n6 w; a) W2 {
end start
% b7 c! \* S- l9 C, q5 \9 X# [ o6 ]
) t5 Q/ T, _* J$ |- r' [, k6 l
|
|