|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧- m' K9 g& ^" p5 r# r
enter macro8 x6 k6 B( B6 A% O1 p" S5 h
push dx7 V2 Q7 ?# Y; n% l; K2 |
push ax
{. \0 |% O5 X1 V; L7 j" ` mov dl,0ah/ J; ]# ]0 D: S0 J) j V
mov ah,2" M+ f1 q; F, Z
int 21h1 o) e5 G1 Z7 e! N Y$ M- D. K
mov dl,0dh
: |2 |0 V [* S5 k mov ah,2
: }' a& t' R0 ^8 ]9 ?: M int 21h
7 G9 J! w" S' a4 X$ j% l pop ax
, h+ Y5 ] z& q5 j pop dx
: q9 ]6 B( P. {' w* S1 N, Vendm
; I7 p W; Y; o# |4 i6 C, w
6 m. I, }( ]' E+ O1 ~assume cs:code,ds:data
/ c, p% Z% R: z c+ v+ S8 Ndata segment' f& A0 q5 D: \( d5 L
table db 300 dup(0)9 {4 B q3 B4 A3 [
pro1 db 13,10,'_________________________________________________',13,104 t, E) Q- D, {5 F, H
db 'no more than 20 characters English name.',13,10: n6 d5 c5 G, L
db 'For example:',0ah,0dh,'liang xin hui',13,10
( z5 D% \; {- o db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,105 `) V' E/ E8 L1 N9 D
db '.................................................',13,10
9 k0 Y& U, `% g8 P db 'Please input:',13,10,'$'
. _) A0 s3 `$ Zpro2 db '.................................................',13,10
6 z e+ `- c, t$ f/ B/ V db 'The results are as follows:','$'
0 S! l7 M v8 i4 `1 b6 ~* B
Y8 {- i% p% o" b" o Vcont db '________________________________________________',13,10& n2 m$ u* Y" w: o/ c
db 'Can You Continue(Y/N):','$'9 z, p5 M4 i; |, T3 J$ J! ~
& M+ j" B, E/ A) [
cp dd 50 dup(0)+ t" g$ T" F5 m' k( V4 k+ n) G% ~
data ends
: X4 p; u& Y% ]* L$ B! |2 S+ I( b9 f4 J% x5 a2 F! F" U% ^7 G
code segment6 [6 a* Y$ _' E' @5 ]& D- O
start : mov ax,data
: r6 a! V6 H& H2 U& K4 B mov ds,ax2 I7 q& T* A; H6 s% R/ {4 F8 _
call prop1
' ~7 |6 B1 b: M+ ?' w' I2 S/ @3 n mov bx,offset table
9 z$ F5 G# d' ~' t; Z% v& i" Q7 G/ G mov si,0
1 m7 t# G$ k6 U( F1 r) Y" a mov di,09 f- y1 @! T; C% n6 C
2 H, {9 u, x9 F1 v5 D1 \* ~' m4 g
2 f8 o. |+ Q+ @! z call enterchar; Z! @+ w6 U0 o4 e" ~. Z8 t0 W) s6 @
perp: 2 |0 f+ `. V1 @+ W7 a: y
dec si6 I: R' @% d9 O
mov dx,si
' C; |, }) h9 Z" x inc si
' E* g- J$ L6 }# e mov cx,si
4 C8 ]5 A! e4 o( Z2 z5 h* t# c. a q call arrange3 a; Y2 `; \. f) M( a! l
call prop24 V9 G+ c+ y# H- y/ g$ F/ q# f
call putchar2 Z9 M k' [; I8 `0 m$ z0 I* Q' n3 e
liang:
* P1 e& r8 C# C0 r call Continue
7 u9 J3 w0 h5 h% W call judge
- X! D- }+ o) @: o; m" C$ I( M3 s mov ax,4c00h7 j- c- C& ^: m
int 21h
- w# V6 O* _3 o" C8 O' ^
1 @% i0 {; c: [* \4 ^* P* S2 M+ E3 S* d' f
Continue: enter( S7 i. M* [* r& I- c
mov dx,offset cont
1 Z/ B6 T( _! m- c5 h$ M$ f mov ah,9h
; d5 J' w. Y4 G- M( S int 21h% k3 T/ c3 E+ N- Y) ]. r
ret 6 Q9 d- E2 q. B _$ I
0 g3 n/ e0 u; V; R* O' i$ B: Y
judge: mov ah,1
" U1 G0 s+ R5 N: M' C% Y& ] int 21h
' H' t. S' [/ p' l0 Q9 v& z) l or al,100000b
$ f2 \ m0 d/ m7 N g( ~% t7 P8 Y cmp al,79h9 u2 _ k) U9 ]6 B
je clear
2 K# L& \, n* D9 `/ i. s cmp al,6eh4 `8 Q/ Y# I! ~& e3 ~
je endj
/ \ _, P1 x; S. }9 |# l jmp liang% W/ R0 `2 k$ b& s
endj: ret + `9 p* e7 _( ^. M, Z' H! Y
4 V( y! C9 X( b) g6 x* U9 b- rclear: mov bx,offset table2 p' d; K% |, K9 m3 F9 \
mov cx,3001 }, p) s" K( z2 x k3 p
zero: mov byte ptr [bx],0
6 }- R0 r9 v4 i inc bx* x3 n4 R! H4 X: S- a/ P! F, x" p3 u
loop zero( S0 a: \' c& s0 S5 {
jmp start, d* J' R$ C4 C: `/ H4 ~
& ^8 @" R) J5 Q( f" h' e1 X" I3 z$ {" T
enterchar: mov ah,1/ P. n0 _7 q# K3 O
int 21h. D0 Q9 N% X. ~8 Y5 {; ~/ R3 ]& J
mov byte ptr [bx],al
* Q6 K6 a* c' n! C4 |$ s9 H) A cmp al,13' E" o' c& v+ F( ?
je endchar 2 ]9 m% U. g3 a2 ?/ \
mov di,1
4 p# s) o# o/ Q6 E0 h" Y+ p1 Y inc bx
! _; h5 n! ?5 i* o, q jmp enterchar; Y$ N+ e5 R, G* l5 W
. k7 b) B7 L& X7 G W9 iendchar: enter , c. T- _' f1 m$ S b& C3 m
mov byte ptr [bx],' '7 Y$ z Q2 o4 Z0 E" G! T
cmp di,0- n# C# }2 T7 _
je perp8 v" Q3 E- P( b: r- m, i( v, p
inc si
5 r7 w, v7 ?7 S9 ~' [& P, \6 p mov ax,si
! c& ~5 m* z+ v+ p, p3 d- M mov dx,21
9 p( S' r0 P: p$ K mul dx
* a2 z: m4 A3 i+ C/ L mov di,0# m) B2 Y) C, R. X
mov bx,ax
, C, D# J ?' T2 K/ X jmp enterchar! m3 |% I1 |: H$ V: g! V
, p% E# q" o' l: P
arrange: push si
- H6 j# ? _6 I9 `3 I push cx
( `+ h& G. w% v1 m$ Z mov cx,dx + p& y: F2 U3 g+ r# K& C a/ g
mov si,0( f, G" ~2 Y, Z3 e, A
mov di,21) Y0 m9 q1 }' m4 p- _8 ^8 t
6 u% F8 n$ |; L x4 t# }' H0 z
s1: push cx8 g! N( E$ F6 X1 v9 Y
mov bx,07 V! q5 n5 {/ {1 r
mov cx,200 h: [5 p- n8 b. I6 k
ss1: mov al,table[si+bx]
; }: t# a+ l5 h& N4 O: z cmp al, table[di+bx]$ G, z3 z; O1 h, @* w" Y
ja jiao& J- S9 e! N5 v8 a* u
jb s2/ H' L2 r0 [" M( }
inc bx% g3 Q5 Y' Y+ D/ T& W1 u
loop ss1
4 |9 r6 D/ o$ r+ ^: A: f: s jmp s2
9 L, M# p9 C* Z' O* g& m9 H
9 V8 V" o* M% a4 {- kjiao: mov bx,0
% P9 ^. H. @# j/ F& \ mov cx,20
+ Y7 W! K, A f' Bjiao1: mov al,table[si+bx]& ^# m# w" Y+ i/ R
xchg al,table[di+bx]& W; z: R2 v9 E( Z! r
mov table[si+bx],al0 \4 }0 o, B% K4 V* n
inc bx
+ c. @, R/ x- p. T% ^1 p. X& x loop jiao1) y: m+ ?8 \4 C7 W
4 H+ x; j- s( D- a. O- n8 t2 N( |
s2: add si,21
7 ]0 i1 F& D A, [+ ^* G; }) l add di,21! a9 e7 d4 `, N5 X. u
pop cx' n* U2 n! ]* W. b
loop s16 c* @9 G$ D, Y6 ]
* J- j- J. a3 \( t7 E. a$ ?) |1 b" Y pop cx
9 N7 o% Y. Q' ?1 w3 o: _5 Z. o pop si$ m; V% O0 W+ f
loop arrange( h V3 O8 Z$ Z; Z- x, C
ret7 l* {; N, B1 u/ Z8 ^5 V2 t
V: H0 u' d* y/ ~, r* S1 E. N5 Jputchar: mov bx,0% X: M7 V' z5 e& {4 H7 ?" R
mov di,1* A' M) j6 Z3 ] l9 w
. @$ e$ X: z2 k/ X* d) f$ X0 Q
" e( \- R. a6 E: w9 [+ G
mov cx,si
( i" P! B/ {4 D4 u1 W# rput1: push cx! L+ |0 |! w( W4 M
push bx
& j4 i J0 c7 ~9 w# A' O9 C& P
4 K }' P d& J" T8 b enter2 b+ g3 L8 @& _9 o
/ l4 _/ { Y6 { l! u mov bl,10
! W* f6 n' M( `' b% K6 h mov ax,di) R J% v. H5 m
div bl% n' ?# \2 \6 _; [- Z$ W: X/ f: U
mov bh,ah
( _- ~. D8 e% g2 x5 z5 P add bh,30h
: }: N% |$ o7 O/ G add al,30h: q% }" N1 O8 s: ^, d/ ^
. ~% ]$ X& K4 }8 }6 H( D$ ^. t: c mov dl,al2 U) k9 ?: ^% r, t" P _; t0 |
mov ah,2
# v* t; N! _% S2 I0 q int 21h0 {& U& i2 }* _( X7 U% T$ h; o
mov dl,bh
6 @" h. I" e4 ?) _% u/ \7 U. i mov ah,20 G. q: I2 S2 ?
int 21h" E- r# B8 C0 T8 o* X
mov dl,3ah. g2 r' O3 {- _
mov ah,2; m6 s. _( a# F3 F
int 21h
8 P1 H/ F7 W5 n4 t% S9 [' p pop bx
, A6 j0 x' }# p5 @: Z mov cx,20& ^! S" `) e- a6 C' J
push bx' |7 @( V" q) j) H
put2: % R2 A4 ~1 \- @! a" S9 S
mov dl,table[bx]
/ z6 {% _# k6 N- U mov ah,2h+ g9 m, p# I8 K n+ W
int 21h
1 |# ~) V. G6 r, @5 J- c. m V
: c/ T9 q6 h8 i& W: T1 V3 D' [ inc bx) J. K0 {* |+ \& s
loop put2! Y9 @- A% k- o- a$ y
inc di 0 g) k# P5 s5 |
pop bx
7 b( p2 Z4 r# W, H9 [! R2 G8 E3 d' u add bx,21- ^9 h! ~0 j: u- D( k) c3 N
pop cx
6 L3 f4 J n( c% F% m( N 0 M) \& |% V5 g1 a
loop put1
6 V2 x& K; b- U* ?3 X ret
$ D" N+ c6 E: c- n" c2 [. I1 s2 _7 L% t1 D+ u2 q: G) W! P
prop1: $ _, E/ l$ [0 h$ }& Q
mov dx,offset pro1
# z4 I7 T* e* _* {9 h mov ah,9h
$ L- I6 t; _' E! H+ z) n7 H int 21h
- j& v( V. {- ?( `4 i; w/ a enter
! h/ Y* r. x: X. l. o& E ret: {0 e; ]# Y2 D4 {. z2 ]( b2 R- b
) i6 K: d& A" H/ Q) }* E" D7 x
prop2: enter
- p, B1 | d9 W mov dx,offset pro2" X8 n# J0 U0 z9 j- s% e# C3 J
mov ah,9h* i3 S; v7 w- O. }
int 21h% A3 F: l) n" W+ q8 Z
ret
0 K `5 E7 N( c( k) O, G$ z! w
4 a1 u/ \9 P+ ? f1 }code ends
0 T1 \+ _# t. Yend start; B7 T& C- B- D
1 I4 {3 l) s7 @* h8 d
8 R7 v L. \9 ^& g+ `
|
|