|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧* _ d5 o! x$ `" Y+ U
enter macro
) q6 y8 ]- G1 C- Y5 G( J, x push dx
; e o0 o7 J& R5 I% X" h push ax
" X q9 w1 p6 C6 H mov dl,0ah
8 }! Q1 G- G5 m' m8 S mov ah,2
% [9 C p. ?1 F b1 U2 r7 w* o4 J# b int 21h
/ }5 z2 U. e3 V+ ]6 m mov dl,0dh+ u& l1 i3 g: X3 W2 f
mov ah,2
" X( f# D, B8 X, R6 b3 A int 21h- m, k8 p4 h0 i0 @# z
pop ax( U! W7 J3 I- K, p; I7 {6 m
pop dx + D3 Y u6 L7 O
endm
; B! N$ `9 Z' [
% n$ p: x: c& l4 \! r) yassume cs:code,ds:data
; C9 I, L0 t G" i5 g7 A; C) ydata segment
' ]0 K2 ]0 z- {( gtable db 300 dup(0)
) [0 ?8 U7 k! E! `3 Kpro1 db 13,10,'_________________________________________________',13,10
+ ^2 i: I# D' K5 D I1 y1 ^ db 'no more than 20 characters English name.',13,10
% t' [- g' C1 Q* H* h9 A db 'For example:',0ah,0dh,'liang xin hui',13,10
0 g v j, ]1 Y r db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
% X& p% o# ?# }$ X+ W: S db '.................................................',13,10
' v' G- {' C- [% b7 X db 'Please input:',13,10,'$'4 o/ S9 @& [* S; d( t8 g6 c8 N
pro2 db '.................................................',13,10
: `. m2 [! F) y) i db 'The results are as follows:','$'8 c0 a' }5 k' S" S! e( |& _0 c4 {
2 L3 d! y2 r$ G# ~3 V2 m4 Xcont db '________________________________________________',13,10
# K4 A2 D. f/ q6 X' U db 'Can You Continue(Y/N):','$'
2 D4 M1 G4 m+ e1 Q( f9 @0 V9 O3 z
cp dd 50 dup(0)3 g o: W% c2 V. r! Z5 n7 E+ F* u, ^
data ends
+ n, U3 I: W9 B' D P+ d9 B7 j0 @8 F" }8 K) p; E9 O# D
code segment; i7 {9 Q* a9 s$ y/ b) k, C
start : mov ax,data
; [% g6 B, ^1 A mov ds,ax& \3 s8 l5 x. ^' u* N; q
call prop15 F0 _; o2 G8 c
mov bx,offset table
& a( u+ Q% }$ |; g2 l/ O: ?/ W mov si,0
) }9 U7 l0 ?" A* n mov di,0' | ]9 C! c, F% y6 z! B+ f
( r1 P' H- f/ H5 A4 x6 O( I + c) J0 e' t) U$ C' j& }, V
call enterchar
* Q: v; g# V- h7 B/ l. Operp:
9 w: L( }; a* C( } dec si, o/ k" M# z" E2 G1 P+ ^8 a
mov dx,si+ G9 f5 [- q3 y3 v4 p5 C2 n
inc si
5 r R& M$ l0 N- b# u' i& e6 Y- s mov cx,si: g3 e" L( B+ Z1 q+ C% m7 g
call arrange
) ~( J$ H% y, j call prop2
) _' L& {- ^, J- T$ c5 o4 u call putchar4 ?( E% T1 d$ E t* ]
liang:
# u/ n. w% F9 P( Q/ X call Continue. D4 L! ? E7 H/ k+ D" s
call judge! G# s6 }1 u: `1 W( M5 }& X2 j( p
mov ax,4c00h
1 \; [) \9 |+ o9 _* s# y int 21h
8 D3 f/ H' o' u6 J# L; J% C/ x) j/ }" Q) r" g& H4 ^' ^; R
+ \4 o# R8 T$ v- ?' u2 iContinue: enter$ X; @$ |& v7 [
mov dx,offset cont( R2 M! Z3 \4 ~
mov ah,9h) m& o2 X7 U; f! ?7 l& H- [! Z! [8 u+ n
int 21h" k6 l2 m. W8 {3 }/ P' S4 o% S
ret
) U" A g) V$ S8 K$ _6 U! z: Z# t" E# r! Q3 A4 B+ _
judge: mov ah,1* R0 A+ Y2 B, z) N' d0 t: j' I% F
int 21h
: x" S& B) b# h or al,100000b; `( ?, f% I- w1 p
cmp al,79h; C5 G% m: _' a! x/ H
je clear. e9 t9 R& X$ x( e( p
cmp al,6eh% P2 ]- j* }) X# b, q
je endj
5 ^9 y% `+ {, T' U8 ^ jmp liang
" m' i; C1 I( q3 k3 p9 d8 zendj: ret , a T! ~% m, m
7 W: R* A" I* F% J4 v; dclear: mov bx,offset table
7 \, J) Z0 M2 C mov cx,300
( e0 {7 U* z Ozero: mov byte ptr [bx],0
" }% ~" D6 B. F" K inc bx
4 J6 o8 M3 [" y2 ]% N8 i loop zero
8 X/ V- Q; E" ^, I1 T$ I$ d jmp start7 c2 p; ]$ ]0 A
+ Z5 }# N2 {" _1 {8 Y5 ?9 e. U+ }: U& I0 m a
enterchar: mov ah,1
' P( @* [+ o4 r) d/ S6 T int 21h% \5 h1 ?1 H- o- U- A4 y+ F6 h
mov byte ptr [bx],al ( M8 B( X& D% V4 C' n. Y
cmp al,13
4 R. N7 X/ N& B% N J# x je endchar ( ~% [) {4 N/ L; [" s% l. e% r
mov di,1
: g9 c* V* b# P/ s) ]( i; D' l) E inc bx5 A. T6 v; v0 V' l( D+ E% ]
jmp enterchar$ G" R8 o7 m: T+ G% n7 J
! f# G2 w$ V% i& Q+ L& s
endchar: enter # R4 h+ ]1 ]6 c' f" w& v! G$ T
mov byte ptr [bx],' '/ |3 k: {' S3 ^; w' H6 o( e/ U
cmp di,0* W% O5 L x7 f0 I. |1 E: X5 V
je perp
A* ?9 X7 N. P; t3 D; P0 E inc si
5 d0 s/ E0 P3 J/ b/ k/ } mov ax,si
' I Q( j8 c/ i* I; j' y mov dx,21: M. Q/ h0 h5 w
mul dx
6 w2 y: G, ?& x& f4 Y2 J5 s mov di,0
. S( H/ f) d, ]' O) B, h mov bx,ax / j0 N2 S$ j7 @. g( u
jmp enterchar* S0 T0 q7 q# R
, a7 }0 M8 b; c2 [2 Y
arrange: push si
2 W! R5 r8 w; Z; T( B; Z' G$ N1 y push cx 8 Z' t* [- W, q& ]
mov cx,dx
; N( |9 O6 `, }, s! V) r mov si,0
& ^" e' h$ U3 j; Z( y mov di,21
4 d; `5 J( F. r$ j/ i- I
( K5 G! W, i" w( I' ~5 Hs1: push cx
; E& i# G8 \! ?$ Z8 n# v mov bx,0& n, T/ g9 j/ d6 _; J; r. u( E
mov cx,20+ f& Q" f6 K3 s9 M7 g
ss1: mov al,table[si+bx]
% E3 u4 i/ B5 u5 i- ]* h/ z: E cmp al, table[di+bx]& c% p5 f+ W. m6 e1 N; A
ja jiao
" R- W' P9 P0 `, T9 D jb s2
: C7 D4 Y* z! Q* ^" p. g; b* Z inc bx
( f3 K1 x0 s- n; l loop ss18 J7 M% g7 O+ M- s. s/ B7 C0 l
jmp s2
- y. T5 u, E$ Z' @& C' x. K! [9 E0 | J7 J) f! v
jiao: mov bx,0
0 e$ q5 N4 h; z4 V mov cx,20
; Q! S+ W$ G3 I, ~; `7 j2 B0 vjiao1: mov al,table[si+bx]
' p8 a* C; F: X# f/ N xchg al,table[di+bx]! n8 s4 U+ ^4 ^/ [' ^! n) ~7 s; a: R
mov table[si+bx],al
# \% @9 E! Z5 x3 i' r inc bx
* E' R& N, w1 B loop jiao1, `5 ` C4 B' }
5 T8 ?9 _+ |: D/ W v+ V [s2: add si,21
+ ]1 Q- ?+ i( z) K; r- x add di,219 ~" g0 E/ D7 p" j0 p3 F
pop cx
, c7 U& v: W9 Z6 n) K- `, S loop s17 [9 x. t9 d& y; N& W
# l/ M4 S- J2 _. @5 I pop cx
; z+ b% z) P# ~, A: F8 \8 j' P pop si! _. D6 P) u3 n& O# U
loop arrange) k4 w& s6 B, x* ^
ret: y% u6 D9 h# {4 \1 B
5 D+ ^- C' k& i" c6 G. u
putchar: mov bx,0
; q4 v5 W; g" t. ?- l6 U mov di,1
3 B* N% F& v& Y! m* l1 Q
, q+ @' ]2 C# U" e 5 x3 I3 _5 Y! k% b, u* m
mov cx,si
- T. G- H! n4 W9 z4 x. iput1: push cx$ u+ m' w0 k; Q; u
push bx L1 s. N8 S+ N0 X
5 I- j# P3 L7 h% _5 S
enter
8 g. u l, Q$ W1 p; `! Q& M( W " ^, N) e9 O& A+ D! O* A9 W% g; N
mov bl,10 { P) S- u" K, @$ S, U) X5 Y
mov ax,di
, c; u! F4 m( Z1 l; d, Z( N div bl* Z3 N" U/ J5 R* K
mov bh,ah8 t9 d; E+ U E) b6 o! z u
add bh,30h+ q' {" z% m* Q) z, s
add al,30h' m9 Q* V+ Z J$ H
7 [2 m+ m7 c, n; M" s; F. R' ^3 Z mov dl,al
3 y/ q7 P9 u/ \$ t" t) N mov ah,2( o. X: ?' i) }6 e- z/ W
int 21h9 I: l8 {) a/ z' L' K) |; x4 a/ I
mov dl,bh
6 k$ @" \% \6 x0 I6 l6 K mov ah,2
( R9 O! Z V; Z' Y9 P! [$ N% g int 21h
$ b( }1 `1 t1 |- N mov dl,3ah
- z( e/ X! T S5 `" y mov ah,2: x" w7 p* W3 r c) g
int 21h
0 h/ Z$ A a2 l pop bx # p& A0 S: K) R Q: n2 q
mov cx,20/ g: ~1 { v( @& d% E
push bx) S$ {. j% |" @' N# ?; D
put2: " V1 t: M: j7 L8 }* O; R! I- N
mov dl,table[bx]
* J; g- A% k' b mov ah,2h
0 y* O1 b. a+ U6 C int 21h
1 D) V9 f* S3 a. w
1 |0 |& ?4 b! ]2 L! F8 u2 B; l inc bx
( P* X" J1 D7 a, D loop put2
, y# d7 U5 `$ t; P$ l inc di 3 b. m: C. F- h
pop bx1 }% J8 |* d7 U$ Z5 p
add bx,216 `+ ~2 @( B$ v9 K8 A8 d& g$ \' \) N
pop cx$ T3 m* g$ h0 N
! H, u& a6 M0 }" K
loop put1) [9 d# y2 P9 y Y$ a) _
ret( h/ L2 X# d# X# I+ p( I$ ^
h/ ~( F2 j* G( Q
prop1: ' M' J* S/ d2 t
mov dx,offset pro11 N6 T6 b% P" e4 a k
mov ah,9h" Y- I+ H% @& A. W3 @% w7 @
int 21h5 B! Q8 N1 f J. s
enter 4 V L% W$ k( ]) \2 k; L
ret/ L* n% g$ M/ Y8 w
2 ~! g" \% G% Tprop2: enter
# L2 \& V6 z# n0 ?4 i mov dx,offset pro2/ F% e0 [; Y' G& c
mov ah,9h3 U7 A7 S( A- w5 ~. n
int 21h
# V. O# W4 s2 [; y7 J( s- [( b ret; t& E) z6 I" K3 h$ |
. d! g0 \; e% v# _7 [9 N8 x
code ends
/ M# U) t9 H% J) Z: Gend start/ b2 G7 A/ r5 v' @$ z4 M; c* m
' ~" Y/ T! `7 l5 p
, Y# R1 A# }( f4 T; w* J |
|