|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
6 I) `- X9 z- G! A2 Y: [+ Fenter macro
, i; A2 k) C% j7 g push dx
7 Y$ m6 U3 G* \% D8 A push ax; O% O2 K g( c# h
mov dl,0ah8 j: r2 ]7 @" F# ?% B1 L% @$ q
mov ah,27 a) n# Z" b: v; Z
int 21h1 w- `, y3 C; p* y# ^( N* T& Y2 F
mov dl,0dh9 \( M& a$ [5 n8 f4 o8 X/ L3 q
mov ah,27 h, k4 Y [' z. V5 N
int 21h
2 q4 L7 @' T( r' e2 { pop ax3 H/ i( m* G+ I% C
pop dx
+ X2 T; s* `" z6 G D2 U1 nendm4 D# p8 e3 p3 Q9 C7 v r7 x7 F7 O
4 q* W( C! s) d7 s5 W5 w, d, Vassume cs:code,ds:data
5 X% p3 k) `- Y! b/ L1 {3 m* zdata segment: v3 f. i' o1 |+ ^
table db 300 dup(0); x8 o' i, U; G [8 G9 I
pro1 db 13,10,'_________________________________________________',13,10
( S( G' h' G* |9 L. B db 'no more than 20 characters English name.',13,10
, y6 V, W- G' S+ V, w9 r' d! o% b db 'For example:',0ah,0dh,'liang xin hui',13,10% K7 a! S/ ?2 U e
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10! i% z; A& P! s
db '.................................................',13,10
) `" H- G2 h0 V1 S( R db 'Please input:',13,10,'$'8 C/ @' c" u2 a3 U0 B. ?
pro2 db '.................................................',13,10 K. R) f: q. y/ z) K
db 'The results are as follows:','$'8 \" j3 }5 w+ [$ i9 s) T
; ?5 X6 u+ h7 ?cont db '________________________________________________',13,10
5 k1 B" _1 S3 c% I' e0 h; B db 'Can You Continue(Y/N):','$'! s) x: r3 S% _$ M
5 ]* h ^% b4 y- S2 x& Qcp dd 50 dup(0)
9 r+ c) r) v3 k- ?2 qdata ends
) u7 n) ^. q" e( j$ o4 ~0 A! i5 ~3 [( ]* J6 [0 p. w
code segment
) m/ y9 C7 F$ O4 Q* M2 _' `. W: sstart : mov ax,data3 |6 P; O, y% T* h+ o. B! L8 v
mov ds,ax% D3 |) {6 b% T8 ^9 S
call prop1$ Z. W I" I8 n# r9 I1 O
mov bx,offset table2 g1 M% r: N1 I+ R; Q' e
mov si,0: A! k/ m- y n4 D# G
mov di,0
. C6 N: k4 [1 q P5 o7 T+ W) L* G5 B/ C " B1 U& o% r, s3 l4 t% U$ w: N8 D9 N
" `. o9 {$ d1 c1 P, p8 ?
call enterchar! P9 L/ H( h, z: N0 l
perp:
+ a& Y, b0 {) g& E, ~. j: S dec si) x! P6 T+ F) q, M1 S. W
mov dx,si2 J0 C8 R* }; t7 X& d( ~4 _
inc si - a+ W8 U5 I0 L! ]! ~4 Y; g
mov cx,si
j( l8 M) h% A call arrange
; L3 ] w* K1 p7 M8 z call prop2. Z" O3 x9 X; i5 U
call putchar
- M5 Y/ U8 r2 b/ {; iliang:) u, B& d4 i* V2 k+ j+ @# I8 v
call Continue
' |9 Q" o1 V8 G; c call judge9 S' E( O- z0 j4 p8 O
mov ax,4c00h8 G: S3 g) [ \5 t1 W& H) E4 y
int 21h: a4 o% y, c; K
& Z" R; l) t- m [" U: y
G: g( [2 f& o4 b: |! W* b+ R0 NContinue: enter
. Q/ q1 Z( R4 V9 a; F2 i mov dx,offset cont5 @3 L6 v: n2 x' v7 d0 g. I; @3 i O
mov ah,9h0 ?& t* q" Y% Q W7 y7 E
int 21h
( L' h9 @% \) J$ c. ] ret , C7 s4 J# k x
: n" g! d8 I2 ^judge: mov ah,1( Y- q4 I6 O' b6 \( P. N- u1 {
int 21h
2 o0 Q- B$ ?2 C or al,100000b+ X4 w8 I3 V* |7 ?+ r" E5 K" Y) a
cmp al,79h
6 c" n. H8 I9 ^6 o! U6 l0 f: u je clear' R& ^: M: Q4 H9 l; ~
cmp al,6eh( W# g) z. ? ?* H' b
je endj
1 Q) P+ `: M4 o3 `$ u2 w jmp liang
1 c3 n5 N! J; ]* p0 Hendj: ret 1 W; @/ b9 x& w
, L# k! e0 ?- G B# r
clear: mov bx,offset table+ z* N; I% }: {* E9 C \ Z/ J
mov cx,300
8 C- q8 O& N' r4 [) rzero: mov byte ptr [bx],0& a" B+ w5 Q$ M+ E, _9 z
inc bx- V# K9 i: g0 J/ U @! [2 _
loop zero h l7 x" S# ?0 m; K
jmp start3 ]9 y# a4 c, T
9 t3 Z1 ~3 U3 _: R- r- J7 z' Q
8 }" L \ n) I
enterchar: mov ah,19 f K7 U+ w+ u$ J
int 21h/ a6 _- R; T! i* b7 ?3 L; S$ h- a
mov byte ptr [bx],al 3 s9 Y, _4 x% d
cmp al,13& j9 M2 e$ Q4 M" a2 F
je endchar
w" b( U7 N. Y- x: d2 ~ mov di,1
% x( l ]3 D+ N& n0 j inc bx6 [) K/ N% {# [4 {4 L% `! R
jmp enterchar
2 I8 E0 C- w3 m+ T1 P; O4 |9 u" y" Q; @( K9 f
endchar: enter # n7 U2 K7 |& Y$ i0 T9 U0 U
mov byte ptr [bx],' '
) W6 Y: N2 {7 n/ e/ X! L cmp di,0
8 `. s# F, v# d) |6 } je perp
% ~. k( T9 U8 Z, e1 M inc si$ k& Q: q7 q5 M8 R
mov ax,si
+ Z+ \. S6 h: M; f mov dx,21
$ ]" e8 [- T. ]( k5 w mul dx
5 s6 A9 `1 I; t1 t2 L3 P0 z2 Y# D mov di,02 A3 x' C8 N; ^: g
mov bx,ax 7 B" [' K* v& e; t5 n
jmp enterchar
0 l$ i. r' k7 v7 v+ g% O3 R. E
arrange: push si
7 B1 c$ m! _* d& A1 e! Y! W0 q push cx
$ g5 @- j0 _. x, ~( I mov cx,dx * E4 ?* X. m/ w0 o$ ^
mov si,02 K" k, F: y/ q# Z
mov di,211 v$ i) Z ~; X1 a
7 x& x2 ]& t$ O4 P- g8 D
s1: push cx* N" Z9 j/ `6 f' \" P T$ T5 c
mov bx,0
# c; e% N% e7 C% k/ s mov cx,20
* U# r: W% [! T, Dss1: mov al,table[si+bx]
2 r( h ~9 Q3 M& m$ A cmp al, table[di+bx]
4 V3 r; ?- a! {: P( w ja jiao
" i) o6 k4 }2 u, d jb s2
C+ m4 ^- D+ Y1 b1 A inc bx
6 S! m+ B6 ^: B/ ~; t loop ss1
1 X) O! D& i6 n# W# s jmp s2
4 x3 D) n8 Q7 e7 { X
. T- w3 H' v* _jiao: mov bx,0- \, M9 a6 w& d; I
mov cx,20
( ]5 x2 ^" h8 b$ A" \% ^$ W, K5 G9 djiao1: mov al,table[si+bx]) Z) O4 E) U2 _- g. q o. V
xchg al,table[di+bx]. x, o6 q& ^4 n1 G# r5 F& F+ F
mov table[si+bx],al
( a8 a* B" P2 P2 O' n0 ` inc bx
/ B" x) b- S; Q1 v loop jiao1, f2 r I( N* F) u. b# B& T
& Q. p% A0 A" E1 Q3 e2 k
s2: add si,21) ~8 C* D2 G/ x, M
add di,212 d. P8 d" ?% `, o" ]1 W, C# S# U; j, {
pop cx5 S% n8 @% D# r3 F! Q
loop s1
8 D- I& b& Z7 ?2 ~4 I" j; j6 J( y/ u3 Q; I. N( X+ v) W
pop cx [. x3 o7 x1 A e* t/ q4 X' S
pop si
& r0 J- V; o+ L! O# Y3 @7 c/ N8 Z, q loop arrange
+ `3 X2 x1 ~& r) q# ~$ P ret
+ }1 K6 k2 o2 O+ {( S' F: c7 n
) K- j+ \7 `: k; y9 A g$ Gputchar: mov bx,0
X) b {. C9 s; b mov di,1% [& P% [6 |* }) P- u: v; f
* ^+ X0 {3 A) E. p; P
3 }, M9 t1 `! u! [8 ?" f% r
mov cx,si5 F2 r0 ]9 K- [' k3 ^2 w3 w: i
put1: push cx' n$ Q4 _. j) `. u3 E
push bx! D- k' h. ^8 m
$ l" C* x* ~, |& ]1 h3 e* K; p
enter+ x6 \3 E3 V0 ? T6 w ?4 u' Q
8 d( G v0 W" w9 W mov bl,103 {% ?9 l" W5 ?' w1 ^* Z( G
mov ax,di7 c7 D+ u8 b$ J; _7 P* a3 h) X
div bl
# W5 J$ h, w* ?. g9 H4 A/ x0 T: r mov bh,ah
@; h# g9 \: h2 T, X0 j! i; f add bh,30h
" n+ N' T0 v: }4 t4 V+ I add al,30h6 U0 M7 K; s% r/ V. N6 E
0 I* g& G/ D2 G; d4 p* t& F
mov dl,al. ~' [% | b, ?; n. L- x6 L1 g6 p
mov ah,2" {2 D. o3 Y; t6 V3 G7 ]9 Q9 A
int 21h% \& K2 D- b" w. x! S5 C0 [% Q
mov dl,bh" B9 i4 d. _" [9 q$ q5 c
mov ah,2
- k. n8 _) m5 K int 21h+ E4 t) v1 C2 D! X- r% V* s5 {" \
mov dl,3ah
) V% z- B/ x3 N/ @" _6 G' Q mov ah,2" i3 i. C# ~' d# ~2 v+ l
int 21h3 ^3 P: S2 j! t! ^* K& O& p
pop bx 1 E( i9 @. Z9 F
mov cx,20
% {8 H: K" {# S push bx
5 T+ i: D, |& N* nput2:
( _8 H! ^" ^) H- }% i7 J mov dl,table[bx]
/ ~% N: W$ _$ J# R& X" B$ }# l mov ah,2h
* b; Q& {) y6 W3 v1 d int 21h( h" ~; f' o9 @6 B7 @5 R' F
' z8 ~# y5 ~2 _) f( T. v inc bx. [: O$ m4 s: c1 }$ O& s
loop put2: j& T) g0 l( R+ O# s/ ]1 K
inc di
' u! e6 t% B$ M. L9 _ pop bx
z7 R0 \/ f* D& v add bx,21+ l' g- x. I* M8 J7 q
pop cx+ h! o: |9 P2 F2 `2 [. [, l5 j5 @
2 J) e4 o6 g% Q4 Y2 ~
loop put1
; C5 q# i8 j( | K! p9 c ret
) l9 J Q; m; a- j# p+ r! `! o% s! `* |+ ^) J9 y
prop1:
7 ]* o4 v* v' P- a3 H mov dx,offset pro1
/ i3 D' H+ H( D$ m) o mov ah,9h
J0 s8 H: M) R8 r: z; X* c8 H( y int 21h
9 x3 p) Y$ E$ @1 L. e enter
6 {- M- d! B) P8 N ret6 P+ s" J# h" M: b3 j, q- L3 ^
& F9 t2 u2 D5 q. O ~! f
prop2: enter% s8 k1 y/ Y% h
mov dx,offset pro2
" X1 R' t% p/ F8 `) Z mov ah,9h$ U+ Y) K5 w- A" k4 Y# c
int 21h' k* F8 W9 v3 o3 o9 V& Y i2 V& B" D
ret! `# r2 o" f h# }7 Q; B4 l; Z$ G9 ^; q
" Y4 B5 @% v% |9 Z: N! D! Mcode ends
2 A0 e: t+ f: @' Hend start4 i: k5 N2 M$ X( Y% L4 M' U
7 E5 _( u! @+ {4 N2 p7 T# U5 q7 |: _, z
|
|