|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
* d1 G4 @" V* m- A/ m1 _enter macro" V y/ y) Y$ v( ]. U
push dx% B7 O% E* f9 g, F( l! z
push ax$ `+ w, \& Z# b- l/ Z1 N: K
mov dl,0ah
2 ~4 P9 d) K" p) Z mov ah,2- K% v4 a* M! Z: q9 b# @
int 21h
$ \& h: ^: ?' s# A mov dl,0dh) L1 k! m" W9 g+ E0 ]' l# d% G
mov ah,2* q" c! e; r" \4 e8 I; x9 v
int 21h# {" l% n& c: Y+ \6 P. l
pop ax* c, P2 T% t3 M4 S! T$ ~- A; f
pop dx
$ Z, E! K1 ]* q2 F" U% Hendm
8 U6 m9 ?, {' f- M; |7 D6 E
/ ]" }7 s. N1 Q+ }assume cs:code,ds:data
* {. p2 L& a' r! \data segment
" T) g; P3 {/ X+ V3 \+ _' ytable db 300 dup(0)9 @$ \2 N6 {. h4 ]8 }0 Y
pro1 db 13,10,'_________________________________________________',13,10) @; e. i7 \/ V$ }
db 'no more than 20 characters English name.',13,10( P" a, l$ v5 t) K
db 'For example:',0ah,0dh,'liang xin hui',13,106 W3 e* C j6 o0 T' o. [
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10: y, ?, R6 Q, t
db '.................................................',13,102 f: {1 e2 Z$ H5 B* p( f0 j
db 'Please input:',13,10,'$'
3 S1 W' |: y A0 a3 m+ A5 n Gpro2 db '.................................................',13,10
/ u1 {( A, }( s db 'The results are as follows:','$'; _2 f1 _( Z( K! o0 J. m
4 i8 D2 y# t" Y0 T
cont db '________________________________________________',13,10
. e- X: M* b( H( x3 c3 i- {" A db 'Can You Continue(Y/N):','$'1 G. K: g) [% M' |# ?9 p5 d$ |$ h7 @
' b- Q4 K& _2 c2 U J% d+ v( i
cp dd 50 dup(0)
- v) L& I# a/ c% E6 U" ~data ends
) |9 h5 J. h J. n+ h' \0 ?! _. g/ V/ h
code segment
4 d0 A( [* ]9 ~8 w# qstart : mov ax,data3 c. d2 n4 _" `0 O R
mov ds,ax
4 |; a9 U* \& H- c' G call prop12 G7 w) M1 k. g* i7 ]% K
mov bx,offset table
) ^9 r1 A k4 y" w1 n, M; X2 ~ mov si,0- K o4 }% y% A- F9 w
mov di,0
4 F6 q3 V! p C! ^6 M * f, K, }& p* k0 j/ V
# T5 ?7 y/ l+ M call enterchar
4 ] n- \& `% @perp: 2 l* y) A' ~5 [ k
dec si
" [$ L1 k6 W) f) E, Y5 P mov dx,si2 w6 V2 F* j9 x, m( z) J
inc si
9 Q& a5 I r( B* q& k- F0 x mov cx,si
- _% B7 O$ T1 C2 D call arrange
' O! m7 I& l3 G( T* z5 @# l) ^ call prop2
- |9 F: ^. u% |# _( R5 l$ G call putchar, x; l3 P4 s; a: o8 G" N% D) U# m
liang:" v: H( G; r, R; _6 N
call Continue
3 a0 X4 |9 r( m" | call judge; E4 U4 z8 w. i( |" ` ~
mov ax,4c00h
4 c2 F" r; L, ^. s' q0 n int 21h7 J/ _ T2 H: O1 u
% t3 L) y5 S7 a0 e, G! q! _
4 J7 s; I+ \2 W7 t) f. }- s& Z" N" b/ mContinue: enter9 Q7 P& S0 C, {
mov dx,offset cont. @. i+ |1 _- K# I
mov ah,9h' O8 L* O. Z' G2 ?: t4 x' h0 b
int 21h
) Y/ I3 x- a; Y% v0 y ret * [$ Y+ B+ i' J
v0 `1 `1 ?4 a% Djudge: mov ah,1( N) K2 x& Y) R7 {$ _6 C
int 21h
1 e6 c% _% H8 C or al,100000b2 K p8 ?# p6 q5 \4 G: m9 i
cmp al,79h
7 T6 b) w! _0 }" h9 G: M/ _ je clear* s* a! A: L4 i( T) p
cmp al,6eh( c7 J* D" g* L' r. Z3 u7 p
je endj S* ]' [( N. L- [. H. S; d
jmp liang
" m' I5 I# R/ j6 Sendj: ret 8 [# O4 X2 s3 k9 H6 i
" r3 I* a2 e* [ m1 i; zclear: mov bx,offset table
( J) j0 B. C; v- {: a mov cx,300& \% t) J; S4 {- R
zero: mov byte ptr [bx],02 Y$ G+ T. s; j9 S3 A% i! @+ `) z/ `
inc bx
! m# l; k, E1 t, m8 Y. _$ `" e* ~ loop zero
" p) _1 p3 x+ M$ q0 T4 p jmp start
5 B6 ~7 \5 R+ l& z) b
! M2 Z0 m! M0 E9 d; p* Y; c
1 J& a( R6 T) {7 C$ Y Y+ ienterchar: mov ah,1
/ Z0 f" Y& w, p; }6 I) l int 21h3 p( @8 b. v0 i; d6 E
mov byte ptr [bx],al
0 a" v# L( B7 K cmp al,133 K1 P! ^( h& A
je endchar
* }3 O) c# U) ^ mov di,1/ o. g* T) B) [1 z
inc bx G9 W, z5 T) M# n, G
jmp enterchar5 r" H' t+ s3 D9 l7 a4 ~
; Q: _. U# e6 U# o, b& M) E- lendchar: enter
& q3 B3 i& Z! |7 P2 N& J7 Z: B mov byte ptr [bx],' '
# U9 _% s4 |" H6 [% C cmp di,02 Y* w7 V5 C# O5 y
je perp
9 f, k$ X4 ^2 l0 \; ` inc si
* U$ G& P2 v) a/ v# q+ V. d+ k mov ax,si) A9 A; k- ], C# V* A0 R& k
mov dx,21
, h( |8 Q+ {+ Q* J, A2 e2 v1 ? mul dx
( p# `# {+ ^* j$ D1 y; h mov di,0% t* ^, w: T" j) D
mov bx,ax
8 I. f" }5 g6 Z( M6 U+ O jmp enterchar
- { ^! O! @8 K5 r8 [4 ]. C: F! H3 T w3 ~! |$ S* V A3 F2 V5 \! N
arrange: push si i5 p9 b2 h5 Y, F6 D3 Z
push cx 3 }+ F5 ]) F; F) n: n' j7 R4 U ?
mov cx,dx
! @8 Y" ?. y6 x r* U mov si,0
" O$ M4 I( [3 Y t& c: C+ e mov di,21
; I8 V# \+ v! h' h6 u, w$ a1 ^7 C# W1 E
s1: push cx2 k2 J H. g$ t3 ?" M% J8 S
mov bx,0
. m3 o; ]) d! w. J* n( F mov cx,20
' T4 c _+ s- [7 S* S3 _ss1: mov al,table[si+bx]
{+ W& Y; P- {8 Z/ A cmp al, table[di+bx]
- o1 b4 M" n+ A2 t* a4 a ja jiao
* b4 N7 y/ p$ d' D# \+ w& n jb s27 P& N6 ~6 v. X8 F* s
inc bx6 |% A6 H: P# N& h
loop ss1+ S" H( ]' s, ^- A9 `& Y, B# p" R
jmp s2
- @5 n N# ~; J0 U
, E7 a8 a, H! d7 Z- C4 v8 n/ A- O) [: rjiao: mov bx,04 }- g2 J* L: v5 k7 J! L4 r* u
mov cx,20
$ p* q+ T+ [* I& Xjiao1: mov al,table[si+bx]# b2 b+ z5 r7 I
xchg al,table[di+bx]1 q5 k: }2 M3 X4 w" T
mov table[si+bx],al1 K" S) w q' j2 L6 T& L
inc bx
* x5 T7 P; X$ a. @$ d7 N loop jiao1
2 w8 ^: U; |' o0 q. J+ o) h7 B8 t4 U8 x3 E6 _7 _' Y
s2: add si,21$ l: t; m- J& f, o7 d5 v6 f- P5 N
add di,218 a1 {& J8 _9 C+ T2 n6 H5 w$ n
pop cx" Q) J8 P# `9 W& p( I
loop s1
' G Z( a! Y9 M0 i S& U9 s" i5 I2 g1 Y {
pop cx B: o; B# }1 R
pop si; {" ^1 v: Y% X6 [5 B; Z/ E8 o
loop arrange& b* T5 @ O. o" U0 U
ret' l% C/ k0 q6 K
6 ~% J! u6 b" `, H
putchar: mov bx,04 H% X1 g) c1 t: r! u7 z! ]" l4 E
mov di,14 C! B- I, F; x8 E
7 Y% o, {6 v, F# z- O9 T# i& A6 v
! e6 W. K8 S* ~- X5 p! l mov cx,si6 F) k0 S0 J3 v/ V. R
put1: push cx/ A2 _% l, l) t; i' B
push bx
8 Q) ^" T; W. J c b% Y
( ]' Q7 n9 M& m0 U# r- f; W7 P$ L4 D enter
5 y3 P P# D1 \# |! s I' [$ G' S
0 ?5 w- P8 c% w, Z& Q0 _; ] mov bl,10- | R: r# R) b B
mov ax,di
, d3 H; w& q% T) J7 o# _( | div bl7 X. T' S: V( `3 F- [) s9 D
mov bh,ah1 @+ o( M' l% F. N( `( {
add bh,30h
) w* C4 Q8 P7 k! N+ c add al,30h
6 P0 j- ~- |2 t% U7 ]2 ~+ B+ @ 3 g" }4 ~: H! U' v, d) ^/ V3 ?; K
mov dl,al+ u2 O% N7 w8 R: c- u( `
mov ah,2
. x# e6 a8 }7 S int 21h
0 r. Y; Z* Y, e* D9 g, K mov dl,bh
2 W. O+ J. j3 i# j1 q0 r( f mov ah,27 R4 p; j/ q) W/ p+ ^8 G* B& p, }
int 21h
/ @7 p0 V }* B" W, d7 X7 A! [ mov dl,3ah
7 E4 j( `' I) ~9 T mov ah,2
# c" G% |+ H* `/ } int 21h4 W3 s1 y# o: y& K/ K
pop bx p3 N, J2 l5 L% y4 u a0 O/ C
mov cx,20% \0 H u7 S. p( o# ~
push bx
* R( k# B7 \( c' K6 j0 J3 @$ r oput2:
6 W: ~/ Q2 R8 @ mov dl,table[bx]
# [. W) w; F$ J5 Z+ Z9 i mov ah,2h* _2 B. L- x' B8 F9 }- z3 l1 W4 m
int 21h
* V/ b8 ?' q V5 x# U U 4 E" J; O) ?6 }" G0 t
inc bx
) s- n) g0 P! W loop put2
7 ?! e3 V8 A0 p) y. k inc di 6 J8 \9 n, |% q" F' D
pop bx
: h& n |- l+ e7 f add bx,21
2 r# z7 A# T# w; j7 R& D pop cx M' E2 y+ H1 X, J
$ T9 p2 Y+ G2 l0 o0 r loop put1
& I- S2 e9 L0 k# E$ s0 b ret* F* @4 g0 c# X
' C3 \& O/ @. {2 n" G4 O1 Uprop1: ! W1 \0 i' }" \( E
mov dx,offset pro1
. I& Z0 m0 Y4 l5 I mov ah,9h
0 l( Z I( Q1 J0 ?/ L5 Y& T int 21h
7 P6 ]' M) d) H1 X v) t enter 6 O1 S+ L- G: i7 c6 ]2 n0 B
ret+ G8 [+ X0 {) D7 u
; }7 i C8 A+ ^7 s$ m6 M" H
prop2: enter
7 o+ B( o3 J2 }* w, L. r mov dx,offset pro2
. ]/ ?7 F2 m* a, c1 _5 T M& W mov ah,9h. B% \, s8 r1 s# S, e. Y* B
int 21h4 R' p) p& r7 }+ i3 b5 Z- }6 x( X
ret
! Z7 U8 M* z8 s9 \ }
7 t1 K% `; H* j* l J6 ccode ends
9 r$ z. y& n9 l( }3 F% s6 ?end start+ Z( g/ a4 _5 t2 F- Q
. G3 G, H9 l& V' i' Q2 X+ ^
/ a6 N& O# a5 n" F. K |
|