|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
. d5 f) `$ C) M1 u0 ^enter macro
O) s2 z7 l+ q8 T. Q6 s push dx
% o" W9 ^; T( _) j: m% c4 \6 z0 ~& M! L push ax$ u7 h/ N6 Y q4 g' p
mov dl,0ah
3 d7 n1 y% T7 K4 G6 M6 u mov ah,2
7 ]) K+ h8 ] { int 21h9 J4 @$ T# g1 Q, o7 {
mov dl,0dh
, Z; O( \8 e) h* B/ X3 z) u mov ah,2" `$ X) c$ |8 ]. b: Y$ D% r
int 21h
5 V+ J N' O8 ~; V* u; l pop ax
$ x8 m$ u5 D4 d9 g3 H9 r" L pop dx ' {( n9 J" ~3 I: |
endm7 @. d9 @% `+ j% }5 d8 |7 Q: z5 e
- y/ r6 V6 j8 G" [, N2 o" kassume cs:code,ds:data" E& `% |$ f" X5 g+ Z: ]5 o. \+ X
data segment2 l7 @; f5 \8 }4 e
table db 300 dup(0)
/ \, m& Y4 @1 ~- i5 f$ ?6 Hpro1 db 13,10,'_________________________________________________',13,10! [! X6 P0 S! O6 P. d) v' }. }
db 'no more than 20 characters English name.',13,10( D( `9 C- u. j( f& n3 \9 J
db 'For example:',0ah,0dh,'liang xin hui',13,10: z |0 ]0 z0 A7 t0 r/ r
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,102 ^7 }4 E' w8 t
db '.................................................',13,10
8 W C: {' t. _# a$ ~: M+ A db 'Please input:',13,10,'$'
4 F4 v- K. u# xpro2 db '.................................................',13,10
; k% ~0 ?1 J4 P0 {" Y# d; g db 'The results are as follows:','$'
) h1 N$ t/ B4 b: H/ w. ~
1 Z4 t. m2 j6 b; t( _cont db '________________________________________________',13,108 N0 N% k$ w* M; M& D- @
db 'Can You Continue(Y/N):','$'
$ ?6 b6 Q8 t( U$ m' Z8 N
7 {/ `, F* T1 T/ ]! Ecp dd 50 dup(0)
6 u' m1 \' x4 ]4 N3 W" ]2 qdata ends8 l' \; w/ W% ^1 x- h4 R2 d
% A, v. ?' n$ ^2 G" g* B9 U
code segment
! y1 Q$ w: N4 T. v. R8 ystart : mov ax,data
6 R6 H) r5 K7 r mov ds,ax$ }, [% i& P7 K$ c. H6 n' G
call prop1
1 E# g% ]* ^5 e" ?7 G0 @+ J2 J4 l" N mov bx,offset table
4 q7 a0 _% Y/ ` mov si,0& b3 W4 |* |% @, O# l+ `
mov di,0% @- x+ ^1 w( d% g/ ?0 A* e
% N* y2 h9 I6 U& X7 X2 U3 ~+ l
. x3 b5 D; J# B3 L" s! R) l" M
call enterchar( A. D6 V' [" y6 F& B
perp:
9 h( _. C6 k# j5 C: j: C dec si
0 u$ g" I" T4 x( [6 B mov dx,si4 O* t& r+ E+ t5 J
inc si 6 A9 V- |1 V: x4 U# L" S
mov cx,si
% o v6 r8 E; C7 k call arrange8 y- ?, i1 L( x6 V& |, s- P7 K5 I
call prop20 I1 i5 J: a) ?* n3 d' S1 g
call putchar- X1 C) ^6 n( i+ E
liang:
' {0 O) R L' h+ q$ v call Continue0 T& V/ d( b0 e" b V5 ?# \
call judge6 R6 | s: y4 a/ ~: D0 v
mov ax,4c00h5 h6 u- Z5 ?$ R2 \9 N
int 21h2 D' B* K% e" W+ a1 i4 A
* {; C) Y6 W- T. j, M' U2 ^
. O8 Y* C. N8 X' o7 Z
Continue: enter
7 r! m9 [' @; q) a mov dx,offset cont$ U9 \/ Y0 X! }3 `+ f! h; p, V9 K
mov ah,9h { b/ K1 o ?/ `) T! s
int 21h1 t: |0 R2 C: e" i5 N9 u% O
ret 5 p/ k% ^; t O+ i' P
4 g7 s* T# G7 h: ^% m) p; F7 sjudge: mov ah,1
8 E% L) |2 w) @ int 21h, W' S) h7 N# W$ g4 p5 s
or al,100000b
* V8 L: E7 y' ^3 g, \! g) Q cmp al,79h
3 Y- s& A. j- e' D& x9 S je clear+ L: e( [9 }+ E$ ~6 r+ l7 F2 F6 ^. {' W
cmp al,6eh
/ T: o2 U4 ]# G w9 G, @. ` je endj9 `+ G: n T8 _
jmp liang
* F2 Y. I: Y/ |( l" J1 ~. rendj: ret * S5 g }4 q/ \6 T1 i2 f& k& V
+ x) Z3 ]+ ~) H4 `* i* ]1 Y$ z/ bclear: mov bx,offset table+ ^6 P8 T$ v, y1 }1 x% D
mov cx,300
( o% D5 Z. t5 B8 D/ uzero: mov byte ptr [bx],0; [9 P4 I7 ]3 G" y7 F$ j
inc bx
# \( M- O" E7 L, ? loop zero# X# U9 N. b+ e. o
jmp start. y m1 @$ h( l4 `' ? P- C: W
5 v0 ?! m1 L; d+ v) G7 F! C# T7 d3 ^7 C+ }9 }
enterchar: mov ah,1" P, ], D, x. q: O& [( u
int 21h
( m. O) D e, \ mov byte ptr [bx],al # d1 m6 y3 s- Y' k. b- y8 m" `
cmp al,139 W) l% I! v* F' s% J
je endchar 2 |5 j; z/ `( [/ {; R
mov di,1
2 l$ s% i; Q8 j& u8 C- m2 Q2 M( @ inc bx0 _3 `( z' ~* E% T+ R I
jmp enterchar
& \- U3 {2 {% z7 l% P0 b! |. [# ^5 S8 U; y( ~& l. v* r, {
endchar: enter / b- R% { y. t- l( Q
mov byte ptr [bx],' '
" x! b" T$ f1 k: l2 T cmp di,0
' L! k( R' h$ P% w0 C. g! b- D je perp2 f2 `& T% u, y8 _) A X. }9 ~
inc si
8 d1 a5 e# b0 k& \* F# `" \! R mov ax,si
6 y/ f, z, L& w5 R; J mov dx,216 ~7 M# a! b) H& K$ Q! [
mul dx
& H( Q1 Z+ X: k6 l1 u/ p& t8 {* k mov di,0) Z- |) b( q9 A$ G0 g6 Z; h
mov bx,ax
. m/ K% O _( L" A6 c jmp enterchar/ t# H+ e, y5 W& d6 O. ?
* J0 ?5 x& R* I, W* A
arrange: push si
7 \/ W5 r; l7 q5 W( | push cx % Y& Q$ K5 x$ J2 r
mov cx,dx
# k9 [4 V9 O+ o c' r$ o' ]$ T mov si,04 v4 `! _& f# N
mov di,21
' c. I5 X- w0 t; n3 s
' t9 r1 |5 y; L0 j1 o: Ss1: push cx' a& u7 }. R+ `) u a( S( c- P
mov bx,0/ Q( }' k: {# b* d- H2 z
mov cx,20
1 e3 i( F/ q; f8 \ss1: mov al,table[si+bx]
" `9 R! [# M' d) y5 l cmp al, table[di+bx]' ]' I i" A# \0 h# j5 h1 c& K/ k
ja jiao( z0 M3 W- |$ p' W% N
jb s2
/ W' R; R! q% o. j inc bx. X9 j' E8 t0 K# Q z
loop ss1
, C* h/ B8 `- H4 } jmp s2
3 g' t0 S- I. C5 n: F1 M* j) \) Q$ A$ M( {* _+ V
jiao: mov bx,0
) ~: Z5 p3 e# p mov cx,20
) z& H& |6 Q% A6 h/ s6 Cjiao1: mov al,table[si+bx]3 I* |) I* P Y9 Q# S3 c5 U
xchg al,table[di+bx]# e$ ^! V d& ]0 i9 g
mov table[si+bx],al+ T4 x& e! P3 c' \3 m
inc bx# [; u0 w& F: P8 L) q3 \! @8 z/ u
loop jiao1( V1 b8 G/ w7 o( F' k+ R
. x3 b: c: O2 R( X9 Ss2: add si,21
2 ?, d. P! V. o$ o) i" z add di,219 A ~" V6 S2 x' W
pop cx* J; s1 W" F" N0 P' o+ H( E
loop s1
) j, c3 f+ H( G2 y; V" q0 p7 w8 k$ R1 H' F/ e7 \/ K
pop cx
j+ h/ u& j" y5 k pop si
7 y* e! b: ~0 ^1 `* S& B loop arrange3 V" V" v8 L/ O: T
ret
8 i+ y3 M7 M+ J
* x8 A8 o4 p' ^putchar: mov bx,0% _* |9 l0 u) w: P5 S! h
mov di,1
( F; G/ P7 p) }# v% h 0 |; @2 _2 w3 n) [( p8 p
! _: Y( z% D$ k, K/ n6 c
mov cx,si
4 f4 P3 V1 X" I; T5 I0 w; p d; {put1: push cx' R3 y$ }5 P0 Z) T
push bx
6 q8 T( ~& e. C! U $ T, O: L4 v& [, [ H1 d: o
enter
$ E+ p- n2 }5 ` / \7 U/ k/ S& f
mov bl,10& m3 y6 B! b6 w. ?5 m4 N# u
mov ax,di' d; h0 ^" D; H. Y6 I8 D
div bl$ N: e( s2 Z, L' z
mov bh,ah
3 [& u9 W, s7 x( z% ~, h) s add bh,30h
% I& ~. j' p7 d add al,30h5 Z) Y! _( ?% U0 g: r1 V q
; X( ~. {0 V# A) C) x
mov dl,al* u* r2 f1 i% j w! f5 V
mov ah,2- B" ~- S+ P e: V& S4 u7 v/ T
int 21h
3 v; Z; L. R) o$ j8 |% _3 p9 u mov dl,bh: O6 i6 o0 u/ D& h' O" c
mov ah,28 R8 a" Y7 a1 o& @" i) {$ I
int 21h
7 |1 n- x8 [. w mov dl,3ah- y8 ~' q& n: Z1 D2 U' P! z# D" D
mov ah,2; R& d& G! B3 J* j) p, d% m
int 21h
$ ]$ v+ e& }% P/ z& _3 m* |9 q+ j pop bx " a' E0 { E& K* {
mov cx,20
3 u9 E, n& P8 v0 \ push bx
6 J) ?; ?! I5 j+ ^* |& ?2 hput2: ' |3 ?4 I+ N6 z! m% C
mov dl,table[bx]
1 z' o. b) h) p1 b mov ah,2h
7 c. n* l' @. {( D" I8 P int 21h+ a/ ~. b3 h6 t1 z B4 f; u
1 [* e- f2 d, p+ H$ t5 F5 P
inc bx' w* B# h+ H5 m2 y# x
loop put24 T0 z2 j! t/ A# H; j9 t9 t( w
inc di
) z! v' y% G* ?- D- @ pop bx( R: l, W0 ~* \8 \
add bx,21
" v; [2 K0 o- d pop cx5 |# n o6 c" `! I) d( x$ j2 y Z
1 [: C' j# X6 h# s% B) c
loop put15 Z1 A4 x9 l9 C2 U' F
ret
. }+ x% L, X7 h. i% P, q7 r% s
; [. V6 I2 G1 T1 M7 E* E/ d1 Q) mprop1:
% \; y/ ~/ d) s3 r6 S/ d2 M2 U mov dx,offset pro1/ c, n H; R% n1 t0 v% v/ o
mov ah,9h( f0 @' ~6 r- Y
int 21h0 G0 \: G/ b8 `7 ?& p2 Y& x
enter
- {% |9 c( ~2 d7 \+ q' E ret
5 u1 [% _4 j3 J9 l% U8 p# z; L4 @% F1 G: `# i8 `
prop2: enter
p6 |8 w% K6 Z/ J3 q( | mov dx,offset pro2
* M, Z; [" u, Y f& b6 d mov ah,9h
- \' t; n" F1 J' I0 T$ r int 21h
, X8 J8 j) y0 u6 F ret2 m& ^1 J1 u( {; u4 N' W
% u7 {- c0 ? b# B
code ends+ D' e& F, a, A
end start
& a$ N& w+ c% H5 l( L" W L5 N4 ~
, G) \9 [8 h' ~$ M5 E* x2 ?6 d/ W, D
3 A6 L" ^! }- \* {4 I |
|