|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
g( u' S) R+ n9 X4 |enter macro' B2 g( e( E* ~& w
push dx. o5 q4 d& C; z' {+ Z/ }2 U
push ax) u/ Y7 D. H/ S9 k8 }
mov dl,0ah
2 \$ }3 d! s; B mov ah,2
* v( e4 Z% I! e$ [& I( Y" x int 21h1 q8 E) b' d z/ M3 o" g8 N9 O
mov dl,0dh0 e$ x3 K) M" E; G" Q
mov ah,2
1 @; m8 ?: g+ U int 21h
. P5 {. D ?! A& v6 o! Q pop ax
( [4 S: {. [! Y6 W pop dx
# H( z9 E/ q% k& }! `endm
7 W7 |" s- s. [) I
* s1 a; S& }' p0 M# {( Zassume cs:code,ds:data' O1 E: D7 M* Y6 `" w' O
data segment
6 }6 _2 [' ~3 W, t1 ?table db 300 dup(0)
- E/ T& V) {/ z3 h: D* f: Opro1 db 13,10,'_________________________________________________',13,105 i& H8 t( Q* _/ i( i; W0 {
db 'no more than 20 characters English name.',13,10
- z+ R! q% \4 a, r' V8 F6 s2 z db 'For example:',0ah,0dh,'liang xin hui',13,105 s9 t, |" Q* J, n* b' B, d
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
, e, U* v9 w/ M Y: i1 o2 u+ L db '.................................................',13,10
3 m3 u* G2 \5 c m4 S7 W db 'Please input:',13,10,'$'
( x8 A# l; a! U# }" `pro2 db '.................................................',13,107 e5 R) z) \8 Z' {2 n; m ~
db 'The results are as follows:','$'! N$ E& C9 h# G. z8 _
0 G% d2 k# Q8 O, Dcont db '________________________________________________',13,10. g. E: A3 e) w( V$ A: W$ C7 @
db 'Can You Continue(Y/N):','$'
6 f' h _ l( v+ y0 R
$ ^- a5 o( B m; ^) ]; hcp dd 50 dup(0): S+ B$ S- d4 K2 k
data ends
" R! L6 c) F0 [
8 a! {5 d+ }& x ]: lcode segment
- W. c8 i' q6 L' o- z& v3 Cstart : mov ax,data/ x0 o; B% s* {$ y
mov ds,ax- k( [5 d4 x2 C# s! r0 h
call prop10 R2 I/ u' v# ?- n& G
mov bx,offset table
. ^7 W0 C- |. z0 ]. E4 d mov si,0/ r; W. A& k7 |3 z% s4 u2 A0 l
mov di,0
) Q+ _$ U, ~0 y 8 s/ a/ @1 T- q! H! p: L; | Q
1 n/ p& v3 G$ S' @- x call enterchar
% Y. X# f4 K& Y/ Q }: Operp:
T+ T. ]7 I; W1 x8 t dec si e) d8 h3 Y& g% {
mov dx,si2 K5 u$ I% v$ R4 Q- x. t# U; N
inc si - A) {" ^% N/ c5 |+ ^6 o
mov cx,si
8 T0 [4 T& V5 D9 C( [- M* o. T5 H/ a call arrange
! e n" j z. W call prop2" ~6 y( k6 C% @
call putchar
$ t) v7 t5 d4 m3 @# `( ^! w6 {liang:" I* i8 Y1 s: F, F3 ^
call Continue0 x8 F5 P: Y3 e
call judge
( W6 h& U& \! J7 T4 k mov ax,4c00h
" y. ^* a: k& p( ]' ~ int 21h
T6 P. {' h( ?( t. r+ _& [: z9 i' @0 t" m5 G) d" o- ]2 N8 R
; B* v" e8 W8 |- C6 B/ [: l9 [
Continue: enter
4 D: q7 `9 n* y3 D% v+ Y6 ] mov dx,offset cont
( f% J- h( X' C; b2 A7 m- S mov ah,9h
, \) r- X$ j2 g int 21h" S4 ?& b7 b1 X; K+ a
ret ' C1 i. K( _ r1 T
3 a; i" J4 J: X" Fjudge: mov ah,1
* y" W+ r7 J* v/ q int 21h
3 x* x# ~0 R% I# X8 T% C or al,100000b
( {4 a8 { L8 R cmp al,79h
1 D4 b. I* H8 l z+ n( w- y! _ je clear
/ H; F" K4 {& H2 M( J cmp al,6eh
/ v/ I6 R. a+ K) L. T' j+ N: ? je endj" f: e) P {& _1 ~( B
jmp liang# E( i) E5 m; t7 I
endj: ret K+ h, T/ k6 k
0 ]. G8 V) a. ]
clear: mov bx,offset table/ _4 a2 Q' v4 E; G' Z/ p
mov cx,3007 w. \" c5 b7 O# i
zero: mov byte ptr [bx],0
/ e. _. O9 |' F inc bx- j5 H/ p4 L: V- P1 U
loop zero
- f8 Q% d% O7 V/ ?! s4 C jmp start7 _. G8 f" _7 @0 I2 Z) N, ?& |. J& v
2 p2 H% [8 R- b& f( H/ d7 Z! k4 \3 M3 _
. e" e- Y, m1 _& F$ n( ]1 l9 d
enterchar: mov ah,1 r8 {/ a, n) s( [
int 21h
! R/ r. V2 B4 K5 [) j mov byte ptr [bx],al . C [4 }( ?+ Q& T
cmp al,13
- |9 y* N1 o; c# R/ h je endchar
8 `2 m$ v) @5 `$ x mov di,1
; }+ p8 n" J! ^+ f$ ~! b- p inc bx
% V+ c. A/ P& D1 C2 x& H1 {, \ jmp enterchar
' u# \; Z' v6 q9 x. c0 u! Y- B- x
; V, P' H4 p! D& E- ~; @* dendchar: enter % b( @; d% x% U* q+ ]2 R
mov byte ptr [bx],' '3 w$ [1 Q2 |- \
cmp di,0
- T0 q2 z; G$ I0 ^$ n2 T/ M je perp
" R7 J" p; a7 L% ?! S5 w" ` inc si
7 Q- N. S) T6 K7 j# ?' ? mov ax,si0 l$ k1 r/ w/ D
mov dx,21
& q$ l5 }& r" d* B' e& {8 V mul dx: a/ [! {0 }6 S/ y
mov di,0
6 _# S: ]; p* K mov bx,ax
$ E6 C! U4 T( P jmp enterchar
$ Q2 T C+ e% M# Q: H0 X# M1 F) M- J! ]' e) q9 X5 }
arrange: push si4 e: ], d. }* g2 `/ \: o# D
push cx
/ ^ p% O6 J9 S6 d9 y1 h( J) l mov cx,dx # |- n5 H4 F7 Y
mov si,0! i$ Z6 K8 ?2 a M7 L
mov di,21
9 {) S$ {1 D0 @# I% R
/ n! w! T- D a$ p% }s1: push cx6 t4 _: d2 ^7 N2 {
mov bx,0* o# {- O5 G) p2 p
mov cx,20
8 S% K8 O0 Y. X N, Q' C( bss1: mov al,table[si+bx]
9 e( i. {% l; T, m1 s" O! X cmp al, table[di+bx], ^# t. ^$ I7 L- a4 f7 r. X
ja jiao7 o1 O( \& H5 k$ x2 ~" q% f
jb s2
! B! T, r: i, c2 _. b& a, L9 P inc bx/ N+ t1 {" {5 ?6 ?" O( x! B7 v( E
loop ss1
0 P+ m* h% j, T jmp s2
* C9 A4 j8 o" ` A/ A( A8 o: q; |. \/ h+ ]3 D
jiao: mov bx,0
9 L, _9 D: d/ ?$ P; q- J3 t$ W9 a mov cx,20
( j3 z+ p: U, [, k1 S7 hjiao1: mov al,table[si+bx]8 z* G1 G7 O4 h# V- }; Q
xchg al,table[di+bx]' a2 m% ^; ? z) C
mov table[si+bx],al
, _# x2 N1 O+ @6 I- ^" L inc bx4 J( y2 y. h9 @, L( A& Q
loop jiao16 v1 p3 H4 b" G% d4 W5 `
( U# @' @/ l( ?; H
s2: add si,21
& }6 G2 G2 ^5 T" x( V add di,216 O4 S f! N0 i8 p: r0 S
pop cx/ E; i n* p. l& w9 ~5 c0 N
loop s1+ T: Z3 l3 X e( P2 i/ N6 {; r1 ?
- V, N9 c# } b7 i6 ?9 l
pop cx
* }$ `6 n. e0 X+ H$ \( s pop si3 {- V7 I# ?/ Y" I
loop arrange
8 Y# e0 }( {; H/ a2 q, s ret
- u( Y/ `- Q6 E" f9 ~
l/ C+ U7 y2 p9 {/ ~0 E# sputchar: mov bx,0; L2 V/ H" M& g! m* _
mov di,1
* V! R. `6 r% I5 K& k # y4 \: B- N6 Z
) s3 C/ O; W- m0 z+ _ mov cx,si
: Q3 j7 Q7 ^& G/ `put1: push cx) u9 @& ]% [8 S" `) q
push bx& Z! b( f$ w3 w! A. t( G) Z& g/ w
, {. `# H, ?) N- o
enter
- w P9 t3 |% v q9 } 8 h( m; X8 E" }6 Q" z: h+ {
mov bl,10
( R0 ~( o* ^; H# { mov ax,di: t2 B- e4 W7 r5 f* P' v
div bl6 N1 j! | p* k+ f. t
mov bh,ah* C& s7 u3 i& {% b: R
add bh,30h
$ G- J6 M9 _0 s. ` add al,30h* ~; G, j" @' x. A
% X3 @) w6 A2 q6 x- o
mov dl,al
$ R7 k& L5 V$ i- B% w* n mov ah,2
, [, }/ S! Q5 C int 21h
- K$ A+ o4 M7 ~# G$ D mov dl,bh
6 n, @# `% H3 y+ n+ |% F mov ah,22 f! H0 j: S3 t. I% o
int 21h
& J% c- g; \ m2 f mov dl,3ah9 n; r5 v }+ U; u. H, [- r3 Y5 y
mov ah,27 I# c/ _) R( m% z L
int 21h
8 ^3 U, i. [2 ?' F pop bx ; ~$ m' y$ n- `
mov cx,20) Z3 Q' B/ ^5 [8 n" A
push bx
8 h$ \% m9 a/ L- xput2: ) r4 ?+ n3 c' b5 k/ a5 R/ a
mov dl,table[bx]) p: j8 [% |4 j2 J) J* F! N) \
mov ah,2h, t" y. L3 |: j2 y
int 21h1 N; m" z+ K( [1 ?6 K$ ]
% a9 b' k0 ?% x3 D
inc bx: P$ U: _4 j) O* O; a: Q/ m
loop put25 q9 z7 c. A# |) h( a
inc di
1 B0 t( U6 J5 Q1 o. a pop bx
% r9 q$ o9 p- O! e+ f4 _ add bx,211 |9 v, k3 [* g8 u! A
pop cx7 Y, H( ~3 p9 D+ L" T; H( T/ Z
+ l$ u& U$ t+ l( l+ }! m loop put1
) m1 \1 {% J9 Z ret% p! N5 B3 B, K1 n* y, ?9 S$ x
) \* @3 J) _$ r: c2 ~/ }5 aprop1:
' ^, f) z: u9 W# n5 y( X mov dx,offset pro1% ~( t. w: R+ |% e3 J# `
mov ah,9h; Q! ?/ `) \. A2 i: | r! H
int 21h
+ F# }4 q3 b- s9 ^ enter , x+ D0 u8 @7 V- j
ret
+ l0 ]9 _; B5 o
% j( E4 d2 D: r$ _: D3 y: Zprop2: enter
. f* h/ t1 B+ e0 a7 Q mov dx,offset pro28 I* Y( A: {8 a: O9 W6 p5 e
mov ah,9h. d/ H) U" X6 A( M, E+ S
int 21h
3 x1 t H8 h+ r ret* S6 s& k1 j5 P( `
2 ^2 m) w3 I" [6 M
code ends, w' ~; L7 e. R8 \9 Y
end start. ^" @8 V* ^( E, U" Q6 @
# G1 e1 F0 B4 G
2 t: e( v. ?# v- U8 C |
|