|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧; `) s# h( p% R
enter macro
1 T, E$ [5 E# V+ n( z" A0 C' S push dx
9 s$ z. }) o; X7 p( L6 J. T push ax
/ X( a: p! n+ U( B1 y! I mov dl,0ah) V$ l: G6 f+ v- N. a7 g
mov ah,2
6 e: k/ c. _7 L; V( x4 c' L int 21h
, Z. n& v+ j# N1 O) D0 |' y( d mov dl,0dh
2 h. h: J6 Z: L mov ah,2
1 n. ~% o! N: J2 p8 J int 21h$ T! Y5 c, }6 }! Y. C
pop ax
: ? w7 B8 V1 W' a2 |, l8 ~ pop dx 8 h& |' P% [1 u" I, H F
endm/ O3 U2 j+ ^# t7 t
5 J5 t ?( z) d0 D
assume cs:code,ds:data
8 H& r$ M; I2 i Fdata segment
" \! L- H6 y" h/ N' htable db 300 dup(0)- p1 W' Y3 K, H" t/ u G3 j! P
pro1 db 13,10,'_________________________________________________',13,10
4 O6 J: e" v7 ~$ A h% c db 'no more than 20 characters English name.',13,109 {1 ^- K0 O1 r6 N: U6 `
db 'For example:',0ah,0dh,'liang xin hui',13,10
3 p8 A$ |1 p9 Z db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10( L0 M& q M6 t# o% ~' I0 M+ A
db '.................................................',13,10% Y" p% B: z6 D( C
db 'Please input:',13,10,'$'& U1 B( M$ W$ k+ F% `
pro2 db '.................................................',13,10
) y) k9 x) z u* ^6 d db 'The results are as follows:','$') @7 O) n( y1 @8 g4 k( e! ` |
, K+ K4 H3 Q6 G
cont db '________________________________________________',13,10
5 J4 g2 d! w$ O: w9 a db 'Can You Continue(Y/N):','$'
h6 _$ Y7 [/ A5 S9 V$ a0 V' |2 x) G& Q
cp dd 50 dup(0)
6 h9 Q% I- o/ v1 m6 t) Y: tdata ends
. _$ ]! J3 m1 x3 ^$ C1 F6 W; d4 b5 B6 r$ i, M# r
code segment
% i c, {; ^+ ~$ Ustart : mov ax,data; M( T/ g" S/ p$ G+ [' j
mov ds,ax
! o" g1 H/ a4 u' [, L! o( ^) q call prop13 o" A* J2 B% X
mov bx,offset table
# [* J; ^7 ]7 B9 d8 p, w mov si,0. e4 s. Y5 M1 B& Y# H+ w7 d
mov di,03 R' o6 [& ]! x3 ?7 [
: M) w9 [' i; E# u; ]$ y/ t9 } / q9 ?. R' n: A3 Z: R
call enterchar% A/ R0 c6 }) n' X/ x# K9 g
perp: . g2 N M1 e& r; u
dec si8 K% Y g: }6 u$ M0 d/ ~
mov dx,si. [+ M8 ?( f3 g# \9 o( l) t# t
inc si 8 s. X2 k& C5 }0 H; o
mov cx,si% j4 t4 V& K& M5 |% U0 \
call arrange" @1 y( F6 G$ [* ]6 _/ T
call prop2& R5 @" K2 ^& r$ }4 d9 J0 i& s
call putchar i! V6 [" i, i0 Q0 h7 E( d
liang:" q$ X; _( Z# G# [4 U1 |
call Continue
' H$ K" i/ m6 R+ l# y+ K6 C call judge& O; o) n) s! Q3 s
mov ax,4c00h
* M0 i7 ?/ L$ L7 i; k% b8 Q int 21h
1 U7 b4 j! m: T; Z& z4 L5 b% l# Z1 M7 S+ T
& a. T- l7 H9 PContinue: enter! N4 ~9 j) B3 r; p
mov dx,offset cont
3 N' z+ Q! n( t+ } y1 \' B mov ah,9h' ~/ u9 a- I" O, |
int 21h( j; _& }: g, d5 j/ `
ret
( s2 }! I0 \- I& d8 O/ _6 j
9 B3 J0 Q! m; ]- t% Vjudge: mov ah,1
1 [6 n5 U. f$ Y3 D, R- y' f int 21h% j# U# O7 p8 U, b/ v7 I
or al,100000b2 o4 V9 k3 }3 t/ T; N
cmp al,79h
7 c) M8 s ]( I/ ?6 H- l je clear: M! X, Y+ }1 i8 i8 g$ X
cmp al,6eh6 D% N: G$ x, t; \# V k- n
je endj
- N; [2 A, k! ]9 W" Z5 ~. x' y jmp liang8 k3 ]8 ^& w! U( F# m$ F7 Z
endj: ret * Z. m8 `5 B! K
% H; ~9 k; P; C* @7 Y! [clear: mov bx,offset table: {( p- n9 N% A1 G, x
mov cx,3006 N/ F3 Y3 D3 z- C+ D: t2 F `8 ]
zero: mov byte ptr [bx],0
$ Z4 Y6 O3 v0 B$ a9 ~ inc bx) G/ t8 F' o6 j! T$ V) ~) _! q
loop zero+ f" l5 t2 k0 y' H0 b) ^% e
jmp start% T/ ]5 t A8 _1 ^
7 H2 S1 W, G Q: F
5 l6 g. G6 S8 F9 S% Uenterchar: mov ah,1
& f7 J1 E }/ p8 q6 h, X- }; e int 21h
9 i& g3 M4 l, J u% S" |; E/ N* _ mov byte ptr [bx],al Q$ E- e2 u: g' w- Y% P1 j6 }
cmp al,13
: `2 [1 R7 A* c2 E& Q je endchar
( z5 M8 b, x; p mov di,1+ V, C1 I9 l3 t% ^7 M( v% F0 J+ a7 O4 O
inc bx
9 ?$ ?, x9 Y9 A jmp enterchar
7 G3 J& [6 k! h4 B7 _+ G2 |7 l9 @" l* ~: ~6 f6 Z
endchar: enter 9 t: f- U/ i' B9 d8 k& W" H k: ?2 u( O
mov byte ptr [bx],' '
2 f2 |& F' H2 L9 {4 q cmp di,0% M: S5 v6 U: Z6 p" ^. t [( i
je perp
8 n2 n" S8 F% g; @/ e8 o inc si( O, ~' m0 l$ W# F# \
mov ax,si2 v4 u/ N, H( l$ o7 b
mov dx,21
: d" y+ m! m- K" s) T4 v/ n% k mul dx
j6 l1 o7 r$ P4 }2 o2 z; [/ p mov di,09 g: I: L0 }! h% A
mov bx,ax ! }. d; p: d# ]) D9 E* G
jmp enterchar; D) [( b( F8 ^) V A* h
) o2 Z/ \$ X8 H7 A: u
arrange: push si
9 W) [: ]# q1 f- J2 o5 K. {8 X push cx
) k0 e& r. x9 P: S6 T4 {. Q7 p mov cx,dx
h: M) J7 T: ]1 L8 d6 M& o6 S. y! D mov si,0" p2 Q( X3 @+ t c0 }7 P
mov di,21) x6 c5 j2 G1 M3 s5 \
$ ]* g: {' g }( v
s1: push cx8 d, n) X. y3 ]" v: T
mov bx,0
, R R) N( A2 s& K, `! j n mov cx,20' G5 N0 c6 f( t8 P
ss1: mov al,table[si+bx]
) R9 c. H- D" I0 M) B cmp al, table[di+bx]
2 S1 W M- m0 K/ V ja jiao
0 M1 A3 B6 Q: S! t& n jb s2
) K3 k$ B; i7 S2 F8 q0 _1 J Y inc bx( o) q9 X& o- z2 D- g3 d# a' f5 J
loop ss1+ k1 w1 ?' q$ R6 ^# A( A
jmp s2
$ v; X0 v0 [4 o+ l+ u$ U" j: D/ z- F
jiao: mov bx,0. n3 Q- _0 V Z, P( K C
mov cx,20
. D R) e. z/ p, U' V2 B# Tjiao1: mov al,table[si+bx]
1 \! U4 R4 }- V* I" P xchg al,table[di+bx]
- r1 x) Z, N8 h; k) ?7 N7 z6 ^ mov table[si+bx],al
% x. L0 Y& [3 S inc bx) O0 s8 m+ l$ s5 @) ?" o
loop jiao1# ?7 |' q9 u# h5 [. j
6 J) ^% t5 A+ |# is2: add si,21
3 h6 B* N, Q$ @$ }6 D& Q add di,21! x# c G- q! w6 C }% T
pop cx
) w( j P j, ?" R loop s1: Y3 [* F3 j0 T' `( ?, Q
# V, N6 F- i8 o7 { pop cx1 |+ @- S7 M% l# c
pop si/ i. i' p; R# Q: W( ~( }2 _3 E
loop arrange8 u5 ~6 L& P; K# u' Y1 z
ret
- n$ n t* m0 N* E1 n% e' p# r+ y& V1 R2 X8 w4 N# ]
putchar: mov bx,0
. T# I& H$ h0 I! g7 P$ A1 {% p: z7 a mov di,14 X: d% p2 U( x7 Y+ d
$ b+ J* A8 [( F; V: z ! G9 \+ V4 X4 R' f. ~0 L
mov cx,si/ t( e3 B& v$ M4 b4 D Z8 o+ y
put1: push cx8 M( h" b6 |# Z# O' \( B8 m; V
push bx
+ l3 h. p8 S4 b( z" c 6 B: q1 [/ G% p$ K
enter" ]. p; E* c# d8 y2 F, P
( e: R! w8 M7 N9 b# Q% s L
mov bl,10
e. S r7 R/ l5 c: @ mov ax,di+ M" }( z; x) n* f) \) G# c
div bl: @& U P6 O% Q0 r" d6 u9 e
mov bh,ah7 A# v( i: q3 z: J W8 A) E1 T
add bh,30h
- p" s7 D, B' r5 \ add al,30h
4 {+ r, G0 t& {" l: r7 S4 e; Y . z. n0 y9 H3 n# _: O% W
mov dl,al4 u- K4 H- |1 z5 w
mov ah,2& y# h7 [& h$ { r& m8 _; N/ B
int 21h
2 H9 J, H% P* C1 S! w8 j2 b- P: s mov dl,bh* l% ]" T8 c' k+ V$ m
mov ah,2
8 _: I( T1 w& t) ~ int 21h
" W" G- y8 _4 M% g# R# M mov dl,3ah
4 V- c( [+ I$ h/ o mov ah,2+ c+ p P* R. m% Z
int 21h
4 a. i" p1 q3 Z( {6 f0 Q3 ` pop bx $ [0 l5 U' P8 f; O6 q& t% M |
mov cx,20
: P5 b" f( \, ?8 r% R2 ~; M6 T( r0 k push bx
& k% D) v# W; W+ x! b+ Vput2:
( w6 B) P" j8 o y% ` mov dl,table[bx]
) I3 l$ G. O1 R, M* Z" k mov ah,2h2 A5 Y" Z% l2 B) T8 m! ^
int 21h5 T. b5 O$ H6 J) V
: j( b/ _" I, Y) y- x inc bx" P9 p( H( d: {+ n+ k
loop put2
: ^/ s1 r: n$ I# r k inc di
- m9 B8 N) l. [1 F9 c/ \1 n pop bx
1 E, W3 Q6 d& f+ H$ `1 s add bx,21
: W2 K6 M' d& w0 y! { pop cx
& ]! M# \7 W! o% s
' L# u# E5 D) M2 J loop put1
' z5 s$ H, V# I& y; l/ }& ^ ret
9 v9 u5 J/ c0 r7 d
5 J% [. ]4 M) C6 C! ?5 Oprop1:
" `( {/ D2 y t, H7 t$ C: g% G mov dx,offset pro17 p8 v2 I0 v8 K" W! o, m% y
mov ah,9h) G2 x" {6 K: a6 n
int 21h( e1 K3 A. u- a& z' O0 ~3 f2 _ x
enter
/ \6 P0 V' ^3 o# A% `2 c+ g ret
" V5 ?& t/ k$ A& k
: m- m D7 S* K5 e& C: O% |prop2: enter" h( J c7 g& P; S+ G5 z
mov dx,offset pro25 |) o# G& g9 K
mov ah,9h
2 E3 \/ C( u6 ^+ a' h int 21h
# Z$ p8 Y' y: }' k ret
$ W$ Q/ \; ]' f" N: |1 R
7 @2 `8 m; H# P' K2 Q2 ?, Fcode ends
0 y. J- f; X6 y9 W0 H1 oend start
. S/ r3 R& O7 T. e& j; v% }2 ]2 a; ~6 f! j1 v; p7 M6 _# }. V: l$ J
# S2 R) \. P; W* C, M
|
|