|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧- ^5 ?: j3 X; d$ |& |. \2 W7 X( `
enter macro6 s( V2 Q3 Z9 R* N: P, B" R0 V
push dx
+ ~3 |; c: ]; {1 U( ~4 h push ax2 R; Z ~' {5 J6 A8 _7 P
mov dl,0ah
. _: J& o( r* ?# _- | mov ah,2) j4 Y6 P, u& D' z6 M
int 21h' z9 g/ R4 N' Y% O A+ V1 B
mov dl,0dh
6 d1 m: q M+ P& @& _, B$ j mov ah,2
1 ?4 w! Q- V' t) m; [" h( B int 21h
: C$ d" p" R$ U# g: p pop ax' H6 w9 w d$ J/ L0 ]) n3 ~ D
pop dx
, [ _+ B7 r8 n( qendm
: c. ]1 G2 O" T/ t: B; v: q" @- `" H# n4 t r, a9 h/ z2 V
assume cs:code,ds:data
) B e5 w* p4 r, g6 hdata segment I: p8 m" H) P8 C! v7 S
table db 300 dup(0)
% Z! S. A# m( G" R6 rpro1 db 13,10,'_________________________________________________',13,10
& k- h1 }) M! A db 'no more than 20 characters English name.',13,10& M( D" R- H5 ~5 P
db 'For example:',0ah,0dh,'liang xin hui',13,10: r6 J2 j) ?9 g0 A; a- X: n1 D$ h8 \
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
7 W& i( W, k1 s, L+ C, y& x, f0 r6 e db '.................................................',13,10
6 ?2 J: P+ V6 F# ?. e db 'Please input:',13,10,'$'
2 F* A+ m# M8 K; s7 `pro2 db '.................................................',13,10
$ _! i9 @, F" O) e! M8 @ db 'The results are as follows:','$', R* H# @ M2 ?) b o
1 [7 x s- h+ u2 ^ ~6 M
cont db '________________________________________________',13,10
) T8 [7 ^" q" O. ]. y, @ db 'Can You Continue(Y/N):','$'0 k" m* M: @5 f1 k+ G
# {% ^0 }7 a% X+ w; n- l7 O+ D! ^
cp dd 50 dup(0)
1 `5 C# |- n2 Z- p: ~data ends# ]/ F/ F9 {: B V: O- g% E/ ^
2 V, E' `, V: f( y
code segment! t' g. Y5 A" s6 v7 D' j' j* D0 Q0 k
start : mov ax,data, @) Y# q* B2 K: c+ C! ?
mov ds,ax" X: Z' G' `- c4 I) ^$ l) M" A
call prop1# J. i0 Z5 j: J& C7 x1 f# H( n
mov bx,offset table0 `* x I- \' H3 f7 k+ R/ C5 G
mov si,0
+ F; P- f5 g0 l7 V9 l0 Z; V mov di,0: Z/ ]$ s$ F7 s
- o5 L2 J/ b8 k2 z H 8 @7 Q* j% p j( v* j8 n
call enterchar/ D+ X3 V; W% h* {; Y# T/ V
perp: 4 W" i2 o( w' z0 h
dec si3 l* _9 o1 @4 ?5 C
mov dx,si
3 E4 p- M) K+ Q1 d+ ~: o. } inc si , a9 J5 d5 }$ {/ q
mov cx,si/ p, ^! }: q( f. W2 w* w
call arrange# l% I2 D- z: `8 n
call prop2% u3 \9 c% u& ]: ~' N
call putchar
' Z7 b* N+ U# N6 lliang:$ ]1 S- [/ d* l0 a8 @, l& _) z
call Continue0 r( C& G( S$ F, h. s. ]
call judge
7 u' t0 A( i3 s mov ax,4c00h. K7 G; h9 }. ?& W" N$ j+ D
int 21h
6 e# K( j& |2 @7 w6 w7 z; N6 Y
! G' ?( ^* j* y& `# w+ l) G7 |$ Z3 v7 a% `4 d
Continue: enter) W! j$ w8 k5 P
mov dx,offset cont" e+ E. U( D' e
mov ah,9h8 a$ z- u& K q: [. j: f& [, i& |
int 21h
) @1 [9 b* j. I ret
5 D o* ^! V1 ?% j+ V* z* _
! J$ \& G' N6 P; {* ^# xjudge: mov ah,1% |- F; Q$ I6 I- Q8 Y1 r/ X9 k
int 21h
' d; {" u% m# o- d. u$ [ s or al,100000b! u- v: ~; ^8 Q/ N+ N
cmp al,79h- [6 ]% Y- r& N+ q# ], m
je clear+ Z* I& F* K$ ^) ]7 g
cmp al,6eh
. k: h% i( o: d! d+ D7 b# X) g je endj
! K5 w0 b! G) A- y) X7 x: ]0 Y) B jmp liang V& V3 ~' t. j# _! a
endj: ret D' G7 x2 _1 H# Z' t. B
1 H4 B$ P# v! e8 b: g6 V! uclear: mov bx,offset table
" H- D9 y* v- ?/ N( X1 @5 r mov cx,300
2 K _4 a. C& ?; V9 Z. dzero: mov byte ptr [bx],0
0 V$ m- r; k. ]2 z. c+ B) o inc bx# h( }" w' [( m X6 z7 t7 H% c# p
loop zero; r8 w- p2 K/ t6 h2 O' j
jmp start
! p: U [8 S: B" v7 {
' v/ i2 q! A1 l; g9 V! G" q! }# s: W, m, Y" v. y
enterchar: mov ah,15 ~3 ]3 }/ Y' r9 g
int 21h
. ~0 H3 u; T$ g' m! l4 d8 x mov byte ptr [bx],al 2 G9 W( g, F0 \$ L' ?
cmp al,13
" y" i9 ^8 }/ H2 T: ] je endchar
N) @- h. ~* D. X3 j9 @1 g3 k mov di,1
( L9 O7 F( b* A) L6 v" J( g* K. \0 K+ ^ inc bx h, s" K9 z+ S3 D% ]7 N, P
jmp enterchar0 L; Q5 _ D* L( b9 Z) f) B! {6 L" T
1 o+ o+ @/ K; I: x" A3 q! a1 pendchar: enter & @7 ^) T- V V- l |: P( h2 s x
mov byte ptr [bx],' ') p) M/ q) t6 ?0 ~6 u7 ?9 i
cmp di,0 k1 n W* `9 c& G) Y" ?$ s
je perp
1 W; j j4 a1 i& \4 f' u' R inc si K2 o, U/ {- n9 H$ G6 I7 I
mov ax,si
' i7 b6 z8 g7 W# \; o; o mov dx,21# S s1 _; l% U& a' C
mul dx, F/ ^6 `' }' ^' k( t4 k
mov di,06 b/ n) B5 K) H0 t( A0 r
mov bx,ax
1 l; l0 S a2 }$ R jmp enterchar
" J. j0 i9 G) {, [. x4 g& e2 p0 J( ]8 h$ C; s
arrange: push si
; J" d, V9 C; e/ g; W. X push cx 1 H- r5 \" \6 [) `4 Z' N i% ]* d
mov cx,dx
3 G9 v& X% K$ k Z: m& b9 s4 g mov si,0% C; w1 ?% V) G) Z/ s3 w
mov di,21
9 B, \# P/ K7 O# Y6 j2 P# ]8 m- N2 N) K6 ~5 Y' Q
s1: push cx
) F+ d3 p7 \2 G& }0 r' e mov bx,0
' K6 D. B: x9 }" l# g: Z$ K mov cx,20
. J h: ]& M' v4 @ K* T5 k4 a uss1: mov al,table[si+bx]
* f! S F0 |" D( y cmp al, table[di+bx]
6 Z b7 [4 J m/ q" ^ G ja jiao
) o' V f) G/ i& F; I' l jb s20 `$ J' k# V! a V: i0 Q
inc bx0 `& d, t* s2 U7 ^) w
loop ss1
! y+ g- R9 ?( `8 o+ h2 @9 }# v" V8 P3 { jmp s21 `. f) V) k4 y6 p1 i
& S+ l3 q9 u4 N& H+ U( }! @
jiao: mov bx,05 X5 q3 k3 c. v) e
mov cx,20
% x' y# Q. V& h" s* C1 ?9 j0 djiao1: mov al,table[si+bx]
# k7 p2 \$ o+ t" n D xchg al,table[di+bx]
! ^. h! s+ b( w+ d' U" \+ L' I mov table[si+bx],al2 Q5 ?: r" \ i7 _; z
inc bx4 \ F4 P4 x/ z3 M/ n+ H* x
loop jiao18 k' y7 t+ H: J
6 p* Q* t! e0 r3 u9 [% J
s2: add si,21$ X7 G2 P0 D6 l9 n
add di,21/ ]3 r1 I- F: `0 N
pop cx
/ Z" I# V! S. v$ S3 L loop s14 s* z, o) _! P; `+ |1 T5 W; [# S
, \2 F) O# y e7 W" n( r* o$ V: {+ U pop cx
' w; @) H8 d0 k pop si
; U# P x1 x! [% L; L loop arrange0 l' w+ w* u* ~* n U5 D& J- E. E
ret2 J" F& \ _2 i- p
+ M( [7 _- D. e4 i) U6 d# x
putchar: mov bx,0- [7 e8 a/ }) @' |! ?6 u; r
mov di,1
! e3 y6 _; \, `+ H) S! s
( {) j* P1 d) L3 A " `: `9 g# U* _- H1 F3 e r: X3 d
mov cx,si: i; k/ g# R; [+ O* w
put1: push cx
$ d& k6 O& ]5 D7 }# f7 t; k push bx
4 z* n% |$ W: s! z0 G: M$ X ' t. S' x7 K3 d: L" `, C& b- l
enter
7 Q) t( V) ] D' E . [4 I, k1 H/ Q
mov bl,10
& h3 h3 G- B% j: V mov ax,di
4 n6 |% I4 G. Y P9 u( Q2 n y div bl8 J" b3 C, a1 s: T3 B
mov bh,ah; }& z" ?- b" t
add bh,30h
5 S6 ?3 X- c! F$ N2 Y' [; X add al,30h6 N: Z6 `; V% S5 F
; r Y A5 u4 m$ D( J" v+ x
mov dl,al
# U5 n* Q) p2 J( J, r" m s- j mov ah,2) u" E) y4 y& E+ x
int 21h
4 Z2 `3 l7 ]' w4 y+ s' h: L" a9 \ mov dl,bh0 ~" I5 N; e- Y p; ?3 V
mov ah,2
! Y+ O3 B. V& d7 e: u int 21h0 n4 K7 v$ j% R
mov dl,3ah
3 T, F! q( s( }3 T; x: O( ]6 ^ mov ah,23 b' g/ G7 b# h. [1 o+ i0 t' ^0 t
int 21h
& w9 e+ l3 D$ F$ T3 I pop bx , j* F8 v" v" c) r/ f: P+ q
mov cx,20" l( p' x" {% e0 f5 }8 z' h: K( S! [
push bx
1 I) C( M8 w3 H) oput2:
# k- q T& P# Q, b mov dl,table[bx]
9 W* m0 [( G* Q: P mov ah,2h
9 D U- u3 P1 t9 E' W+ ?6 g( z int 21h
: i" i3 _4 O: v( P2 x1 ~3 e ) i9 Y1 N7 |/ a7 d% N! I
inc bx
* }9 g0 t7 C/ C! Z& L; Y( | loop put2
! S; m+ @) S. Q inc di
5 l/ p9 _+ z+ t6 y pop bx
" _- i) [1 W i$ j add bx,218 R- {* B/ E- P6 H0 O$ N
pop cx
: V7 V9 b& J/ X! N1 O
: y/ {& N9 O9 z2 S( |( a6 m loop put1
! g N# R/ k. ?1 K- d ret
! m. s" u% \; H5 h3 Z2 z- `3 c5 p' E4 @2 U
prop1:
6 f8 }# P1 A7 Q0 r* g0 h1 x7 y mov dx,offset pro1
7 {5 f# ~6 \4 j* j! f2 T6 m mov ah,9h- E7 x0 L1 O2 v
int 21h
/ o* j, u) J" d( g# n/ Q- Y enter $ U) `* Y) R+ J( e$ `
ret1 I1 ~2 l. m! E( }: {
9 H: f. l6 p9 c$ m( r
prop2: enter$ A; d6 {& \3 _# R" J$ _
mov dx,offset pro27 _% q4 }& ]5 p" k* w
mov ah,9h: Y7 E z0 u$ ]" m
int 21h
- T1 h- t! L2 n ret- b/ \# m+ D2 e; l; |
3 c! H7 O& |3 M$ e( h# B6 Ucode ends
' c+ R. ?5 Y' ~end start5 p2 o; u8 b9 J/ D3 S3 t' M) D8 p1 E
- A+ L! @) G# q/ y
' N6 L: l \5 X" \
|
|