|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
H, y' J) O4 T' u6 c! \enter macro
+ s0 c8 o+ i) Q u8 Z push dx
8 j0 i0 M( d5 B C/ x push ax' c" X5 [8 E! k- T
mov dl,0ah
6 z1 X# H' z) `5 Z3 ?7 W) S mov ah,2
5 T: F9 O+ W: h! p' R7 S5 T int 21h3 W" [* C; A; S( z1 f
mov dl,0dh
( y3 U" N5 m& X0 R mov ah,24 s# C8 v5 J: Q) p) l. w, v1 A( [
int 21h
9 d2 m& J9 y' J( ]: m" O* w, u pop ax
7 y! N: A/ I4 F. u" n pop dx
$ `; S; U4 M+ Zendm
" k& d5 B" I- {( q2 v4 @$ [ {, A: [+ ^# B% J( t' \8 W! K" f
assume cs:code,ds:data1 T5 u! \+ m$ n# w }. z+ c
data segment+ ?, e8 v, O! N
table db 300 dup(0)
9 O. B; S. Y& |, j4 |" cpro1 db 13,10,'_________________________________________________',13,10! a6 Y8 w5 C3 F$ \& b$ {
db 'no more than 20 characters English name.',13,10
# T6 b0 E6 X. ~( a" P& F db 'For example:',0ah,0dh,'liang xin hui',13,10" x4 d1 V) m6 l" S
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
0 }" C$ v4 u% Z k3 m db '.................................................',13,10
# N# u! U/ d6 ?( k6 H db 'Please input:',13,10,'$'% l9 V6 c2 P1 n
pro2 db '.................................................',13,10
/ }2 T9 H% `0 s5 x) Z1 b+ |4 ~# ^ db 'The results are as follows:','$' q7 ?3 {8 v# R8 }" {- G$ [6 `
6 Q8 E5 b: O7 n0 c5 E: k7 |cont db '________________________________________________',13,10
i @& S5 {6 S& z0 O db 'Can You Continue(Y/N):','$'8 _1 ^9 y. O& w+ [0 g
6 I2 l- h$ M3 o0 jcp dd 50 dup(0)
2 e1 w: z/ e" H# W# P1 M" Pdata ends' F( ~6 X/ ]6 r0 x7 x/ i
/ t# \( ^+ r+ D& q" ?$ R
code segment7 ]. I, l. {5 \
start : mov ax,data9 Q, @ s$ q/ C: M# _) W
mov ds,ax+ l. o: G! k( W+ [+ r$ x
call prop10 S" m! ~8 Y8 k# N7 s6 W6 M
mov bx,offset table8 k R) K; r% C0 R; h
mov si,0! |- q! U: v3 f+ z+ B" L
mov di,0, P t, g0 C" ]
/ M% u: g+ T9 j+ {( m% U ?- c
& r. V; _, M1 b( T call enterchar! @: }% ~) n; Y7 K
perp:
, N9 N6 c/ v2 B0 \4 A- C dec si
4 [ `3 a+ e$ _ O mov dx,si
; n$ S1 l c5 ~' E% d7 f+ K& } inc si
3 d$ w. B+ D; U' _9 o$ @ mov cx,si/ _4 z. }3 e$ s
call arrange
7 T8 ]0 H) c8 e- ^; x call prop2& I; D' C: o4 Y" m
call putchar. u; l( c2 b( s3 E9 B8 `" t
liang:
3 Q0 @& I9 i: }- ]4 H- ~ call Continue
5 ?, i- J2 j: Q& K0 h4 @( | call judge
# E" l5 O3 \/ E% V mov ax,4c00h
_3 W* Q. \, e- F1 d# z7 P! H/ Y int 21h2 z3 j- x1 c' U" k+ i
. s' @$ V: I: e% d3 A! m' H9 ^- x
2 g2 {" T( k4 `/ DContinue: enter! I* f4 k6 X; X- g9 W8 t
mov dx,offset cont
5 a1 I4 z) E) O) r% y mov ah,9h' G+ Y1 V6 p& U1 g, P* i
int 21h$ i) Z$ K U3 M. C
ret $ M/ W3 Y" ?* ?* j" s) q
& T6 A& `8 \9 l3 Z5 B0 c# `judge: mov ah,1: x/ I. n$ N5 o2 `
int 21h, n' q* X( I! \' ?: X
or al,100000b
. P2 |. r; S$ l& M cmp al,79h/ `; E; l+ ?% u
je clear: y, v+ a* @9 g; O) u- u
cmp al,6eh
, ?7 M* [5 o5 E* B$ [: L je endj
7 o( o: O/ i# p. _/ s8 J; Z jmp liang L5 A. B) w" M' r6 y1 ^4 F0 k
endj: ret
6 {0 \% f$ k3 U( v. P' r' |4 V 8 [. H Z* ~+ W3 M1 f' M) c& G& L
clear: mov bx,offset table6 n6 t- s) T" r; S/ C
mov cx,300
7 S* Y3 o1 s1 l5 X+ G% `6 _. h: zzero: mov byte ptr [bx],0* v/ H$ s" \# f+ f; @
inc bx
: ~8 e D( r; S( E) c; E loop zero
* o1 ?# F E; l1 c2 _ jmp start+ H9 p8 {+ w F
2 Z9 e" I" \9 x3 h
1 J+ }: y3 n; F' e, j. {/ T, @) c
enterchar: mov ah,1* {+ |- D8 a( e9 s" r
int 21h+ [, t i+ S' m
mov byte ptr [bx],al : V+ D# d) G3 g# n) q' b, D
cmp al,139 M5 Y# b- u! c7 n4 s/ ~+ E
je endchar
. h0 t; E- m3 s6 |1 Y. [% P mov di,1
. ~* c: q+ l- S+ q inc bx
5 I! z8 Z4 T5 }4 ~ jmp enterchar
4 K! d! T/ t0 f. j' c
4 Q$ g4 Y0 X; n5 W5 a8 D6 i" Pendchar: enter 0 g2 r S5 l# f+ i! r4 n
mov byte ptr [bx],' '! T9 \! l/ w* t; @
cmp di,0
5 L1 S8 l* T7 C) i% d8 E$ h je perp
: ]) ]& h% Z) e( k$ B) ~3 X inc si
2 q" r3 d* m, V x! n1 `; g0 ? mov ax,si4 o) x9 N6 M0 R* }
mov dx,21
0 `* K' B; f* X, A7 X mul dx, N, h9 j+ @0 T3 Y; m
mov di,09 V5 S1 r& G5 ^, [# M- h; G( l
mov bx,ax
5 @" `( J3 B6 a: o& F jmp enterchar% q6 f7 T, ^8 R" A* N
' H8 N" h o4 E+ iarrange: push si5 J G2 \% K3 g, E# T
push cx ; Q, P1 F% M, K$ _; {1 S( C% ]
mov cx,dx
$ i+ [8 |( d! ]5 Y mov si,0$ \; K5 J0 @$ S
mov di,21
5 p3 I- n4 d) p. e
( E# d k9 Z) ~, p+ ~* H8 c' P& Xs1: push cx
5 g* W: C# b" y+ K mov bx,0! X1 s( C: F( h) z$ F
mov cx,200 ?8 Q: Y7 Y) P& x7 s
ss1: mov al,table[si+bx]
2 P) ~) q5 c8 m1 |) \ cmp al, table[di+bx]* g% w$ U2 _ d4 }$ m0 C1 |
ja jiao
2 N0 {: b) {. ~' R/ t) d7 R5 I jb s2
7 Z- K5 ?3 M" h% y) n inc bx
! k/ T; g, q' P/ |3 y# q loop ss1
! s3 s A" Y, O jmp s2
3 V- x0 J! K& j8 J0 k+ w( T/ y9 Y1 E y+ g5 U- ~
jiao: mov bx,0: y, Y* U" m o j7 S5 A
mov cx,20" y i- _4 i' p9 O2 X: \+ h
jiao1: mov al,table[si+bx]' a( w9 q. ^4 d
xchg al,table[di+bx]
+ }5 B- |. A# f* {8 a9 h% F mov table[si+bx],al( D) C3 R2 C' p
inc bx* _: P! G+ x' s! X2 p: M N; v% n
loop jiao1
' ]" W! Y) L$ ]+ i5 R* p% j6 P5 k% ^6 y0 T' \" Y
s2: add si,21
: D, d7 f. [- `3 y7 r' N2 ~ add di,21
3 }5 c5 @! v" f0 m: v& [ pop cx
) }" W& g l1 ^5 Y loop s1
7 M+ V, m1 n: o/ f& H2 D! c
. e$ l9 U3 p. K+ | pop cx
5 ~2 ^' u+ z. \1 B' z1 c* j; X K' ` pop si& h& d' C1 q$ |" e% p" J
loop arrange% \: t8 F, ~$ b. S
ret3 A- u+ ]6 S' o
1 J6 t5 b5 T0 k; Z8 S9 Sputchar: mov bx,02 E* h% L8 e5 v0 \0 B7 t6 w
mov di,1
* T; X3 {$ _3 y/ u0 r( a7 n0 P6 K 2 d X9 ~" r7 [& ~* m" @) d" \
5 m- y t$ ?- X% G- \3 f
mov cx,si
# v! y3 f4 W0 [4 q. \put1: push cx. a. G Z) m: Y5 \- |5 o
push bx
! T. {2 T4 E. B" @2 Y7 Y I ( X# H) G# w8 L, y" {) M* X
enter
. ^; k w, M6 R8 N4 t$ j7 t! y! F 5 O5 r7 w5 f J7 p3 q! m6 B
mov bl,10" n+ J: w1 B% j. _$ f
mov ax,di
S8 ]! m F' Z' u div bl- q$ g2 s! X! a/ x! g S' Q: c
mov bh,ah e( p' v* T$ }$ H3 o8 q, U
add bh,30h
4 Q- h6 p& P# M3 K9 j add al,30h) l. [( ?/ j! Z% Z0 V$ v
& Z, ? w2 k/ Z4 {9 D
mov dl,al
5 Y0 a& S1 Q( D0 u2 C4 @5 o mov ah,2
0 O7 ]! B; I! n6 H1 Z/ \, q! F& {- X int 21h" c, S: r7 ]& ^4 S
mov dl,bh
+ s3 |2 ^1 C. q0 \- w0 f mov ah,2
, R; k7 _- C! z3 W int 21h
" I- }* @) U! q, j, r* G5 T mov dl,3ah
4 N, T9 D& x9 t mov ah,2
: i" J9 J0 m* p' X3 v int 21h
' G% p# N' N- L pop bx
0 U2 u0 W6 e& u0 H7 R mov cx,20
I! J. ]) X# `. R7 R push bx
4 P# |% b# p$ x9 e7 `: D' iput2: / @6 S5 Y" U7 o3 i
mov dl,table[bx]& o$ B6 ~ B6 p4 Z, P6 @8 b
mov ah,2h( P) u; U$ R( U! B8 i5 P& S
int 21h
5 s8 D7 H* Q0 J+ s0 W$ u
0 j. s- W/ Q: n. x3 D; E inc bx
" X4 T& j8 B) r: l/ L: C loop put2
$ Q# F) y% J! s4 D8 h; s inc di * P( x: V5 U9 p4 E3 {" e2 h; M: S
pop bx. o0 \, |) T0 c% n$ O8 O
add bx,21' M2 y% W) A! g- N7 c% B7 W: D
pop cx
& t0 H+ E/ w. K5 ?2 P
: m2 I& ?! I4 O& R loop put1$ m" q3 i6 W) e' A7 j2 `
ret0 l7 G4 u* ]- k$ z( B( g, }
2 H2 r: o1 b- ?, W! O4 J- o* n
prop1:
, H \. u: o4 a/ L mov dx,offset pro1
6 i; ?& {2 ?, }. R mov ah,9h
: r* Y5 t* } `4 O8 V$ ] int 21h
- o2 J! n$ t8 A' [/ \ enter $ O' }2 P# v. M6 `* L
ret
1 H9 F! F: E; Y( y5 B; ?% w, C$ P/ Z9 _" m/ a% m& L
prop2: enter
; |$ E. t' P2 Q& J# ]: e# m% N mov dx,offset pro2
5 R O3 ^9 ^3 c: A( ^ mov ah,9h; h8 I2 u) \. C: F- E( L
int 21h2 n' u9 E8 Q5 R
ret
5 f7 I1 {1 D" b2 o
" B* H' `, i. w- }( Icode ends& d+ `2 z. b# _0 |1 G; Z
end start
" r* c9 w0 n+ c3 K2 K7 _2 x5 v {# i. ?0 V+ m
3 A. l* h7 k0 M% K4 ^4 e |
|