|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
1 K" w! c1 ]( A) s) h; I5 Yenter macro$ m" [/ S2 A; j( n$ N( F" V) C6 o
push dx3 k1 q9 x9 Z2 {( B5 L7 A/ g, T
push ax- N4 ~" G% R/ d" g7 P
mov dl,0ah
8 A* P p, F6 ?% U( _" w+ p mov ah,28 U$ Q! ?$ ]' K5 m+ y- r
int 21h
) ~! T- v/ \- E" {8 U2 l, d mov dl,0dh% r0 t4 a7 k# S( \
mov ah,2
4 f' L7 F- f& f int 21h
|& }* S) T% l. D. Z pop ax
1 k" U" M3 }1 b" S: h c: L pop dx
. R1 @' c5 D) }$ X1 P( Zendm+ r3 p- Y4 @5 B) N/ T% Z/ g: U
. S1 l' P# x/ R* D0 Massume cs:code,ds:data
) `+ }4 H# J$ z$ Ndata segment
. H% f" \! l* w( @$ Utable db 300 dup(0)
4 m& g1 T* {* z" N" `pro1 db 13,10,'_________________________________________________',13,10. \* G4 y1 A/ |5 L( C' o
db 'no more than 20 characters English name.',13,10
; r7 j4 Y( \" j: a7 j T5 F db 'For example:',0ah,0dh,'liang xin hui',13,101 `3 \7 Q) X* G, Y: s6 I9 [
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,102 j& X1 R/ g9 R) C# j
db '.................................................',13,10
5 u: C/ S/ ?2 i( _! F db 'Please input:',13,10,'$'
- c( d, s8 F: C/ E! npro2 db '.................................................',13,107 F G4 J3 F3 ~+ E' l" |& G
db 'The results are as follows:','$'0 ~9 k* o Y9 L3 v# u: L
' q# n. ^4 Q: ~; u7 ncont db '________________________________________________',13,10
: E( J/ k* ], U( x db 'Can You Continue(Y/N):','$'* t/ q) ~% h& q9 F8 u
7 C( C- Y% ]/ @, r# vcp dd 50 dup(0)
3 S: u9 t7 b" G0 P. Y! Cdata ends1 M# {) `. c+ V: b, [/ M; _
' W6 h8 ?5 V3 ` x9 q/ Ccode segment
2 e2 n, E4 {' g% hstart : mov ax,data
! E' G& l! {* v; f! O; K2 k4 }2 D mov ds,ax/ {" ~! v2 e4 q# E$ S) \
call prop1 q- x$ c2 X0 J( p" U
mov bx,offset table: ?' z" _+ @4 O: a- J+ s
mov si,0/ C, P; m+ ^5 X2 ^# I- `
mov di,0$ ?% r U' j, y- g \3 k" {7 W0 u$ J
! _% x8 T9 R5 f' P0 q
1 M7 Q0 ?" g$ g, L call enterchar
5 F8 j. F+ y# E. a- Y" P8 c1 B6 gperp:
3 P4 ?; k0 r% W7 { dec si
7 P4 g; {* o: A) C1 X/ T mov dx,si) X j: c1 O; |1 p1 k
inc si
9 N6 y: H* c- \" x1 [/ J mov cx,si
$ g3 g/ M8 s5 @' H+ p. _. B' ^& x call arrange
! B. V! z0 N8 l( V; K call prop2' c4 f+ ^4 j3 K
call putchar
# J2 Z$ ]( l7 r+ ?/ G! U5 Hliang:' e: ]0 \! r4 i2 D X' e+ `' j
call Continue
4 t, ]5 o g0 n6 _. W5 o call judge
3 Z1 f2 Y4 D/ B8 ]1 S T mov ax,4c00h
+ J$ R6 N' g! c- i- l/ U2 p int 21h/ S1 x5 b- \8 J6 g8 T7 v( W
) u. `* ~3 I% A9 ^: r
& g2 u/ J( k+ v0 j5 ?
Continue: enter0 I6 n- ?9 A% |- U) |7 [* s
mov dx,offset cont& l" `6 S/ Q: ?5 i/ X/ y0 x
mov ah,9h
0 k, C C, R( ?5 k int 21h
/ d' x4 k5 k% @ I- P: b ret ' O8 h& ?7 `0 M! |' Y3 Q! r
5 Y# R% ^, A1 ]& j% v* L3 V
judge: mov ah,1( a4 A6 p0 y: F% w4 u: v' v% h
int 21h* e" q0 V& a7 K
or al,100000b
+ t6 R3 n5 M* d6 r5 U" U- m cmp al,79h! ^7 p! g: E* v% r- h/ x) m
je clear
' Y, b1 y$ f0 U2 U: p4 T cmp al,6eh
8 U. n: S( _! X a je endj2 v$ p4 `4 W5 W* U9 A
jmp liang3 e/ h. S/ W/ V% V
endj: ret ' w+ p/ R4 T+ p9 f% p
; {( U6 V3 v- [clear: mov bx,offset table5 e/ e/ l; Z, m8 z+ n4 C, E
mov cx,300* H/ X+ Q! \$ s q; v+ A
zero: mov byte ptr [bx],0
: X* l1 [2 \" n; g) R inc bx8 f, {' c9 g( c4 [. L
loop zero6 K5 n9 n2 b: \+ ^
jmp start9 v, Y& P/ J4 u6 J/ ^$ ^+ M" w* b
. g# ]5 f6 z9 r* C3 B' \& v# d
2 b0 l% K* S; eenterchar: mov ah,1
( l+ e! p$ C! x* V3 I int 21h$ J5 t4 m9 v2 j" j" ]! t6 o0 [ R
mov byte ptr [bx],al # U( e3 |! r& m# a( Y: Q3 \: \8 S
cmp al,13! p( f! |! {* a# j0 G" }0 `
je endchar
5 Q) Q. d" N$ {# `; v8 j mov di,1% k W) y* V' ^* p
inc bx, _( M5 }7 l+ y7 c% r
jmp enterchar
& l) p- U5 \, G! P0 b( D) E# B" N4 X+ L+ i( k6 G, w, v
endchar: enter . z) z" g* M0 _4 g M: L0 t
mov byte ptr [bx],' '
2 c/ i) L& p0 |% Q2 W" T cmp di,0
1 @( j" B5 {" x7 g& J je perp
0 x' o" N+ m' o3 s inc si& H. k' \4 E5 Q- s5 c
mov ax,si
1 z* V& w. u: V9 L mov dx,21
0 n& n% p+ u- L$ a( [" @ K% { mul dx( h. e7 g% v% E7 W% v! I4 M
mov di,02 k% `8 \% h5 ^3 m$ x2 x
mov bx,ax 3 o, A6 s# p' L8 ^9 M( z- i
jmp enterchar) B4 _3 F7 ?7 @
: J' T/ M7 c" _7 earrange: push si
% y* N3 R8 m8 Z, a% V3 o push cx 8 L- D5 \3 }' _5 {) l
mov cx,dx
/ a, ]- a' U0 b8 D9 F mov si,0
) X) v% ]! ^5 y5 A mov di,21
. }* L5 _! J$ t! l, R8 w7 U$ b9 X- C
s1: push cx
# |* `6 g* z' O) f1 i3 s+ [ mov bx,0
2 p6 {' b2 A; P& v mov cx,20" `9 Y! m) |$ C" ?3 V$ H. z
ss1: mov al,table[si+bx]+ \6 l8 I$ F; I- w4 O. f& U3 R
cmp al, table[di+bx]
0 v6 X2 K) w! D# F) C ja jiao
8 l6 I. |, S N b r1 ~ jb s2
+ T8 m9 `3 E# K4 s1 I! C inc bx. P: J0 Q. X) p0 i+ N; }
loop ss1) N# R6 @8 ]) J# f/ F3 a* Q
jmp s24 M& J5 K. A2 X, a* f
# p, r* K* Q( h: ejiao: mov bx,0
" @3 h* h" H2 ^, A+ c$ m" U mov cx,203 [: u0 ^# o8 r
jiao1: mov al,table[si+bx]
7 e# Y3 R4 q9 f" t6 ?' X" q6 J xchg al,table[di+bx]6 j0 r& B4 h5 D7 t1 `0 P8 {" E
mov table[si+bx],al. r" V& H6 V6 l8 Z9 t) }6 G
inc bx; R/ r1 _& N4 ]' \
loop jiao1
( z) x8 W1 U6 T, j1 @0 Y; q* A, Z: l7 x5 |
s2: add si,21% z. \$ s0 j0 G$ |
add di,21
, x% Z3 _0 Q# M" ~ pop cx- x$ h4 `) V$ y
loop s18 h& Q: W4 C* s2 T
8 G+ V7 A7 E- \0 b0 i. N, O& J pop cx0 K1 v1 `' [2 ^
pop si+ f4 k e% a& e0 k! W4 ^5 ~) _
loop arrange
* M/ A7 H; S5 F$ o ret5 E8 p& X' h0 ]+ `7 U# ~
0 V7 f( a! S) F2 M. T, A$ vputchar: mov bx,0
" p$ ?2 t) d2 n& z" M h mov di,1# v5 j, ? x* ~# R0 ]3 A/ U4 V/ d
2 s$ z! f! S" r/ D0 C
3 B X% u5 e2 a" {5 j) `1 {$ l5 W
mov cx,si
9 ~5 x: z- }/ p `3 Y0 hput1: push cx
5 j7 K6 `. u3 n push bx
% r7 M- N& T; q8 [$ h+ [
9 V/ d- S, f9 l( E$ o enter
# i7 i3 r( S* g" K : b* R" L" I: M1 O2 c
mov bl,10
$ w0 F4 |6 k% K9 T mov ax,di/ S' J! f6 x0 G$ \8 s. F4 E; R* ]
div bl0 R; m$ t& M% K4 ]3 c& K
mov bh,ah$ p0 v8 f( m8 D* S/ Z6 \, ] X
add bh,30h! y; F3 P, Q/ i+ ]$ Z
add al,30h
7 C$ F1 b2 |2 l' T4 [
6 ]# N6 O" s$ H! F mov dl,al
1 M$ d4 Y( H6 z+ O/ q mov ah,21 R8 r& o \9 c
int 21h- k2 T% |( W7 h! s& R
mov dl,bh
0 A% u+ m( D" K2 y mov ah,2
& k% r3 t9 v! T, C" f2 i, X int 21h
7 O: C; t3 p0 |9 ~8 ], l mov dl,3ah
0 C% m1 q2 ?# W3 [6 {6 Z& D8 R( L mov ah,2$ l2 b7 Y& u& W4 u- K$ y+ ?& K$ R
int 21h$ S2 r; F6 Z; S, y
pop bx 2 T- W G4 e/ x F
mov cx,20
4 O. n# m G# K; e push bx
* G4 ~1 q& [3 ^7 Wput2:
1 [/ p4 r2 B- r mov dl,table[bx]
: | i- O0 s" U6 B5 r6 ~8 D2 ] mov ah,2h, F: r. x/ Q7 H% R# z
int 21h( e/ ?4 B1 W1 B( K# E4 G
: }5 B7 T: e" | inc bx' ` {' c- C+ b6 T P
loop put2
9 w' S3 l, ?9 b I inc di 7 L% j! v B/ F8 ?; V$ H, L
pop bx z0 m. O4 b, F+ q8 A2 p( H
add bx,21
3 k- |8 H* h7 s1 N: q: O pop cx
& ?. Q4 X/ o) p5 A! ?: w+ u
3 U( e' V/ |3 O, R2 Y loop put1: ]! Y* p+ e6 h- h: W. s
ret
1 T8 n: G" _% Y# e- k' R; ?8 i5 y" d( z9 o1 q$ Y, P
prop1:
7 _3 {* _' o3 k+ | mov dx,offset pro1
% X) v: R8 }! Z6 C; U0 d mov ah,9h
, @5 {0 O) v* ?" f int 21h
k9 U* s+ S" Q$ Y enter . \ N) s* `: U! U& ~$ Q
ret1 A' G, S: T, l2 D& x
* e) A$ x9 P9 o
prop2: enter
2 [: |% G- Y/ g5 t# c& E mov dx,offset pro2
9 [: D' ]' j1 C5 M mov ah,9h
" N( p) U6 b* y4 m3 d$ h int 21h1 M+ F( z; M* u# v$ l# \( y
ret) ^6 ?$ u7 X6 a" b {5 B9 h
7 d6 ^3 Z9 ~$ Z: f: D4 b6 X8 qcode ends
0 v+ Z4 q8 {. Kend start
* a: d) y5 M7 z4 ~& |
5 O( C6 Q: H% N
7 ~) ~6 y+ t" | |
|