|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
c& E7 m, @; M4 v- v" ^- z6 Center macro
2 _- R4 j, U! B6 @ push dx+ r; z5 \5 N9 F0 H: W; R% k7 @; w
push ax# l7 t" Y1 n3 J- a/ k& x
mov dl,0ah
, l0 j- ?" ^$ R( S+ _ p: [/ E3 I mov ah,2$ l$ s* K/ @* b5 M4 z
int 21h
: ?0 M/ ]' A1 _8 J o4 J mov dl,0dh
O# Z% H, e& z, o0 d \# v mov ah,20 c" E& r+ S5 p" G% S3 t. D8 W
int 21h
0 S! M1 Q. K& h2 I) J pop ax
; W! [4 Z7 m7 B% c: m pop dx
/ n$ h$ k& G: e7 b- jendm
- C, N2 u, x7 J1 y0 c
0 v$ E0 g# x5 d' ?assume cs:code,ds:data; U% g h( K$ `$ _8 w
data segment
1 Y3 ~2 t5 o: }" C0 v' Y8 ptable db 300 dup(0)5 `8 x! h$ L+ j+ h) d9 A8 s
pro1 db 13,10,'_________________________________________________',13,10) n b9 D) P8 r: r) m
db 'no more than 20 characters English name.',13,10
w9 ~5 p! s$ g5 J1 J. ?/ R" ^ db 'For example:',0ah,0dh,'liang xin hui',13,10
% i$ [+ [+ Q9 u$ a4 x/ |7 ~ db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10/ ^! s F6 g3 S4 q+ ]
db '.................................................',13,10
2 |7 M. A9 e+ u. b0 C9 z db 'Please input:',13,10,'$'
3 s U' Q x; z, h! M) C" `" cpro2 db '.................................................',13,10
1 J# v6 M U" x db 'The results are as follows:','$'
; X3 K/ D5 m i g$ q4 }; ~) L7 h0 B3 p R& D( G; |; U
cont db '________________________________________________',13,10
3 h6 n) r7 v3 Z z+ K db 'Can You Continue(Y/N):','$'
4 t+ `3 H/ x- T; z0 d& O
5 D7 K! Q. Q) q1 a4 H# s' v; S+ e0 y2 {cp dd 50 dup(0)5 p: [4 [. C3 L, G
data ends
2 C! ]. w+ a7 m% a/ I: v. R/ D" k' a# J% A( F
code segment
& {) O( \ A6 |7 G: Rstart : mov ax,data9 {7 f% N, B+ o9 E) k9 L
mov ds,ax
b" S( g$ C! A. R- L call prop1
( z+ T* r" {% i+ r+ U mov bx,offset table0 ?- T3 m" y1 M4 o/ e! }1 q
mov si,0
5 t! a( i0 a/ W2 ~( b) U mov di,0' R7 B& K7 v& s3 T2 z+ a* s
, }2 u- d& o% R5 Z% L
. g' J0 q: i! h. N7 T
call enterchar7 I( `$ d4 [' D9 F
perp: ! `$ ?9 T: Z8 b+ d" @
dec si
( ~$ G" D- r6 r4 ?3 J8 K3 ^ mov dx,si
& \" E! l+ _* B: {- L inc si 0 b8 u2 m/ E3 I
mov cx,si
8 z0 C6 _) c, U0 j call arrange
. Y$ v2 { ]" E& I ?/ b/ Z8 ]* _& F call prop2
* O4 }8 h8 Z# |2 S, D4 x5 M call putchar8 F( G: [8 B+ C. P/ S
liang:
, G, x( O: @0 q) z5 j: {, z call Continue1 f8 V' r' T( {9 ^" j3 A0 K
call judge+ j. n6 o& E/ y+ N/ v. t! j6 X8 o; L
mov ax,4c00h
7 ~+ V2 d, O" {; Y& b int 21h2 `) Q: ?2 f% A+ c
2 O3 c* }9 Y2 B) x2 S" _& c6 R% g) s7 K
Continue: enter
* n, n- g5 `7 k5 _ mov dx,offset cont
/ e0 {8 ~# m7 [, s2 A: q! [ mov ah,9h
9 L: e. @ `# `/ M0 M. c int 21h
5 _, T0 I! n' }' j. u3 k2 {) H ret
8 w0 b4 T- Q, `- x$ M4 Z- F5 `: |+ G5 L0 H P, g
judge: mov ah,1
! H- @: J1 U6 ~! d, E7 A7 B int 21h
! _. N3 [! w0 k4 ?& Y( C1 o, \ or al,100000b. z% t' D. n. e; b: A' `: ~
cmp al,79h2 x& K; w, C. ], L6 J* h
je clear$ J: R$ @* l9 H* x
cmp al,6eh5 k) n" B' g# F) L
je endj
4 j. A' t9 @' K: @$ H, `9 C' u2 J jmp liang, G1 W2 e* }4 g; w
endj: ret & i3 B' h8 Z" Z
$ o& ?0 p# L6 h: D, d
clear: mov bx,offset table
( `% \% W; k9 h2 u2 K- E. @ mov cx,300& k) [( z$ p5 B" x" [) t! B, j
zero: mov byte ptr [bx],0
0 P) `, U& n# J$ c inc bx
0 O6 @; s% r1 ?+ X! L$ h loop zero+ ]5 L l7 F% ~0 M( F. J
jmp start8 i+ U6 s ]0 L9 k, H: f" h. i
# _! S3 T$ i7 w2 s+ @/ b
+ d$ k* d P! b% t$ m
enterchar: mov ah,1, C( d/ s" p& z2 U! Y' g* Q2 |
int 21h, b' u! A9 ]6 \3 Z8 _
mov byte ptr [bx],al
$ `& O4 {0 i, E7 [5 s& n% S cmp al,13
# p# S: N0 a3 K5 q3 V je endchar
9 n ?5 K! v* a4 \ mov di,1
" c) X! d5 l7 q inc bx
# s/ @8 V1 I! y: D4 c/ J$ U* u jmp enterchar
& ~* V; W$ e6 q* e( d
2 |# F* F: t; j( V& ]* |1 R. i4 }endchar: enter % J5 \3 c9 \' s7 S
mov byte ptr [bx],' '* A( j d8 |* `2 I D1 A
cmp di,0: B O5 M- A/ G6 P: y4 T
je perp
& i7 P+ U8 ]: }* i* L7 { inc si6 Q& J) @( C% a" @/ @
mov ax,si
- H6 h0 g3 N4 E$ ?7 q- f4 ] mov dx,21% k0 T. H9 t% K) C- G
mul dx* ~: _. z6 S! }/ }
mov di,0
/ t6 j* O- l1 F) U' Y# T mov bx,ax 1 {7 d5 ~* O! G
jmp enterchar7 p! n$ `) r, l7 r0 p3 w
) j/ ]5 E% b; f. larrange: push si
& P( `# D' w0 E! b7 H! Y7 q push cx 4 b- R& i/ y' t
mov cx,dx + z1 _2 P) G& d6 d
mov si,0
! p& G% `" l, n( L mov di,21: N% M& L) g9 Y+ j
' _5 r2 l/ V1 ^s1: push cx: o" A. [5 k: F8 e, n
mov bx,0
' C' q u! K2 x, x: }7 x& f mov cx,20/ O8 F; ?8 |, p. b
ss1: mov al,table[si+bx]
7 I: d! L" `: z+ a9 @4 E cmp al, table[di+bx]
7 O" M% k `( p1 r* X- B, R. j1 | ja jiao
, D' K0 L& y3 O$ B# A4 W jb s2
& u, m, G+ M9 \) P0 A inc bx
% d% E) V( F# C) v3 q) {) S3 |2 U loop ss10 T- U2 `/ e- w7 V* T) W
jmp s2& a3 r7 Y9 a) `; g1 N* r2 i& D( b
" q4 K- p8 T4 I; e9 f
jiao: mov bx,0) X# A9 _3 p4 H0 r D- V5 U6 m! `4 H+ ^
mov cx,203 X5 d7 B5 |5 Y2 |) Y
jiao1: mov al,table[si+bx]: l! g: C6 }! V$ u/ r
xchg al,table[di+bx]
) c6 R; p! Y* V mov table[si+bx],al: U+ l4 S5 D. u2 z; D3 \
inc bx
+ ^1 @: g8 w! P: V7 H6 L loop jiao1- e: R2 s, O+ l* h7 t
' A/ ^1 p7 @% l7 t( ps2: add si,21* t$ F v7 _6 b
add di,21
2 o; p5 w6 @$ H pop cx
. i3 U `. C% P2 z* _ loop s1
F' U* F' P. H6 S7 M8 l$ K
- t0 O9 M! x& l9 ^9 t+ u pop cx
- H+ y& Y2 j3 E& j3 r2 j% a" l pop si& N4 D$ W1 H) j @* j0 \( A
loop arrange! e( R8 l% I9 A' g6 ^
ret
7 i- H2 ^7 M. {5 n9 J* B
) K: L- F7 S( _! C( L" ^. [( qputchar: mov bx,0
$ H) G/ M7 h: m2 P8 u: V& Z mov di,1! I8 v( Z9 X/ l3 U" r7 h: g9 F
8 p) Z# Y/ U' ^2 e M0 I' d
9 r; |4 w9 J* @0 F! P mov cx,si7 G# R3 e6 t$ b K
put1: push cx( @+ n" K u2 N8 k1 V7 ~: v
push bx
2 a- ?2 r2 k2 X1 J' O) v( K $ l' X( [+ w B, Z: q6 R( y$ b' p/ |
enter3 {# N) P' ^/ W. l3 T/ ~8 x
8 ?5 `; {' M, s/ t9 P( Y( p0 g
mov bl,10
6 [. B* g8 G; L9 Y5 b9 R- b mov ax,di
: ^0 E- X9 Y" a x; Y div bl
* s p a# m, o mov bh,ah; i" V* ^: U" O
add bh,30h
! y: @4 y M* K) o6 x7 e add al,30h
& T3 ~7 B& `. I4 f% d
( J* h, T; j, d* T0 T0 W mov dl,al
% |- u" i4 }* |9 p9 I' n mov ah,2
( k5 C. F3 ^4 l int 21h9 Y0 J# |% S# L. n$ v( Z6 K/ T
mov dl,bh
6 `2 @# M8 H% U% K+ G mov ah,2
5 s$ F. @: L. h. O [" V! E; a1 G/ p int 21h
1 h* N* }/ h9 ?" L ? mov dl,3ah
2 n4 }, B( T- p5 J mov ah,2 |. ~( L1 D! k) @' N6 D7 X! P& F2 D
int 21h
; p7 T& Y5 t/ r0 J1 y9 E pop bx $ q5 a8 d$ y1 _3 {3 Q/ [. |" L
mov cx,20
/ \ Q7 A3 Z3 U- t* N push bx, O# K- E: f. B* J2 b
put2: 6 C) D3 Q8 H% D( v) {
mov dl,table[bx]
* d( V1 X& @8 B! C. S" N mov ah,2h/ \3 l* \* l7 }1 O
int 21h
2 x7 |3 p$ t* T; w2 ^% y% ] % _0 |4 [# [+ i& Z8 ]7 n: k/ q" S
inc bx" ?: q4 }6 F, M
loop put26 j3 r' g" B8 r2 J6 E3 |
inc di 5 _) x" \- P7 [9 o- g
pop bx
' t9 ?+ h# F& w* f3 l add bx,21
' _+ V$ h4 x. N pop cx, W! w% a/ t2 V$ c6 G" B$ _
& ?) C% m; n# t: a loop put1
! \) s; i+ Z4 M" ?0 l2 U ret
G, F" g1 X# h$ O# ]8 x& U- |# r6 h6 C0 f+ \
prop1:
4 U. Q5 ~4 A+ _# K2 O mov dx,offset pro16 b! z1 ^6 ^0 H& L1 {# ^9 K, ]" S: ~
mov ah,9h) z7 p% `! ^: K3 K, r
int 21h
+ C3 [; q1 ?4 p( E8 V# l enter
1 V' Z: M; o1 X8 d, ? ret9 @9 N( v) I/ b) ]/ z
. X* P# V! t. R
prop2: enter
5 G/ G* A) E# F' r mov dx,offset pro21 m7 S; F @* m, V
mov ah,9h
9 @$ _& i: ~$ o# n& q int 21h
3 z g1 Q4 w) D- j9 d8 f ret
1 q' Z( B% n2 d4 P: K) P
4 f3 V- M& n; t `code ends
N4 O' a1 ?9 Hend start3 F4 Q8 t( |! `" s
2 x# L8 p" A. |0 ^' X
# a% p. v. a( d2 L8 K& a. U |
|