|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧) v# Q% f8 e3 R
enter macro
" e0 o/ y# i6 n6 D: Q2 f push dx
$ M! F4 o5 l" O push ax9 ?) u, _7 H" m3 O4 `3 n
mov dl,0ah% B+ f2 m( k" `$ g! y/ ^9 ?: Q4 `
mov ah,2; F# I4 a9 {5 W( g9 B
int 21h
6 h: G5 }; O( K) _ mov dl,0dh
2 w( W4 p- R7 X$ n' L' J; f d( O mov ah,2/ V2 }: ~& | w! c
int 21h
9 l) V I+ Z. u. w& p u& _ pop ax
( L: D! k; A& R* B8 S pop dx 2 G& }7 M+ m6 t6 x
endm3 Q- _7 A+ o' c% Z+ ^2 U0 }. G
% [# _" U) S: v7 l( x& p% w$ |& rassume cs:code,ds:data* ]+ U# z, B- @; P9 q" P6 _4 Z" V
data segment+ D9 H7 L; T2 b7 u; x8 s
table db 300 dup(0)+ G) L( z% [6 D
pro1 db 13,10,'_________________________________________________',13,10
9 B5 |3 L. }- a db 'no more than 20 characters English name.',13,10
3 R" y9 I) R) i% G db 'For example:',0ah,0dh,'liang xin hui',13,10
; W6 i' ^( l, a' F' H) U" e db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10: E8 m9 m, W% M5 h
db '.................................................',13,10. E; A- V0 F7 Z0 a& |
db 'Please input:',13,10,'$'
4 R( T% P8 d/ `; Xpro2 db '.................................................',13,10
& p5 M! w0 F( @4 k% H9 d db 'The results are as follows:','$'& o8 Y/ t8 c$ `2 V
4 W# k9 x, H5 Y* @7 u, [cont db '________________________________________________',13,10
- ]2 O' j' g6 y/ c" v db 'Can You Continue(Y/N):','$'
+ E9 x4 G$ m; ?! x* c* }# ]4 c$ M# e- F$ O$ n+ ?3 g+ D
cp dd 50 dup(0)+ S" E+ x: M+ Z- y2 u
data ends
# Z% z) [2 w# d, R4 J1 R4 f( ]7 N: b. r( X( \) Y- R( ^
code segment' N9 p2 j* { `3 o2 E6 @( {
start : mov ax,data T( d$ W. h$ i$ e+ I
mov ds,ax
3 [3 T3 d+ |. t, c, R call prop1
( U! G, A& k$ }, v( m! B mov bx,offset table/ y) V5 Z2 d ]1 ~
mov si,0/ |5 D) J$ N+ Q$ J) r9 d1 m
mov di,0" n( `' O8 w9 B' @9 `! b2 ]
" R& J8 \2 i$ I d; v" { G% O
9 |( Y/ |' Z f g call enterchar
- d2 `! I; j: i0 J/ p. z1 M2 Lperp:
: s- Q) h$ G( F! _6 F1 t- g dec si0 P2 G+ D+ x) E
mov dx,si
, f6 T' R* u# R k$ ] inc si
, e. e' J# |( |! q, N" b- A9 ] mov cx,si
+ p9 _1 N, _3 R' W call arrange
/ C/ A* r; E, q& W call prop2# N' I5 }: E* K/ d0 }
call putchar$ e# |% O5 R6 g3 j5 ~; H8 d6 R
liang:0 _, Z( D) s& p0 A( f
call Continue2 k A" \ O- r5 J0 ]# v
call judge
; |7 \) D/ i, |& S* ^ mov ax,4c00h, N3 X$ L" ^ y" D
int 21h
& Q% i* l; j/ m, K" ^, \% I% E3 R' q4 E/ @" b$ C+ ^/ \9 @
: ?4 `; x5 t0 m4 t. T1 c
Continue: enter6 {* m: q% S& }0 }
mov dx,offset cont
& g; @% J5 Y! q4 _4 A mov ah,9h8 U* h/ G1 r: [; D; [/ O
int 21h
" P+ d( m1 @6 [; q2 J ret 9 f: v0 @7 W+ s. Q9 G3 e
7 x1 N+ r7 s' i: |) zjudge: mov ah,1
1 n7 }) Y; ?& t2 g5 t8 e int 21h0 \8 g& C0 ]% ~( p
or al,100000b
" ?; T, A4 v; v2 s9 ]5 B cmp al,79h6 F$ p4 l4 \/ E& z' j
je clear# G4 @% s i' F0 G8 l w- Q
cmp al,6eh
0 w/ |# Y* u3 k+ S% d! z je endj4 B$ x+ \' d! b& y% V6 l
jmp liang
* o0 |6 s5 o- a$ m9 tendj: ret
. v4 P% N' a9 S. X7 |+ B4 U 7 {5 n7 M7 g& C5 F' k' q% F
clear: mov bx,offset table
. H4 w6 S% y W mov cx,300- q% \+ a6 L' Y
zero: mov byte ptr [bx],0' J. Q \! ?9 L; l+ U
inc bx
, Z3 z6 j- g1 }. S1 N0 U m. G loop zero
+ Q8 h+ B: q# C6 w% p* B* ]6 K$ b F jmp start) k, F3 r+ ?( V% d2 K* u2 F- I
& S7 F }! b8 T7 F, e; `9 y. c" _
" n! A9 _. m; C# tenterchar: mov ah,15 ~" q1 c0 {0 K; u* ~" g+ L
int 21h+ T' d0 w2 E% \4 b% o
mov byte ptr [bx],al / E2 B2 Z4 o l) p; i
cmp al,13
2 U. |* i/ ]7 }, ?2 K: j. w je endchar
7 {( x' ]2 f6 E, q; N2 [# t) O mov di,1
% i; \$ ^) B: J+ N3 s inc bx
f( o8 c$ l: F |7 f/ P5 N, n jmp enterchar% }2 \* D6 M4 p/ i- d7 l" s
' k- q8 V( k. m2 F" w' f
endchar: enter
( h) v# m" q7 A- M" e3 l- B3 L mov byte ptr [bx],' '6 H2 w' g5 T5 K+ x
cmp di,0
5 ^: D7 @: \ `/ X& v je perp/ e* S/ j2 u# E5 \# }/ }7 e3 D% y* f
inc si
4 g+ f6 D. Z' `. Z# ^% A) [2 Q- S6 [ mov ax,si8 k1 {. `; m( q, b0 P I1 P+ j4 m4 @
mov dx,21
4 ^ y3 q P; c3 I mul dx- X; e2 \7 \9 v8 {
mov di,0) {7 O# x$ t& I: G; x
mov bx,ax
7 ~ h+ b$ ]+ H5 O" A/ z jmp enterchar
6 C9 }/ ^) V& G/ y+ I: ^6 r2 z' A7 L
arrange: push si4 @; ~+ {# N: I+ C# C
push cx
2 }" M( Q8 \; w0 H mov cx,dx
0 E# J. ]7 l4 \# m mov si,0
( Y+ O0 @: G' Z7 y! |; R mov di,213 R* J* p! U8 t7 o" Q+ w1 `
- Q6 m( ]2 w5 s) ]
s1: push cx
- l: O: u: m+ M. _* _# A, p mov bx,0
6 U; a# s5 R: E$ \4 o; I9 a mov cx,20
' i4 w B9 l) D. {8 |$ bss1: mov al,table[si+bx]
, y$ C$ A" {7 Q ~2 y7 U cmp al, table[di+bx]( C, A2 {# I7 `. L/ Z7 _5 B0 {. f
ja jiao
9 z. E& ^1 U' F( i% h) [. A jb s24 ^4 O! T5 p8 F/ o4 g# ]
inc bx7 k) R. v& D2 ]5 u$ E; {
loop ss1% E, F. q, o1 k4 i* a, x D
jmp s2
. J1 `/ T0 j& S, {/ g2 b% i( N3 q, J+ d2 _: P" n( |* ]3 o9 w a, S
jiao: mov bx,0
8 O0 C# V9 P' q9 F8 x mov cx,20
% W. K! x1 i$ ~5 Z& C! v' ]. K. {jiao1: mov al,table[si+bx]
7 C- i* W+ q+ J1 {1 W$ R+ p+ [ xchg al,table[di+bx]
/ r1 x/ p0 w- }8 Z% Z mov table[si+bx],al
& _, `5 ~% B1 C" A7 l4 U' j( O) E inc bx
/ f: g- ]7 G) ^; ? loop jiao1
' l5 m7 d0 l$ S; p% m8 ^" G+ U4 y9 C4 ? C+ t0 \0 T, K* I; T
s2: add si,21
& O) Q: \* W2 o, s' n6 Y e add di,21
6 P8 X6 ~- ?2 c7 I! }2 [ pop cx
4 `) M9 c5 A7 p7 m loop s1, r- ?) Y4 W# K* H( r
7 |) t/ W- \- Z4 }0 D
pop cx0 S( a' z4 u4 k
pop si* M. S; N& D. u% @& T" j2 i
loop arrange2 a4 j$ c( b' f) b/ y$ W$ e
ret
9 a/ m( G2 y2 b
% @5 Q9 ~ T# W( c! Sputchar: mov bx,0: v4 x: u6 N4 M8 M+ \# d
mov di,1
# }! k# K1 B7 L7 x- `) c. ~
/ q" `1 u2 S4 x6 s; U, a( T! z 2 H/ V7 e% t) ^- f# y( J
mov cx,si
2 F$ ^" P* n! K: x5 b: w0 N4 Bput1: push cx3 B+ `% {% C( q7 `6 J3 d0 I
push bx
: w& H1 X" z6 N; Y% M& i% S
1 x- B. a' A$ x enter
: m6 T2 O3 f( ?2 l1 ^7 w
/ }9 a( C) n+ g# K6 L8 a mov bl,10
J! u% k6 ^1 s# f& P3 \( |7 N- g) Q7 Z mov ax,di
+ ~: g1 H/ e; X+ P div bl' p. y. m6 T& d E
mov bh,ah
6 E7 B* B% k( {* O3 M0 J! C+ M add bh,30h) J, l# K/ h4 J
add al,30h- B6 P* a. U& D
4 ~3 C' p9 t5 |, A mov dl,al: v" y/ f1 C* d5 f
mov ah,2
& ]$ u: x2 l& _* E1 z- t int 21h) b- J( z. S/ D# c6 M
mov dl,bh% A& S! j6 l$ t9 R
mov ah,2
( F+ b9 g' w, {6 S, q- C6 H/ L int 21h
8 s( G2 h- l; F: {/ n: g- K) t- k' P mov dl,3ah% S: H' T9 l& q% H$ v
mov ah,2
5 {, K5 f, ?# j+ R& O! p int 21h% g- \. E! B! b& C1 t* }
pop bx
[, K# C4 k7 ^9 s& U8 \ mov cx,20+ j$ W3 a/ n6 n5 p1 M! U( _
push bx! y# A) {/ I! A+ L# \: u
put2: 6 T' m4 E9 ^4 C& U2 i4 J! p+ H
mov dl,table[bx]' q0 v- K" @1 K$ p
mov ah,2h7 M4 y8 g' R& I4 D9 ]1 o
int 21h
, r$ R+ O; P+ g; D
! l+ H: G8 I; k$ } inc bx) ?" E: m5 p; f. t& y/ ~
loop put2
' I! k D( M- Z' u U; K; ]0 k& }, t inc di . }/ y9 e9 m, X/ g/ D! V: ^
pop bx
" r \4 D3 a y$ t* G/ C add bx,21: @) Z4 V- D4 f9 [
pop cx6 m* `7 E4 m$ x0 W7 C8 ]/ b+ A
8 _. C( I1 ]' r
loop put17 b' k6 e k) |9 i; h
ret
9 k/ j5 U& b3 W. M, A9 s
B' s+ O+ s& p$ }prop1: 5 M& W5 r x/ h1 @0 c
mov dx,offset pro1
2 f% {& i* Z6 C mov ah,9h, J$ m% e" ?) z" h
int 21h
& i9 W S8 W/ V# Y6 v/ u enter
- W* I8 O: s! I7 |) w( U6 Q ret$ r3 u7 B. A; j) m% H) j( G7 X
& d4 i* p, f8 s* @+ p1 e a
prop2: enter; t( m' V$ |2 v( Q P
mov dx,offset pro2% ~" p( {+ Q3 j9 V& {
mov ah,9h4 J! o0 \+ T. k4 B/ C6 O' k
int 21h8 ~- g2 @6 ]. C' ~ O3 P( t
ret
6 i1 P4 X- A* o1 n/ m* h1 C2 F5 S- e; ]: L' g7 t9 ?
code ends
' v+ H9 X$ W5 o% K* {& {2 Wend start- S: I# q" C. y2 F p
: |3 k6 N2 G) g2 r& Y) d) ?1 K
4 ]9 L5 _0 [2 c7 u: {) q- y" u |
|