|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
" F5 y! ?0 p# q% B L4 I/ Yenter macro
0 B4 Z2 Q" w% N6 T) v push dx
# I* I0 E: C" u/ z push ax
; b* d- {( q% d+ Z mov dl,0ah( e6 O$ S" {) Q
mov ah,26 v/ ]% _ C6 z! d1 u' H0 C4 F
int 21h1 i- ?2 A+ p0 e# M
mov dl,0dh8 k; o# B: l, j. Q( C
mov ah,2
# ~6 B/ z- ~5 m) n0 L: ~) X+ G int 21h2 \. C4 B" y' w* H* d7 s
pop ax
' t/ Q& c- H# B2 a3 M pop dx
7 x6 i6 B& v1 U" C+ u' Eendm# C+ N# F4 T W# T( L5 M3 ?# Y+ m
: `' M" T* R @7 Eassume cs:code,ds:data
3 k, D. Z, {: O- ~* K7 {data segment
! T! C+ _+ f e9 Vtable db 300 dup(0)( f2 ?8 ?; q7 h+ W
pro1 db 13,10,'_________________________________________________',13,108 R9 W% t% {$ ~
db 'no more than 20 characters English name.',13,10
( {! T6 V4 B0 v- f5 A) m db 'For example:',0ah,0dh,'liang xin hui',13,106 o) u# b5 {) S8 S. q2 h, l: Q
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
; ]5 z1 S9 r/ u2 Q, m2 T- ^0 U db '.................................................',13,10
9 w% b E. t* }! H) m* W% z db 'Please input:',13,10,'$'. Z/ c1 i9 u: S, w
pro2 db '.................................................',13,10
) }0 c- o# `7 l4 m% u/ ?) g db 'The results are as follows:','$'" w' y6 C8 T& B
% \) p4 A Y/ V2 e& k; F/ O
cont db '________________________________________________',13,107 ?0 i6 d9 N+ z5 Y" Q
db 'Can You Continue(Y/N):','$'# s" ?; ]( K) X, z
/ J! S# _4 n7 z! H- D% M0 q7 C# Kcp dd 50 dup(0)! R, |/ x8 |( n! ?+ r: \
data ends/ W$ E% Y6 H$ X) V2 b$ B
& s" Q8 H( `: N8 d
code segment
6 o( M s7 h* o' xstart : mov ax,data$ K0 a6 V: T l T1 q0 T Y% q, `
mov ds,ax0 g! r$ @/ P4 R) p
call prop1) S- k% \7 {* H; o
mov bx,offset table
2 J7 @) W% }+ @+ i* l( q W- H. _( {+ T mov si,08 m" [5 a5 `$ ~6 |3 |
mov di,0" K. _# o" p# ~5 i
0 Y. j; w8 U8 W6 Q9 Y3 F$ I! y$ B
+ l5 j A) U- \; R- m5 U call enterchar
4 s: H/ F& G1 Q( J T5 cperp:
8 y1 A: @ k+ `5 w5 n% x dec si
+ C4 p& O7 Y5 k mov dx,si" p& f1 C2 [1 @$ b
inc si
$ t" ~( f& [: I' x9 q* P mov cx,si" v7 Z$ k+ l O4 w5 _5 J
call arrange
8 ]7 m# ?8 c9 z* g call prop20 `# |6 u3 v$ n [& G9 h: N
call putchar
9 }# i& h" k5 d) X) n- X4 dliang:8 J. ~6 z; Z. v2 K7 T4 I2 y+ K3 I
call Continue% n. v+ e9 R! Y1 X6 r; V
call judge. J F- u( E- n8 J, m
mov ax,4c00h# e a: B3 e8 d$ s
int 21h% }% \; @* x( ?% ?
2 n- N V* R' s$ v/ F. R* p& B
- c2 M. ~0 ?9 N, V* p: L( hContinue: enter4 i$ v# m1 U6 T
mov dx,offset cont
[& ~: `( x# U* h9 Z$ A" G mov ah,9h! v7 ]8 ?9 B/ A1 N7 n1 A
int 21h
5 Y* j5 }$ `- Y0 {6 [' ~ ret ( o9 b$ c, B, y) f) h3 @/ O3 F9 A+ D
9 ]3 T0 X. P) G3 W# r, Gjudge: mov ah,1* W8 P: ?; b7 N
int 21h
9 _8 u8 J1 h R4 z, u9 w* T or al,100000b
* K7 m/ Y( a, R1 P cmp al,79h
' ]. x5 I& l7 M9 z je clear
+ o1 h3 E$ S2 a; v cmp al,6eh
5 _# C, Y: t% S* k6 q- H je endj
8 e, B: V5 Y2 V jmp liang
3 Y7 n- a/ U$ q. p$ O" Vendj: ret ; L" \( Q, z7 A6 V N# _: Z
% O" ]0 B; _! L7 W( Eclear: mov bx,offset table0 |8 h' ?$ p* R4 V6 t; I# `, ?
mov cx,300
; w P% g1 C7 r# B0 e* \zero: mov byte ptr [bx],0" r/ }9 `' L; [
inc bx/ G9 B! n( A8 n1 P8 w3 V( J
loop zero. V* K- q* P; N( R) ^* s
jmp start
5 `( L" H# L- ?" K V# A1 q0 J8 e2 `# N( C+ l, X4 @, ]7 J
9 p- _3 c' `6 M" C6 i
enterchar: mov ah,1
- m( W% \& m+ S6 d int 21h
/ _- ]- Y1 I; n# S5 t& l mov byte ptr [bx],al 5 ?7 z/ ^ D3 P
cmp al,130 C# D+ G t) ]7 \# j$ g3 U
je endchar $ ~ Z; S3 R5 m2 |; Q
mov di,1$ D; W( b6 \ X* g) \% i! I7 ?$ v
inc bx: p, L0 x: @7 U+ }$ {& O) C
jmp enterchar
' |0 C- E4 T9 K( A2 _9 T$ _- |( @8 G8 j
endchar: enter # t9 P W* A* g6 P
mov byte ptr [bx],' '
+ ?. I. I3 p6 M+ A/ O6 k. U3 _1 s/ v! P cmp di,06 C! O+ U1 M( J! V( y
je perp: ~3 H4 m# _# l: S, z4 _& a8 \& m
inc si
3 c' k! R Z6 {2 | mov ax,si2 u5 J# s( n" t4 h' s5 V- O9 V
mov dx,21
3 g0 \1 O- X% M( N" P mul dx: j& u$ F9 G7 K0 B2 I
mov di,0$ |. d6 U. \6 V- J
mov bx,ax ! Z0 u! X2 v9 a$ ?
jmp enterchar0 Q# N* z1 a @ P
* H0 a" m& }1 k% w5 g" g6 {arrange: push si. J+ [9 |1 `# ?; t! G9 O
push cx
" x9 z6 q( {7 M0 \0 m& X9 e: ~) u mov cx,dx $ {% f# @9 \2 G8 ]) o
mov si,0" h6 S. z6 q- Y+ O m' G, {
mov di,215 g/ V! r: a( c6 z. i4 a
( A$ z$ L/ M, c" C. E9 S8 E, ]
s1: push cx
# w4 D7 G% [" m$ A$ k mov bx,08 U4 O5 O) q# [" i: M+ T- o9 N3 h% o
mov cx,204 M( K( ^' L" a0 R
ss1: mov al,table[si+bx]
; q" W0 J( ^8 n1 J8 V6 S& | cmp al, table[di+bx]
Q8 {* D0 ~& F# k2 `1 Y. j ja jiao
/ d, U* M' |6 y+ |$ Y7 s jb s2
0 r2 ? U5 I2 c& H8 c$ `3 e inc bx { o' y4 s$ J$ f% w7 i) x u
loop ss1
, o* \3 e7 w! B$ {, y. t9 x; M jmp s2- Z7 P% p; u- B; s6 E& W
& ^2 L j& ?1 D5 u# Bjiao: mov bx,0- V( s6 f! ]7 g6 S4 g' E7 T$ ?
mov cx,20( G5 I- F5 D; r; b
jiao1: mov al,table[si+bx]
3 v" C9 O( M, N! ` xchg al,table[di+bx]8 y& M, h% C& e Q. o- G$ @
mov table[si+bx],al
5 y' X1 u7 `. f: [! g inc bx3 T+ H- Y& Q+ t" I7 s( W
loop jiao1
q2 \$ `: {7 e& m' }9 j& [0 E9 r1 B# M- U% A) l( ]1 Y3 E- t% g
s2: add si,21+ l9 }" V9 S& z+ B( }! x
add di,21, d) E4 K# j7 y5 h4 x1 [
pop cx
0 P6 y5 x" T: [- w, W loop s1$ T$ ?' i1 ?* @5 _
0 C4 _8 P6 S% {" H3 X) H6 l
pop cx
) n9 z" q! f+ J; s pop si
0 C2 z! Z2 D8 g" c loop arrange5 U. N) l) E) a' \0 V/ N& z
ret" j" V; ^+ d3 Q8 y M# E& c" t4 G9 ?& j
" R [' v) k5 w" h1 R% r Cputchar: mov bx,05 A' m3 O. w/ z6 `1 ^
mov di,1$ Z' s2 O+ n+ T" i( }" }
0 K9 E0 e+ c" d8 U
; s; d; i, w' s8 l mov cx,si. W/ p# j) M' `- \0 |1 K2 `
put1: push cx
8 m$ K! C) ~2 |$ V/ _) ]' T" s$ a push bx
5 t0 @' c, Z$ p* y8 N
/ s5 t2 v9 o- M* m enter
$ S/ D) ]6 [. p% A 0 }4 B4 Z1 K- _0 d
mov bl,10
9 i# ?/ r& s1 W' u! k mov ax,di
) l+ h* o# H" a; t! A div bl: j' q, X* V) Y4 @% Y8 Z: R' }. q
mov bh,ah
; c$ k: a7 l& c9 S f add bh,30h" O; o" N; z. z5 V, T
add al,30h
" J3 D, g8 i) @1 d5 V& A6 ?: b2 [# }
9 w* L3 _# H% ~( T mov dl,al
3 w$ ]8 ^- T: B" _4 r8 B/ B mov ah,2
& q# ?: Q% {& C3 {; _1 u int 21h
8 R6 n' _, `% Z5 N. t- ~ mov dl,bh a" z& c- n. k& m
mov ah,2! T) n& j! z: r
int 21h6 _6 M# ?8 v2 s
mov dl,3ah! z( J7 z$ F/ t: e3 i. Z3 Q- Z
mov ah,2
% m0 \. ]1 k0 I: c/ ? int 21h- e6 m, e0 E3 d' L/ w3 @
pop bx 7 d$ A4 v$ B3 m& j
mov cx,207 |9 ~ v- C& W [8 y
push bx
/ y! R7 b8 L( R6 F9 wput2: 7 \8 a! H7 U& `) [" h6 ^& Y
mov dl,table[bx]( h |( N" g; {8 w$ z
mov ah,2h
, N% Q- j% G3 z3 l int 21h
' Y; }1 Q( C9 E# x+ D% V
0 l- H4 A$ S- g- e0 [ inc bx& _7 z o3 }+ q
loop put2/ p+ c& z% [, Y$ s
inc di # _+ [( o6 x3 Q. p
pop bx
' R2 O- A$ S7 V6 g add bx,21, v1 E6 R3 D0 Y
pop cx& A% d$ @) Y( ]$ P, V" Y
2 w4 o+ B1 { _# Y) Z loop put13 G; Y, N/ C: U! @
ret
0 ^) D A t" h4 _5 i% k6 z% w$ z' d' F% U0 L7 g }' u k1 @2 W7 `
prop1:
$ r: X. J' z# t) w0 K& h mov dx,offset pro1
' X9 i3 v' t* u( f7 \$ _ mov ah,9h( ^/ C; y1 J" V' k U
int 21h
L$ h# t$ O3 P2 N$ z* d enter
5 _0 Y$ i7 \( A* z* E1 n: m; p6 K ret2 }: T2 h- Y) w; f! m; C: Q
4 F; z& f- P/ F0 a7 J5 N
prop2: enter4 {7 R* L/ \* @) P5 G5 a6 t
mov dx,offset pro2; ?; N% n- M0 ^
mov ah,9h
/ e, u$ S( E& s N: f) Q& S int 21h& A1 A1 _6 @% a# v2 I+ q8 d0 a
ret
4 M+ {2 c" `* a' d. B T" ]8 b: V0 j4 k
code ends5 m! J+ ^2 n" G. H$ Q& L, C
end start: e2 }9 @0 @6 k
2 o2 U8 H, X: _; j7 k+ O
+ F9 X, ~8 U R* @ |
|