|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧+ P: i/ R8 g+ p1 h* e6 x- f
enter macro7 s& f& O" ]* j) C& X9 Y9 L
push dx7 R3 p5 h6 ^) n/ Q7 r8 F
push ax. P- u" H/ k, P5 l1 y8 |
mov dl,0ah. q4 V, W' }1 J; P( E) I; y
mov ah,2* Q1 H+ ?' }: c
int 21h8 B! B2 r. @* U
mov dl,0dh
7 O" A3 w1 d Z mov ah,2+ r- ~. D( s0 n9 Z/ w% n, p) x
int 21h
1 x. N. h% f2 b% c pop ax
; X, j9 U! T' R3 V$ V- o3 ~, v pop dx
0 @* q4 k; T1 V) A; }# Qendm
( {1 I, r6 N; b# g: X
U! {: K+ [6 Y2 N4 E, ]7 Passume cs:code,ds:data
1 K- }" I5 L7 R' Mdata segment+ i- }' }9 G4 b; i
table db 300 dup(0). s5 f# W# {1 R
pro1 db 13,10,'_________________________________________________',13,10
6 Y6 Q g; f9 }0 p: }/ A db 'no more than 20 characters English name.',13,10. a0 E8 R/ w- m ~* | h
db 'For example:',0ah,0dh,'liang xin hui',13,102 ] J, d }# T- q/ _; }" k
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,100 k8 o* L# t8 K" O" q5 ?0 D, i
db '.................................................',13,10' a6 w# {/ L' |' m3 u) k
db 'Please input:',13,10,'$'
8 G ^; S- n8 [& W6 Epro2 db '.................................................',13,10
* @) B# K" |: I5 J- S db 'The results are as follows:','$'; ?$ y4 n: B! E( c
. P2 t; N0 s5 Q- b9 zcont db '________________________________________________',13,10( m9 [% u J6 A; {
db 'Can You Continue(Y/N):','$'" o K7 O; x, D. {: |2 E, m8 B
+ E" H1 `- g5 N) }4 i
cp dd 50 dup(0)- b7 D0 D8 [. C9 S" m+ I3 ]) f, l
data ends; B3 t! J4 S5 k6 Z2 \9 [9 }& Q$ H
1 j' M/ n& ^# B7 f5 Rcode segment
: O; ^4 d- j' Z; ]) ~start : mov ax,data4 ]- r, F" D6 ~; P
mov ds,ax8 e4 V7 b( r9 U
call prop1' U" c' G% N, O7 e2 Y# m9 Y- \
mov bx,offset table9 X/ z3 z1 E4 k' i+ `8 P' \
mov si,0
A! m4 t: h. k$ _ mov di,0
. P8 `" s0 `. ~# q0 F
- S& F; a) t" n; J
' y2 u2 R z1 S: E; \& p call enterchar! j% ?: A0 z8 V" n& L
perp:
( O! C1 F5 B! S* c6 x" _ dec si
& x7 W, W3 B+ \1 I* w* L# o mov dx,si" R. y0 h% w! U/ x& _2 v3 i9 T( z
inc si
- y6 d9 j& ]. u' N m5 v) Z mov cx,si5 l& w% K5 O+ v) U+ d4 k+ C1 k
call arrange4 l9 a. Z9 R- @1 q5 [4 U% C, {+ P$ B
call prop2
( A4 |* V4 f( G8 E9 x$ e' p) D L, v call putchar# Q4 {8 N6 g9 ~1 I4 y' U
liang:
) D; j7 _1 [ [: ~ call Continue
0 V+ r6 U% ~7 V5 @0 f call judge
. k. x, x; p* s# y5 u. ?5 ~ mov ax,4c00h1 i* \7 S4 T" [; M* x. p! A
int 21h
+ J) ?' P0 @# `% q: \- _( u" c+ d- m+ X, J
$ E2 `& T8 l- z& a" Z2 nContinue: enter% E6 p& ?+ }" T2 g: i6 ~4 b7 M
mov dx,offset cont) n% } ^9 X! \- \ z) Y
mov ah,9h5 O: i, l; t. j0 w" L b
int 21h
5 r/ g* z1 B& P1 t& \ ret 8 |: L- X+ r% p6 ~" c6 n
% i( }- M( u1 D! W; b* A0 c2 ]judge: mov ah,1
, Z$ u, x# T3 d; L int 21h
9 m4 L8 L4 I. }+ Y5 p2 ^% @; d or al,100000b
3 W. y$ T$ t. y7 y; Y6 a/ ]* O cmp al,79h( e Q6 a3 P/ Q+ j5 O
je clear
7 O4 T2 G9 `1 e4 f! p% f" V cmp al,6eh' e- i- `7 v- r7 I/ [2 d, |" q/ m5 W& y
je endj! E% b ?# x i/ h
jmp liang% J: [# |8 Z% l5 {8 L1 X
endj: ret : f9 x9 q8 `+ {9 e3 U
! d) Y: `$ W# u$ y2 Qclear: mov bx,offset table
+ S/ S6 d5 N5 T+ z) o mov cx,300( t: Y: n2 F" G' {/ Z4 ]
zero: mov byte ptr [bx],0
* u* U* ~" p8 T% k D. x9 |! u: z inc bx
) k: {) F# K5 Q loop zero1 E5 @, I# t0 q" _ |
jmp start: Q8 M4 w. u( m3 l, d* `
/ b9 \, G* J2 @1 h) j) _
/ l/ S! b X) x2 `2 |: eenterchar: mov ah,1" y. b+ @. s: `$ L
int 21h8 P& J7 F/ J3 E) Q, t
mov byte ptr [bx],al ' y; v. Y+ i" b9 ?
cmp al,13: w, v( f: H0 m
je endchar
( D2 U7 I, v+ h5 A3 S mov di,1& I5 p; ]% t' G7 n3 J' Z4 q
inc bx
- }3 u9 J1 j5 P jmp enterchar# `' w; b6 `& O8 C) q2 V
4 P- W+ C' F; c; H9 B" h' J% f
endchar: enter - N0 _: q' y0 ~* h6 h U
mov byte ptr [bx],' '
& m1 i7 r/ k+ Q$ v cmp di,0
j( M: m& d, Q! R$ u5 ^ je perp( s2 T; x; U) R! E2 r# [
inc si
2 h' h. j4 ~ Y mov ax,si
; y6 {. y8 `3 V( r% h7 A0 @0 o mov dx,21
/ x5 ? Q1 z% g7 x mul dx# E% D) r% p% Z( G- h! B3 _
mov di,0# M2 j- ^! ]0 ]( _0 q& X& p
mov bx,ax
3 i% w1 A* O6 h4 E' U jmp enterchar
) V P2 U$ N& O( Z( E. P$ I; L4 C8 r/ x& L+ e: T ?- a( z$ v2 |
arrange: push si3 ^# j9 C4 U* Z% D8 f6 a$ p- x |* p
push cx
8 F' L1 Q4 V( g0 E. v M, {9 X7 X mov cx,dx
$ A7 @) B9 d% J2 k2 } mov si,0, c% G+ h- Y) e/ ^0 k) g
mov di,21, B: ^% I! B* |
/ j4 W _; m( r! X! qs1: push cx
6 f" n% m! l) v* t& R mov bx,0
$ R3 \- p8 ~6 R0 ]# D) W, [7 R mov cx,20
+ \9 h" ^" f8 R2 rss1: mov al,table[si+bx]! I4 P& r1 P" b# [2 [
cmp al, table[di+bx]
2 Z4 \ _: v2 `/ v3 n0 [" Z( @ ja jiao
" F1 w8 |5 A" |+ C jb s2& C% x& o# y' x6 G4 Y h
inc bx
5 |9 d; z6 s0 v+ \- y% h loop ss1
, q8 Z* O4 ^1 j/ |+ V, W i' A% K jmp s2; r9 t3 }) x$ K W
" I2 c: @* S* f7 w
jiao: mov bx,0
* W, R) q( w) J: U3 W5 s) X6 x/ o mov cx,20& D9 Y F: a! C4 B0 z1 m
jiao1: mov al,table[si+bx]$ X0 s, H) X+ E) b
xchg al,table[di+bx]
W" O: }( D2 [2 @ mov table[si+bx],al
# n( O2 t/ R O( a# g3 S inc bx4 e. ^- W5 {& q' H
loop jiao1' I O+ g* ]: G! n$ M" f7 Q8 p
9 @ P# V2 e& |7 X9 s' l9 t7 R: m/ Es2: add si,21
- ^! k6 r. A/ D9 Q, m4 W) ` add di,21
: J0 t" n1 }1 J( s+ Z) e pop cx, Q. x- Y ~$ l. _
loop s1
( P9 ], {0 ]2 e( h; V& h' l
0 e: C" D: t9 t1 u; c1 W pop cx
: g/ v/ q u! G- g pop si
- ]. U5 E. C! i& P& b' v loop arrange; M% n) E% c9 U$ t4 k& Q- N. W
ret/ W' ?% E8 W% a$ O* Q4 g6 J
V( g4 O& `3 J2 g5 {% oputchar: mov bx,0
) A8 B1 S+ m; Z G/ M) n3 B mov di,1
' j. { S* l8 j2 n( N
: c' z& u4 m3 T1 C2 T9 H& m. s 7 _; w( T. [6 D( }$ N/ n
mov cx,si
1 l7 P( O+ r- t2 I) [& _put1: push cx
5 E/ W0 } i* a) V7 c4 ^% e, ~ push bx
9 O+ r2 {* U0 \+ m6 e
3 n. p. \1 U! |" n; d& Y; d enter
' B6 x: D1 h/ S8 [$ Y3 P ( `* \ C" f6 B; T0 u" H2 @: X, r
mov bl,10' g$ p9 x4 k- }; ?. O
mov ax,di
9 U/ U; H" N! i# j) z' d div bl) C0 b' d( i. Y3 e! J( s e
mov bh,ah* A0 e! L6 F1 ~/ d: N
add bh,30h
8 d' O) @) W; Z- S8 K# s add al,30h
6 b7 [3 S9 |1 y- d ! x5 I: [. B. j8 X- l
mov dl,al6 R3 }; O1 |1 p: }( u# F* y9 c
mov ah,2
. Q% ^; K* G: U& L& R& s: o- G int 21h
+ ^$ E& t# b$ o- w( p4 l3 j mov dl,bh1 R8 M1 J) ~, J- V
mov ah,2
$ H. s& M7 C9 G# k. M int 21h+ @ [7 t6 A; i& o4 s$ d
mov dl,3ah( V1 N) u- g V9 i: [: |' }$ C4 W0 J
mov ah,2
8 ?9 U. m0 X4 }' n% Z int 21h* A8 l# p7 g% x2 F/ z
pop bx
! R0 P* b, p% Y3 u6 y mov cx,206 u6 W" @: h: [3 @) D
push bx* [2 y) u" i9 L1 O
put2: , r( `5 a, [; S% m7 \
mov dl,table[bx]
4 N% d; l" r$ J% I( o mov ah,2h$ k0 l; q: A/ |, j- ?
int 21h
) v4 i9 f& U6 H/ }$ H" d2 P; M 1 _* V& R8 Q* Y" j) Q8 @
inc bx3 |0 G- Z: a, C
loop put2% z" D0 y( ~9 @% B9 E
inc di
/ p2 m( X, Q3 s pop bx
* d( Q, u a9 e. V* [$ k add bx,21
+ B# \% B9 h+ h" {3 ^ pop cx
% |9 R' E1 ^/ o 2 \5 r3 `, u: {" b$ m- t
loop put1: R/ g$ ~, j0 x% ]
ret9 h) | v5 b" l% N; [
/ L( j4 c7 M7 b5 X, ~
prop1: ! A8 f9 p0 N' F3 \! @& w
mov dx,offset pro1: Q+ e k- C' S9 L9 W* q
mov ah,9h
S/ V& B: R3 E$ }7 H7 U1 B/ G int 21h& U, E" n) [. f0 l7 j
enter
# a$ [2 [- }6 J' u) L ret
( e S/ n6 p7 x7 |" k, M0 {& ]) o m3 @6 y
prop2: enter0 z Q; U( T% q! a
mov dx,offset pro28 h8 T3 U7 w2 V7 H
mov ah,9h& b& H' a \8 J6 j. J. f9 t
int 21h
* M- `: e, p+ u0 o ret& W8 z. x1 i/ f1 u, s; j2 p
% }6 d. P' @/ o* {
code ends
& i" _3 M/ u& a+ J2 _end start d8 P& w3 k% R5 C' L% S# f9 W4 A
; ~& H1 s7 Z( O/ P
7 P2 J; R- v! ~ |
|