|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧 u" L$ O; y+ A
enter macro
( _" x; W2 t0 u. p. m8 D& x8 L push dx
$ q$ y! R0 v! E: h push ax
: m: Y% l8 M( E4 v) G0 [- j mov dl,0ah
+ {* c5 u }' V! a. K mov ah,2+ P2 S# M( I8 p* h
int 21h+ \4 g! r7 D! ^; N' e k
mov dl,0dh! f1 y, ]" U! S
mov ah,25 |/ r- `% T) d/ _0 H9 i8 A- H U
int 21h
, T9 O* P& B: t1 _, S( n* w& D pop ax
* r, ]/ N8 c9 Y2 e: W: q pop dx 6 r- C4 W) F4 V0 v, |
endm
6 T1 ~7 F( U* l1 L
0 S& E) y1 M8 T$ fassume cs:code,ds:data
6 l! P, p" q8 d# H: j6 vdata segment
- a. U7 n9 m" L4 \3 a, ntable db 300 dup(0)! O3 h) z, B0 q! ]- b2 @7 Z2 p- s
pro1 db 13,10,'_________________________________________________',13,10
; a/ n X$ x) J& b s4 p db 'no more than 20 characters English name.',13,10- O. k0 |8 v8 t
db 'For example:',0ah,0dh,'liang xin hui',13,10
" D; s8 D/ \8 ], {/ q: K0 r db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
2 D4 Q" c/ }5 P: B db '.................................................',13,10
\8 M4 H: m1 x1 ^! X db 'Please input:',13,10,'$'9 m% [% }% o h; `: t! D
pro2 db '.................................................',13,10& O& U: T5 p/ Y! {% f
db 'The results are as follows:','$'
* v$ d4 O1 N3 W) V7 v% k7 {# t/ |$ A: V
cont db '________________________________________________',13,10
# h" w9 R* O. N$ E3 p) Q& X7 b db 'Can You Continue(Y/N):','$'6 _7 k8 D+ o) y/ D: p2 o# U: H
& E9 |' ?, Z/ B) r
cp dd 50 dup(0)/ j1 w1 R; _4 t" h
data ends0 J0 `: B5 L. a* p& N
6 s. f* L: n9 L5 c3 ^
code segment
0 {6 z) X2 P3 K+ h5 Gstart : mov ax,data
4 `' ]: U7 `4 B4 V m mov ds,ax5 O% ^$ a& q+ m! w; p+ I$ z! T
call prop1+ b# b1 i: F8 n8 B) k: Q$ t
mov bx,offset table
7 D) h& U% P% [7 j* v1 g mov si,0
* y. I& C3 E( a' |; r$ _1 S t3 Q mov di,08 L% V! Z6 y6 v- O
% N* f& T! X$ g. t0 L# Y) J$ ~
; M- o [ r, R o2 C call enterchar( N& v' U* v# Z" y
perp: 0 k( [! ^6 F- w& U0 ?4 L# B8 ]
dec si& a/ ?0 T3 |* Q! l$ d8 v- X
mov dx,si) e0 c0 }7 S- W6 q" |2 ^
inc si
/ b( P7 s) O" S7 Y mov cx,si
5 X6 h: ]! F2 S& ]# w- I call arrange- V8 f$ }( M0 m! v. B+ F
call prop28 ^3 w5 {2 `0 z1 d, a
call putchar
2 F! Q2 ~$ L( C, R8 W& Y t6 gliang:6 V, @( v3 {2 t g4 R" m
call Continue
[& A9 [9 x) o. {& s* ?2 ] call judge& S' ]- {, q+ j' V# A/ j9 @% M. C
mov ax,4c00h6 O) _5 @' {) \4 ?# T- Z, U* _
int 21h+ J7 h& D _' s' l
/ T0 M) s, s6 G+ ?0 C& L1 W0 p% K6 y; \* |1 a! |( V
Continue: enter3 O) Z" N9 S7 ~+ l
mov dx,offset cont& H1 m* [; M( s4 ~
mov ah,9h8 N! J* g6 }/ ]2 Q& c
int 21h
- m' R# w! W. F/ D+ Z, ] ret & C, R8 Q$ n" K
: ?5 k. F4 S8 Q# |9 U1 G, s! i* Sjudge: mov ah,1
+ r- x$ ?4 C' T+ V- } int 21h
8 S6 x( s( @- ]# e( }! U2 ~ or al,100000b6 ^! Y0 a: a& N6 D
cmp al,79h
& e' d% t3 `" m( K$ s6 w- W je clear
7 d `( B. G' t- q" ?$ i9 I cmp al,6eh" o' b2 I( f5 I7 C' I2 h4 a" [
je endj) v7 o3 g$ `2 O% D
jmp liang
( `% o8 y+ ? E4 P! n1 W. Lendj: ret 2 k& T; G$ S8 a* _; z
7 W) Z9 b, O3 z( kclear: mov bx,offset table
" w8 o8 T- C D, Z5 x ~7 g& ^ mov cx,300
7 E8 Z G5 X8 C. a$ Ozero: mov byte ptr [bx],0& n4 s* n9 @# ]$ Z; ~/ ?
inc bx7 }$ X: U+ ~- ]+ c h+ j! G
loop zero4 l; ~6 I6 ~3 J! _5 {; r+ p
jmp start
6 [2 {( [! h) n' d2 q2 Q. i0 C8 G" H. t1 \0 X- m/ |8 w+ t5 F" v
- L. `6 Z" g) i( _enterchar: mov ah,1
4 i; M, Y, r4 B& F2 i int 21h) L3 T/ V9 ?$ k$ j# B( ~, E
mov byte ptr [bx],al 7 b* t, m1 Q8 ~% u" c
cmp al,13
8 m" A; |% n0 _* B6 s je endchar
y0 Z6 g8 R/ O# o% q( G0 u( ] mov di,1
/ D- V! f. G8 g inc bx. S( Z8 R1 F' B. ^
jmp enterchar$ a5 e; ~6 o( x
2 r; T- r! y) u* ^
endchar: enter
" D4 X! x/ |/ x$ s4 ~6 V mov byte ptr [bx],' '0 n. y7 W# u) e9 {9 ^' G1 m
cmp di,0
4 M5 Y5 ~; Y$ U; T) H4 U je perp; H% u& C( t4 D% p( V/ J' o
inc si
& X0 e# ^. K8 O4 F mov ax,si
; o; B1 o/ v5 R mov dx,21
0 i, V, D, h, P, C9 Z U8 J$ \& F mul dx# n; ~( J5 u4 ^$ X1 E, W
mov di,0
) `% @ J6 j: Q' H r5 Q mov bx,ax
* H; B! ]% K% t0 G$ Y jmp enterchar; S; x2 z0 x9 E
& Z9 n2 [3 w! p: ?0 \( f7 _arrange: push si; p& U3 Y8 V. y T" r1 [% |- r
push cx - R5 \/ K9 J' Y! o9 F
mov cx,dx : ^, v& Y* F# g6 r) i0 H- j3 u$ K
mov si,05 i( @- p8 W4 ~# m4 W9 H
mov di,21
7 X$ |1 r$ D. U5 t- D1 F2 O5 P8 c6 p0 Z# i ?% q! V
s1: push cx
8 X9 M& Q7 L9 R% c5 ^& K mov bx,0* N7 S; K9 z9 _4 J
mov cx,20
6 O' X- I8 x2 {ss1: mov al,table[si+bx]
- {5 _: G. X9 z0 y/ `( b; K cmp al, table[di+bx]# ^7 [8 ~( z2 u' m; @
ja jiao
3 \' T( I8 {# J jb s2! ^3 {0 O" Q, c8 Z5 N' w) z, F4 q
inc bx
7 a+ C( Z9 }4 w loop ss1" W1 s! w4 s9 B. s4 y
jmp s20 _$ _. U& ]4 w- ]
J: ]. t9 M/ L& s5 Y6 S
jiao: mov bx,0
3 |" a' K: N+ r0 N- c4 ~' ]/ t# }+ ?: Z mov cx,20
% `" m# ]5 _* e' u5 O# wjiao1: mov al,table[si+bx]5 E* N6 O0 ^9 V' C
xchg al,table[di+bx]$ ~, u, }: g- h E6 I6 l& y, B
mov table[si+bx],al
9 w# \. [7 r# S) ], k0 t% } inc bx
3 s5 C- v" E% c; L loop jiao1
; e Q; h* _- M
5 L( s- C- t, H* T3 m& s$ v: bs2: add si,219 S- u* ~- k) N
add di,21
" S( J+ I; _$ \, p! ~6 F pop cx) n! C5 p5 d' D1 }; J- x, h9 C
loop s18 r% ?* g6 a* M: t( @* E4 I8 e9 f7 u
: o5 D3 m; J! X9 L+ |8 t+ F- Y- G pop cx
; N: e9 S2 e6 z! z pop si7 V _* m( N) L' [" Z& h* s; K
loop arrange
& W3 Q) F0 i% n3 ~' \" J ret
8 u% E4 }5 }) k! _
" e* m. s* b; y0 l6 uputchar: mov bx,0) j8 O* l0 w$ \% L
mov di,1
$ P* _! _- e1 p x
" U, x7 c; c6 A- ? + i: d7 b- T, p# f
mov cx,si
) t; e2 e5 M* B3 pput1: push cx1 n; G' g. h4 Z& V
push bx
% i6 l O" m7 O3 m$ f - N- C" R) g7 z+ q3 _6 E
enter
: N) p Y5 L& M 5 v$ e' X/ g1 }
mov bl,10% A3 t) R9 f6 h
mov ax,di3 J& N# v7 l' L) o0 V: {. X" v& _
div bl7 m* f) \% ?4 e
mov bh,ah
' v F$ \0 A; [+ d1 ~ add bh,30h9 O% ?1 @8 _6 W, s, ?1 f" c6 T/ E
add al,30h" r4 `/ g7 {& q, w
/ J1 F5 B) H/ I mov dl,al3 d- P2 `3 I, E8 L0 U. D
mov ah,2
4 N) r: l7 f" ^% m" M int 21h, Q# ~2 O1 C% z, n6 T
mov dl,bh
5 g5 p% z( K2 t! ~+ H5 ~ mov ah,2
8 Z# ^* Y" Q& l* S int 21h5 V k7 v7 M9 \! B& D
mov dl,3ah9 C; ]8 o+ n" G6 ~& x
mov ah,2! W" Y- d) H6 k+ K+ [! ~7 N
int 21h
* r: r1 q9 }; \- x+ W pop bx # {; Z6 s: F% ]$ t/ ^2 h1 X
mov cx,20! z4 [) V. S# x- r; S& D. J
push bx
; |# s) S4 A1 T* B4 R4 r$ s8 k4 e5 t( Xput2:
8 _, _% z2 h7 |" F. n mov dl,table[bx]
- Q. D$ b. |8 W) V: [! f8 N5 ^% Q0 R mov ah,2h4 K& x+ N! w& r
int 21h
7 F0 L/ e3 X1 B1 Y! a4 [2 { 7 a- h. A' q/ H
inc bx5 U) `7 y. {: Q# D. V
loop put2 {; `- y& Y! H7 l8 z
inc di 4 [. U9 `* E$ g! h& g
pop bx% a: n3 o8 f* N8 s( B
add bx,21
2 R" d" p8 c: ~ pop cx. d' f4 \; V* r% h
) L: u8 a6 E$ Q; N- A2 Z* O# H! Y loop put1! W( K6 Z; ?0 Q/ k
ret
( d( n, H8 g6 W! _" _5 I0 c
R o% E& }4 O$ { u2 oprop1:
$ F7 j2 n3 }+ L- P- o mov dx,offset pro1
7 d& w+ v, d3 V* A mov ah,9h5 k4 [: i) y9 p
int 21h2 I/ b9 O- M* z
enter ) J1 k5 q( g& v* p% c9 i
ret. J8 Q. U7 O* N" R# @1 m+ f
# v2 x, U3 P* f
prop2: enter: a9 L/ C' ^; x5 R# `+ I) N
mov dx,offset pro2
# E# i" J% h: U( D3 ? mov ah,9h9 C" d2 j0 q Y& }# a
int 21h, N" B8 K2 Z8 A2 Z1 P
ret
) b* ~9 R% }% ]! e: W9 \1 t
+ t! c% r7 g4 ^8 |code ends
+ P k6 q% s R4 O. c2 f% Rend start
# r/ e [/ M& B- Y7 R* p j: a& H0 P- X+ _$ ~8 V
" S! {" N& Y7 \/ D; s* R+ N" p
|
|