|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
# v3 E0 j; k/ [* I1 p Qenter macro
8 k6 Q8 w9 u4 | push dx
% ^& I' y3 v8 t6 X. N push ax( F/ i( c. K$ t) U0 k
mov dl,0ah
7 y: Q6 b9 A) v* w mov ah,2% f5 D# I3 n; e) g: a/ y7 ?
int 21h1 l, u7 m% G' @9 a9 K- i" l) D
mov dl,0dh
* y3 _# S2 @: l. }) g/ b5 q mov ah,2
( F( h, V9 m% l) \) H int 21h6 l8 w, x7 n$ U* G1 o
pop ax# O8 z/ Z( D$ A
pop dx
8 @0 Y% l8 M3 ]) J! q9 Uendm. D9 u9 Y" b, p; e
+ N4 P. X# Q) Yassume cs:code,ds:data
2 Q( g' l, `5 [2 N8 zdata segment
; u* B: F! e+ Wtable db 300 dup(0)' H' ?: y" o2 J, M( y d& a
pro1 db 13,10,'_________________________________________________',13,108 B1 U; j/ L7 B' s: j& M
db 'no more than 20 characters English name.',13,10: b( m- p4 ]% i3 X2 j0 s1 G
db 'For example:',0ah,0dh,'liang xin hui',13,10; L% c$ O5 i, e5 ?# {$ Q
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
; e% E/ @8 l1 n9 K5 C+ Q! f/ z/ c db '.................................................',13,10
4 U5 i4 G' w- o( w2 |% S db 'Please input:',13,10,'$'
) k% Q) U0 l* I3 A8 O4 }pro2 db '.................................................',13,103 D; L! I$ i0 N5 Y# o# f. B
db 'The results are as follows:','$'7 ~8 m0 M1 s- W2 B0 a
7 M* g6 b5 P% p/ h! h. Y3 z9 k' |cont db '________________________________________________',13,10
7 h6 S$ S6 r& U0 `# [ db 'Can You Continue(Y/N):','$'
( I0 M2 c. r" M+ `( A g$ \. n2 p
/ k( s( D. ]& Zcp dd 50 dup(0)& t& H8 T5 B' p' d7 a
data ends% Y, Z; e7 E8 c, S8 H& o! P
6 \3 d. j7 i6 s' [& ncode segment
$ }4 I+ X9 ~- P s9 z7 Bstart : mov ax,data
1 ]4 d/ e+ z9 {+ T mov ds,ax" m! d6 ]: j) d. j4 |
call prop11 b. P3 S. p% ~* q* M8 {
mov bx,offset table/ }5 w2 e, K0 g0 [2 z. c
mov si,0
. T2 r2 X9 [: V' J mov di,02 q9 S) o2 |& |* P; n1 O& n
; T- K" w$ s& o; i
. x: G: q9 W" J ]# m; Q call enterchar5 M6 E' }/ C' I8 S
perp: ' w2 ?# M4 B$ Y; C% M
dec si
5 X3 Y7 |3 `4 G5 |+ h3 y F& o mov dx,si
% g3 N4 ~- \3 i; u0 f5 ] inc si 3 t" B9 ]4 _+ ~( j7 q1 H+ S2 [1 |
mov cx,si% b+ ?0 d2 z9 `1 R
call arrange; @* T- J, z- U& _
call prop2
3 H1 f8 t+ b4 h9 g call putchar( T5 @5 S( s L& `
liang: w" v1 q( s- U1 i; D
call Continue6 Q) ~( w- u! Z0 p: S6 @) h
call judge9 _- k3 |* x! a- ^: m4 g9 Z9 o
mov ax,4c00h
; |* x/ }: L& I7 O9 k, V) ]( j int 21h2 d! \5 f' q3 @, F5 |# G+ B
, W' f$ Z A6 D( O: Y$ s7 U7 _. J
Continue: enter
5 w0 T) z1 C1 c1 l7 I7 u0 |; y mov dx,offset cont
6 P# J& w. P6 E2 X+ Y' k9 p mov ah,9h
2 Z& k" E7 k' ]1 m. a' ~ int 21h8 S5 p# c2 K* P! _2 R* _' C
ret $ w" h) P4 G; l0 F7 a8 P+ X
. T0 H2 E9 d3 V9 {judge: mov ah,1: W+ |6 l3 d% F
int 21h
* I7 j9 A) U5 ~7 p or al,100000b
6 g9 y) U; F0 E# R5 _ cmp al,79h
# R3 J( Y2 ]9 c je clear
7 r' N3 h+ u6 I. T! I; S8 | cmp al,6eh
; Z( F! v% ^7 u je endj9 d- H* F* ` ~1 ~( q3 C- o; A
jmp liang. t" U- ]/ ]) y2 l, ?' B
endj: ret . P5 p' E* l/ N: _/ M, {
8 T/ a% Q, M1 X3 f( k# \9 xclear: mov bx,offset table: }8 l3 f8 {9 U0 Z1 K/ q
mov cx,300
7 H3 x3 `- O) ]; d6 Gzero: mov byte ptr [bx],07 h- n1 v2 _% ?) W
inc bx
9 U# z. p8 w4 H8 N, |) @& q loop zero8 A, O. Z$ S2 I8 t
jmp start
3 ]9 f" w$ h: K% q: C, h" o
. u) f5 ?. \0 C: Y9 s& ? b4 h
4 t* n8 l( `5 o0 Q* N2 e! ~enterchar: mov ah,1
: h8 z! [! r# q. g: d int 21h
1 y1 Y% T: H; ]% _5 K" D% m mov byte ptr [bx],al
3 h1 R( l5 `: U) l1 M5 v cmp al,13& K% F: e L) m/ d% ^& k2 ^+ O
je endchar
4 {: ^1 n( B' N$ B9 x9 \9 R3 j, P mov di,1
; k1 H6 L/ O5 d; | inc bx% {* a+ u) d) {4 R% ^$ q# q* ?/ Z
jmp enterchar' l9 z. L* r0 @9 _2 m
3 i' _' b; C: A4 Pendchar: enter
5 G9 z( }( @1 P5 g0 O3 X3 W mov byte ptr [bx],' '
' @4 o3 t8 \6 v4 Q& L/ C6 c P cmp di,0
# E% X( _# E( `; |$ X: H, s" O je perp
1 X" u% h: F" m0 D7 l3 b inc si
, t- y- x( j$ T mov ax,si6 {7 Q, a6 _5 |1 p8 {
mov dx,21) ^ V* y% S! w/ V& t, W7 o: M
mul dx* @1 L" _, C2 s- Q
mov di,0
; N+ {. E6 O+ x) | mov bx,ax / [9 e$ g$ p) G! S
jmp enterchar
% B2 {7 ^$ ~8 Z( P& c% ~2 ]- i, I/ v
arrange: push si
3 N* ~+ b" c% e4 P push cx
1 Q& w0 p3 C4 s5 F3 \- Z mov cx,dx + O8 ~2 H. Y: V& u) _) z: V
mov si,0
3 o5 {, U- [1 \& W7 D. p4 U mov di,21
8 O3 v$ y/ x% Q2 ~) A; M( U& T7 [3 W2 L
s1: push cx
% p. F" h' h* ?6 {: @ mov bx,0
( M. ?5 e7 ~/ T& u. C mov cx,20
7 X/ [5 w& q8 _2 Xss1: mov al,table[si+bx]( }7 c1 O+ H' v" o3 \ R* ]! _
cmp al, table[di+bx]: w4 e( Y3 A' F" q! f6 F9 Q$ Y
ja jiao" ^) e* C4 o) e$ Z
jb s25 G! g; M- i; o, |
inc bx
, Y8 v3 Q- n5 b' [2 U' s( F8 m. I loop ss1. t' W7 ]" v' u/ E) f
jmp s2; A5 F+ t- g$ b# G' `5 n% c3 j: P
. H* c) e8 I* Ljiao: mov bx,0" F+ ~7 v/ T* j/ e& ^+ L
mov cx,20( t! K. v" p; I8 H7 J% e) {
jiao1: mov al,table[si+bx]+ B% r5 J; k9 U7 L6 m( e) f
xchg al,table[di+bx]% k! v# F- Y8 t, a6 c
mov table[si+bx],al
$ v5 S. c4 k6 v; S6 u+ \+ Y# r0 m inc bx0 g( d; h! `5 s8 U6 s
loop jiao1/ _: U i# O4 m
$ g( c$ ], ?* ~4 X8 As2: add si,21! Y- P; Z" Q/ \( |" W
add di,213 i0 o3 e/ l0 w+ D0 L) L
pop cx' n ~6 t7 w9 ~5 V" J# \
loop s1
; Y! s% t4 T. j8 [. J' [* }! C" J" a( p
pop cx
- ~& @0 e' J& ?4 K pop si1 f- Q; N6 l. ]2 C1 h$ |* K
loop arrange
1 A- Y6 }% E: X. ^& |% B0 g ret% o7 Y& I, Y7 _2 k2 |! c
4 W T; [; G7 m3 T0 cputchar: mov bx,0
4 M0 y& |; Y4 q; n2 K$ K mov di,17 v; T: [$ P9 Q. m
& [; m( X% `( i; V( g
8 b, @9 V# o& H3 K4 T7 J3 x mov cx,si
* g" t) X* M1 \% L9 tput1: push cx' Y! t) c6 c1 C$ p6 q' c
push bx
w9 c+ k! ]- {7 ?8 u$ }
7 c1 E/ {* i Q, Q0 | enter. r( [1 W; C9 Q3 q Q
6 r7 ^$ n* u9 g* R* R mov bl,10
* Z8 T: ?+ {& R: q& } y3 b mov ax,di' n: X( T3 D$ o6 h8 t
div bl; _0 }) I9 O7 g2 c0 Z/ K6 m
mov bh,ah& C6 h* ~4 s# A+ v6 I% [) [
add bh,30h7 N6 M4 v2 P/ ?- e, D+ q
add al,30h
, K# k# K" h' X$ J! n+ E
$ R4 v* x) X( I. k" H mov dl,al6 ?- J1 N4 i& g/ P2 k( ]4 i' V3 p
mov ah,2
: n5 E- k9 C @! F int 21h( t$ i5 }9 @% a# @$ [6 ~" C
mov dl,bh! {3 f( v- r/ B
mov ah,2" J; H0 B4 d8 x9 r" d$ I& }2 X* Y/ C
int 21h
' }" i- M+ R/ M C* A5 K mov dl,3ah4 T! y: B5 h6 B* r1 h. O
mov ah,2! x+ k# c. _* _$ y. E. ?
int 21h7 `4 a& x+ c K4 _! O3 y
pop bx " b/ e6 X9 [: r7 a- r( ?
mov cx,209 \# Q! ^$ u$ ^/ h+ H
push bx/ h; Q$ L! s2 H0 q( o- F/ Q5 f, R
put2: - }' R- Z* y9 k* c) ]# I
mov dl,table[bx]# r; S v0 q& ~- g* S1 K
mov ah,2h' P! }3 M+ ~* n9 {
int 21h/ v6 ~+ d) P# b( B/ Z
4 h- r1 l6 \5 q3 \% C* `3 c" O7 v- c inc bx" K# ?+ c8 _1 p* A/ b4 C) |
loop put2
5 K1 R9 |# a- h: F% d" D6 o- L3 H ~ inc di
9 R5 C+ A6 n* {2 S1 m pop bx
' K% k2 d1 j; m3 v. S6 h2 W add bx,21
2 ~' I* U' [% t pop cx( C& P" z" f# E) z. L
. T" a0 X, o1 B- o, d& O+ ? loop put1
. j* s4 m: O6 F/ R ret
& b/ G# u, X, t- K
7 D1 W; K0 T4 E# l0 U% mprop1: 1 T0 v) X) q2 _
mov dx,offset pro1
- P; i$ a. C' K6 r mov ah,9h) L* I! r1 M+ `. K, m* j9 S) C
int 21h# J$ H* l# a% E1 y# ^: G
enter 9 @% P. D0 L9 y9 w1 x
ret3 d3 Z' R8 P2 K* F9 i- ]
# e3 U( q/ v7 O1 {# v! j9 E J/ vprop2: enter+ t1 P6 Q+ j; Z: l5 n% ]
mov dx,offset pro2% z$ z y) A9 G$ N' N: z/ e$ c
mov ah,9h
/ G ]" N/ B$ R1 \ {8 E8 j int 21h( ]6 e' f5 a! U( j" b2 y9 W) |& V
ret
& M# E* z) _1 M3 z; |7 u- l/ f* u; f. Z, F; T- ?: }
code ends
, l1 o$ n; W& t" aend start. j" u0 J% P: |3 A
, W. F2 L( _1 K9 a9 t
# n$ e: S9 Q) p0 _8 q+ s6 } |
|