|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
7 G/ N' U# k l/ P8 menter macro
/ h5 b: E: F5 ? push dx, k5 |) g4 Q; b5 S9 \
push ax2 u2 @( z I9 b7 X0 B
mov dl,0ah# ~1 N# [/ a) {& ~1 S
mov ah,2
( l, Q3 H5 t- {7 L9 P+ _ int 21h( {2 ~* ^! k* L0 A( t
mov dl,0dh7 S7 y' y& r! W- E1 P! _( E
mov ah,2
! C6 l% c" S1 M3 z- {9 Q int 21h8 ?5 }3 W' ^. B l8 r
pop ax) P, _8 V, Y& \( c- ]
pop dx
1 G8 |6 E. ^) G! K4 x9 ~endm4 b9 e1 K2 n7 ]/ Z" Y( {
5 t8 `" b/ K0 _5 V
assume cs:code,ds:data* r' O1 v- Y1 q5 {' B( x
data segment7 D% `8 r" S/ q+ Y& ?
table db 300 dup(0)4 i9 D* n# o- e2 k
pro1 db 13,10,'_________________________________________________',13,10$ L2 c4 |, t& S9 e# L7 T
db 'no more than 20 characters English name.',13,10 e/ i: S" w6 H$ L6 @4 }% r: W. @
db 'For example:',0ah,0dh,'liang xin hui',13,103 d8 p8 ?1 p% Y; o* U% K) H/ ?
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
( T* n+ \- O) X# u; E$ t- d db '.................................................',13,10
* } V( m$ @" l) U$ { db 'Please input:',13,10,'$'
$ S5 F9 s. C( Z3 e; [$ @3 tpro2 db '.................................................',13,10
: k! Z' ~) X( M' i0 | db 'The results are as follows:','$'
/ ]& Y4 X w# Z0 l( g0 J' x
# D4 | U( Z. ~/ N) vcont db '________________________________________________',13,10! g" s G+ Y1 b3 j' h
db 'Can You Continue(Y/N):','$'
5 `: J# X& N& D& K- T3 }
; `. O w6 F, _/ _5 ccp dd 50 dup(0)% ?7 o0 [" x# L3 Z& S
data ends' w; X9 }2 C6 S4 \. t* W7 ?% s
( m- [7 c2 s0 Ncode segment
+ f) Z7 @! u }start : mov ax,data# Y; K2 g4 v7 \+ H/ p3 j
mov ds,ax" m2 y& ?* Q5 `( _% k
call prop18 I: X% l# M6 u# t* m& N5 t9 ^
mov bx,offset table
+ J6 r3 e, R( k/ y. s: h. u mov si,0
/ r S* d& k g, k3 p: N! M mov di,0
/ y3 Q* T0 w) G7 j' `
3 T% z" v$ b: x0 J/ O ) g7 y6 _1 K0 q8 F
call enterchar
: X" H6 c6 ] c V8 q7 u3 uperp:
% i: G8 h( Y! L7 a# ^ dec si$ j M! s$ }' ?+ p* ~
mov dx,si
8 r; U+ _! j' u5 `" _4 b inc si 8 s% F) z9 `" u3 y1 H
mov cx,si
8 o8 x0 X e4 V5 m' i( y call arrange
* `2 |' J5 Q& p% C call prop23 r2 S: G! S1 V$ I/ q2 `* {
call putchar
, u( I0 L, R' Q/ C! xliang:
' J: y% D+ F2 D% b call Continue0 @1 b, M' f7 k* v* e# H
call judge
7 J/ n0 G+ ?4 J( j3 E mov ax,4c00h* i( K1 z2 F m, D
int 21h) |( X0 Y( O1 u5 L9 ?
) ~$ J* j9 n$ u; f, o. B# d m$ W' y$ ~, y# U) e5 a
Continue: enter7 _/ S* t0 G5 u2 \/ m0 b% i* _* a2 y
mov dx,offset cont, f+ p# D- d" ^( p! b& X4 {8 G
mov ah,9h
f3 d/ R$ ]: n7 @ int 21h
6 q1 R5 b6 ~& v& t, L4 \8 `. M! N ret 9 B) F( i$ h* t3 y9 ^
( X. d9 [/ } s( W
judge: mov ah,16 G0 j. C' c, R' _% v, ^0 U
int 21h2 L/ d6 b4 s% l! ^: Y: ^; f
or al,100000b
' C6 i% l) u7 p: w: I# g: J cmp al,79h
% L+ u5 a1 S; Y* L6 m je clear
- N9 ]1 z1 x2 }3 z cmp al,6eh9 I0 p! W( n& z4 a' W
je endj( O) y% `' p* P+ ^5 b
jmp liang# X8 ]9 f( s, y. a8 a
endj: ret ! [) v) M+ `0 ]" X2 R* W7 j
6 v) e6 t0 M# ?7 zclear: mov bx,offset table! f% w6 v# [6 d$ T
mov cx,300; l$ r$ b+ s1 u4 C0 Z
zero: mov byte ptr [bx],0
* s' [0 Q4 e% {$ g4 X+ I inc bx* L9 ?: E5 U/ h& F, B' P
loop zero2 W5 o+ A& B/ W
jmp start/ J4 h& S ^. M) ]+ k7 b) q
A1 p1 G: G! J6 n
- h; Y6 h3 g2 P( v
enterchar: mov ah,1
9 _8 w9 ~5 @ A" w int 21h
3 w, g5 X! b4 K mov byte ptr [bx],al
3 X0 i2 R) z' n* ~! @ cmp al,13, X9 [$ D6 \( c: s+ i4 \
je endchar 6 s2 i$ R! f9 e1 v/ }
mov di,16 |3 H7 K) _. N7 }5 ?5 K
inc bx8 Q1 t% d& U& F# U
jmp enterchar
! m% {" l$ Q5 v A4 t/ L) w. z& q4 k- o3 f/ q2 g( E. i
endchar: enter * l! H" X W. p2 X m3 B" P5 v1 Y% R
mov byte ptr [bx],' '
1 l( F# b7 `: ~+ f2 f. X cmp di,07 M& }) I! G/ u( k! G$ s* G2 w
je perp
$ C$ ~. N ?$ @8 Q inc si
/ V" s4 |: q1 `4 N& B: ~( L mov ax,si3 o: l$ q5 `9 j- o/ Y/ e; E% I
mov dx,21" ~; R4 t f/ z
mul dx
8 [4 D2 o* C) j0 M! w# V mov di,0
/ w0 Q% o/ e# ^; p ~3 ? z mov bx,ax 0 a1 e, v3 t" E- D- E
jmp enterchar0 u d, P2 d& r2 l
; `# I4 W6 H* F' z/ @/ a2 narrange: push si
2 t+ ]. o& D8 w push cx ! C6 H5 c4 w% E. }' Q
mov cx,dx
2 B( o! W, ?7 a; }) `8 y* W mov si,0; ], J( L0 |5 r6 I y, W- b
mov di,21; e3 d" g5 W/ J1 r. {+ h3 w
; V! x d/ r9 L, D( C
s1: push cx
' _: \) x' ~7 ]2 h. P mov bx,08 {1 l# h5 M% K- n# ^
mov cx,20
, ^ n2 b& y& Q+ nss1: mov al,table[si+bx]7 l3 j. U N% Z6 S4 O4 ]8 U+ ?+ Q( v
cmp al, table[di+bx] w( F$ X3 O9 w# m$ h# |0 o8 z' N
ja jiao$ c. G8 d3 e/ d' p W' p
jb s26 G+ t7 E* d' |) h1 s1 }1 @. d
inc bx: G# ^- p! t( N
loop ss1% g+ W, l5 H& N- {8 |9 h
jmp s2
+ z5 Z( ]2 l/ ]) y$ B+ j/ a; m3 K: r3 T' C- x& d
jiao: mov bx,02 W1 e0 E! f6 R7 r
mov cx,20
; p4 }# c) p6 ^jiao1: mov al,table[si+bx]
$ u, M) `1 |: ], z* O; g: ^, k1 t xchg al,table[di+bx]( u. s2 w- b( [$ B5 A- n: f
mov table[si+bx],al% `3 Y" L& j. ?! F5 e: ?
inc bx# a. v' q0 _/ N0 J
loop jiao1( i }4 Z( t$ J7 A
. g# c& p7 P( D4 y
s2: add si,21
% j& r0 {. O* r2 `0 A add di,217 V" ]( W5 B' g, I8 R# x6 B
pop cx* J( g/ w+ n" T0 [- a- X( F
loop s1
8 b$ C. j2 E& }9 P9 V, \* d, v8 M. D9 z: d Y
pop cx
2 w% e( {/ I6 I8 O( u$ w+ ?: H pop si9 F3 t: Q1 q0 X, F! [+ S |/ U
loop arrange. o; K* |$ q" @6 b( ^
ret2 h4 O2 K4 Y$ u+ y
% \0 E0 m8 R9 m3 ?
putchar: mov bx,0; j# g! k1 p, y' b" {* Y. d
mov di,1) n5 d4 \$ E2 @' d, }2 z+ t
- }" q/ T& U3 f) g
1 E7 b1 ~9 h1 s- b; h c) F mov cx,si
' b% }7 g0 C# `8 iput1: push cx( i& G' D* i- O
push bx
3 {& H2 x3 X3 Y* z( k$ ]
: I+ Q9 M% ~5 u3 G- M3 E, c; } enter
7 B2 I& I9 p6 T" r- ^5 {3 t . G7 _: a; W" b4 b- |2 h. a N9 q
mov bl,10
9 B' {& \, T T% C+ Q- i r, T2 E mov ax,di
. I; v/ ?: f5 m8 t2 {/ B: S7 l div bl, Z2 K" m7 d% u* P' R4 |
mov bh,ah
; |9 D$ E( P$ k! ~ Z) U& r- a# n add bh,30h/ ?: s# a7 q- C- c7 T8 @
add al,30h z- R3 C+ o" {! A5 M/ g0 p j
2 O- {5 Y* x* p( u mov dl,al
9 Q( W. c1 K4 l& V mov ah,2
a% L5 O& Y) p int 21h: y1 r3 h4 E9 m6 N% [0 u+ N
mov dl,bh! J( W1 N8 f) k5 L9 S( ]) C
mov ah,22 A/ N+ f# c$ E0 A) W1 b! C) Y
int 21h8 g4 z" x2 U% k1 R- Q/ k- s/ B
mov dl,3ah
( `- K2 c, U6 L% X& S L" [# w mov ah,2# s. v3 V1 T' x9 ]( }
int 21h
- `9 q; {, t) v2 L4 e pop bx
: `) T0 o- j q' a* v# y0 ^ mov cx,20
9 ~) F7 T% d: K2 n) t8 _+ a% g push bx7 j! S. e0 y$ R1 J$ Y5 U
put2: 3 ~- }2 {# p' g+ C1 c
mov dl,table[bx]3 \5 ~ T, r5 \9 V" Q
mov ah,2h
/ Z. V7 T- M" [ int 21h
* c% [3 G ^' V # q0 ~: |) Z( e% J& j# d7 @, d
inc bx8 M0 O" W: Y9 e0 S! k( a6 _
loop put2
v. H( v1 c [! [4 I3 C. \) g inc di
! \# s& E1 W! v! U$ Y- A pop bx
' J7 e/ E; _$ Y: t& O add bx,21
0 ?. g: K% l. C8 `( [) o1 L pop cx
. v8 @3 K4 _9 [$ M) |, A0 e
1 @- v N Y' d4 U8 U: Z4 s- Q9 m2 O loop put1! w2 V7 Z. S& ^! {2 k
ret
) \, F, \8 z H% L9 v2 W
8 ^$ O; ?; H G& zprop1: F4 I+ [$ I. N# q% f! ^
mov dx,offset pro1) e3 o6 z2 X) T
mov ah,9h! O- p' d8 Y1 W/ F& E
int 21h( j' ]! j& L+ k6 `" n9 a0 s
enter
( D2 e/ M0 b1 w ret3 U6 _1 W; `+ y: j% c/ O
! n- q8 R4 a7 z. Nprop2: enter3 n) v; G& K8 W& m) |1 _
mov dx,offset pro2
7 Q) p/ R# Q- ^ mov ah,9h
e% Y6 ~4 S) e- i9 ^8 l8 @ int 21h2 c" W# {4 w( p8 e/ N
ret
: v6 `/ ]* W$ z5 B
9 ]3 N' a* D( a% e5 Z S7 u/ Vcode ends
) I9 f6 C% w1 P; J) send start. V& V0 A8 z! {3 n" x$ b, p
7 _$ T9 e! ]) P6 j* Q
8 B& F* E. }; @' y, o' |- Z& K |
|