|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧! _* _; ~0 u4 B/ |
enter macro1 |# ]$ ] w) [+ n' W* E0 d" H
push dx% n2 w$ x, x- z9 Q
push ax' u4 L; u. g2 Y" O4 }
mov dl,0ah
1 \: d, o: M% v) S mov ah,2
9 }$ N7 D( f4 l' e* c int 21h8 }0 g6 ~; ?) i& Z4 V b
mov dl,0dh' P4 Z( J/ M9 c9 P
mov ah,2) d( z( n; J- C; E9 P% ]1 ^" g* O0 ^
int 21h
, W# l# \4 d/ F* b( N$ ]0 c pop ax1 ^4 w3 z7 W3 I
pop dx
* _/ z, G) r9 d0 Y0 {- x; cendm
3 r+ A/ M9 B0 g! p3 H7 ]! \' c7 ~# A' u
assume cs:code,ds:data
4 F( [% u' P! kdata segment
$ f* |* s& d, r# M+ }table db 300 dup(0)
$ c' a8 j! {2 F4 opro1 db 13,10,'_________________________________________________',13,10
1 b* n, l1 [: J' J db 'no more than 20 characters English name.',13,106 l! Q9 A7 _( K2 p/ f
db 'For example:',0ah,0dh,'liang xin hui',13,10$ Q3 A+ u$ W" I1 \
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10! S) P( R7 @( K" n
db '.................................................',13,10
+ i3 e* \% [$ x db 'Please input:',13,10,'$'' Y7 j$ ^) k# J( t- p$ h7 ~/ M2 z
pro2 db '.................................................',13,10+ i! W3 m( S5 m8 ]2 O
db 'The results are as follows:','$'. I" g) W/ ~% l( [1 Y
y/ t7 {& S: b4 n0 T! P
cont db '________________________________________________',13,103 \- T6 \2 c, j; ]+ }
db 'Can You Continue(Y/N):','$'" ~* F1 b- w9 p0 O; T" ~/ f
# h/ H$ _+ E" |7 D! Z' d$ W
cp dd 50 dup(0)$ E$ N* j1 N+ h; w; ]
data ends& [* J2 \. t! H/ B- z# h5 M0 Y' [% x
9 t7 C( B. a1 T9 V0 q/ D4 j
code segment
* y! _* b7 B. d" X2 a" Rstart : mov ax,data
$ g7 U3 c! X* W" M3 q mov ds,ax
: s& W" J& Y) B' V- |: e+ y call prop19 n8 h( N; [) [# |
mov bx,offset table
* d+ P6 w- n1 k$ ? mov si,0
: [" z0 n* v* w% t& n2 ] mov di,0: X' c/ H. R5 J6 a! G% M
1 ?0 C5 r3 {! K2 B* L, G% O) i
, O( o# U" ]7 S% Z$ L0 e call enterchar/ F6 I: ]* \' {& c, G& H0 u6 P9 L& i
perp: : t* }) h. c& K8 }
dec si
& E' D. A$ M) c1 s' M, N$ z mov dx,si1 W. c2 g' G$ S8 |) A
inc si 8 T. L2 N% X+ U, x, H
mov cx,si
, e& T' h4 B* A- L/ P/ o( y call arrange
% \1 V; k) U6 c" ~ call prop2
) V/ N [$ {9 h0 q2 ~ call putchar
) l. P9 l5 m* U1 tliang:
* O$ l8 R3 w3 t' a0 H call Continue2 j, k+ }8 H8 _ ?# d
call judge" r, a) p% u' S6 {
mov ax,4c00h- t5 h1 m+ ]6 ^3 j9 R1 @+ D+ ~" `; p' T
int 21h0 H/ f" O1 v2 i% v/ ?4 a
" @1 I& ]' W+ Y q' I% v+ ^
: y. R5 h1 V. e* Z& T+ yContinue: enter) N- ^! y9 j, |4 e5 p
mov dx,offset cont7 T9 W5 B6 i9 {, ~/ Q4 e
mov ah,9h
: g8 }; e* q o4 j A int 21h
# ?' d E6 b$ T5 u x- @% P* _6 N ret / m! ^) r9 R& o/ L: m. K
5 X+ g: X* B9 j
judge: mov ah,1
1 z! R/ w$ Q5 [ int 21h# f. S7 T" s- A
or al,100000b! B, j# o/ s! T6 _" j
cmp al,79h
; j+ e, \! B9 u; z8 m( S/ d, [ je clear
- z2 P- Y: _ ]+ ~# ] cmp al,6eh0 A, _/ v% g2 g& h5 L* |' B; r! i
je endj
8 f1 G% o3 v6 R& ~. f# d jmp liang
7 E9 P9 z. D# t; [, U3 Oendj: ret + B0 j+ ]) v5 h( f) o c
$ }; Q- f9 _8 {8 h5 z. O$ M, e
clear: mov bx,offset table
' x& g+ q5 I0 t, U* C mov cx,300: s+ B$ g. t" a6 |+ d
zero: mov byte ptr [bx],0
$ e: y' B" o3 l3 r inc bx
6 ? L) f6 p( v) k- ?$ G! U) c loop zero
% F7 [9 L3 i9 B+ ?5 s jmp start+ t! b% ?* }: l" v( V
+ a" L- @5 D5 u8 e
7 h% ?% z% f. @
enterchar: mov ah,1
0 W- z. G, m2 l r, R5 F int 21h
) W7 Y2 }5 E: h0 n7 z mov byte ptr [bx],al : Q3 H1 z8 p+ `: u3 {* V/ o
cmp al,13) F& |) ^; B( u3 _, R! v9 T
je endchar
% H7 o" m7 d2 D- {$ o5 b( X, L mov di,1! z. x9 v; U+ {
inc bx
" t8 w4 J* z8 K7 K: N: } jmp enterchar
7 z) h( x1 q' V" S' q* w$ Z& l- A' n. O- a1 W
endchar: enter 6 ^ Z" x& g7 _0 \
mov byte ptr [bx],' '
0 o. K* z' c! A( O' o1 f6 _- { cmp di,0
1 J( y5 d5 Y; q je perp
3 [* L. [: n& g$ O. ] inc si3 P8 L; b8 ?" T5 N+ E
mov ax,si8 \2 m* n$ [' K6 B0 A" r( ]
mov dx,210 w' V B; R t' F( V8 v
mul dx
K0 x% G: H8 b4 f6 [; }) E% U! l% v mov di,0
1 J) \" q. S/ L mov bx,ax
4 x- _+ L. l' K0 f4 L0 P jmp enterchar/ Z; J! B4 q+ u/ Y$ m g1 w
# ^+ V' `0 O8 D; `0 ^arrange: push si( {' w" v6 d9 D3 X5 P; P6 N
push cx
- k+ _ g. V9 u" t; B0 l* S mov cx,dx
. h6 r# Z0 H5 G1 B mov si,0
6 u) p# ^% V6 J2 M4 B$ e2 M mov di,21
& C! {6 e6 ~3 u
2 z( v" n: Z# X2 Ms1: push cx
4 e1 s( y' a: N ]* h. q mov bx,0
; x& {5 A' `% L5 P# T# T, l mov cx,202 u; `/ |' `$ U
ss1: mov al,table[si+bx]( {" H" C) Q( f, v0 R
cmp al, table[di+bx]# ?0 L* U/ u- ~: T/ c
ja jiao; A3 n, m5 E4 h0 [4 N( a0 r
jb s24 O' J' z! s) E+ K; d# T
inc bx+ H+ n& u# G# q" S
loop ss16 `! j: w. o: }7 z
jmp s2
. ~, Q/ `3 N3 m& n
( [+ a& [) E0 e" I. u2 Xjiao: mov bx,09 y \1 C1 c6 L" t. q" V
mov cx,204 D8 \" g. p! X! M. D
jiao1: mov al,table[si+bx]
# o* ^/ z0 C# Y$ K, b6 n; z/ }* u xchg al,table[di+bx]; t. ^/ x3 i) X6 t( `
mov table[si+bx],al5 X- i: ~% L# p* Z# n |- Z
inc bx
1 c0 w* \5 L8 G$ l Y, c loop jiao1
! l5 M6 c+ Z1 e J
/ C' |/ l) I) `+ as2: add si,21" B- i7 s0 `: @+ z- Q
add di,21
; G# a0 x4 o( Y- f% i/ Y U pop cx
6 |) Q m! i: h loop s1
/ \/ g2 s$ g! q& r, A% {# V, F0 D: g3 |; C! X
pop cx
5 c% ?* c# O2 f/ ]5 y4 d7 L pop si
c6 r% e; J* }1 x/ e loop arrange( g0 O) o) X0 U: f# O7 P( |- m! n
ret
+ k8 K6 O. p! y' W. j7 V/ d. }7 J, N8 E# N$ k$ g
putchar: mov bx,0# B- x* e* G, f6 }
mov di,1- G2 I$ t2 G6 S# F9 u$ X5 t
- J+ [: M' p1 I0 x+ L
/ X* j+ l! k! Y x5 ^& | mov cx,si
* r5 [8 o* g! q4 w8 tput1: push cx
6 e' }3 @5 x8 f- o" u push bx
) V4 s( @% }) o+ |+ c, f
+ i) v! ^' M$ i: g# a5 s enter9 H: V/ Q3 _8 v3 }; k- k
+ \/ {6 d; M7 f( q- D
mov bl,10
0 y( t& v& p3 F+ i7 j5 B mov ax,di
4 `* S2 h; ~; B: o: [+ g0 _ div bl- b _6 l5 ^9 O
mov bh,ah
3 L$ U' j% q1 A1 R( i add bh,30h
" X/ `* b7 a; Z1 j add al,30h7 z0 }" W4 i( V; b9 h- [
4 ]+ z% j& _3 N& q mov dl,al. K: q u: Z' Q$ j2 _4 d) z) f. W
mov ah,2
3 ], H( O6 o$ W) a" }1 q int 21h
8 g# g) Q M/ S& u0 y+ f mov dl,bh
, F7 I) K! |0 R. a6 u3 K mov ah,2
. l% A2 i, x9 ~, J5 Q% Y" z# t, Z int 21h$ E2 h. o( b& k' B
mov dl,3ah5 B7 C6 Y7 g7 Y
mov ah,2' }4 X) T9 }2 z3 |3 ^
int 21h
. s( Z4 o' I6 W: |4 |8 ` pop bx
4 Z" ?2 U! R, X3 ]3 m mov cx,20
: Z5 E$ m7 k+ v; T) z( o+ `' k% K push bx
2 ?* H! ]2 v9 n: @put2: ) o6 g+ t/ T+ @
mov dl,table[bx]
1 |0 j2 w# o/ \6 V& k6 q4 ?7 \7 x mov ah,2h( w" j* _2 e2 ?) B: V6 U
int 21h# Q( G6 E/ v; ?% ?5 }" w+ C+ I
: g q# y! ]3 R" b* X& Z, `0 O inc bx( P- |0 Z6 @7 e! t: J4 \8 I
loop put2
1 m# P$ s, A8 `( F/ g/ g. b inc di
' }8 |2 L: l% \; j2 o# l* j( A pop bx) t: m+ p3 O1 Y1 ~( o
add bx,21- A" B6 z+ ?. ?
pop cx
3 Z" D8 P# Q5 p, |2 Q4 l' H' y: G & o0 _1 L! [1 a) ]
loop put1- }, S2 Y# u4 V0 l) _
ret
3 b8 k. L# o- u. y7 m; Z5 r( D7 G8 @% y6 c
prop1: ! G, Q5 l5 u7 [( E! m! R6 Q6 F
mov dx,offset pro1
6 E" G" ]2 I0 ?1 @& Y mov ah,9h
1 ~& D! i9 ?/ c. i/ r' k+ i int 21h( e2 W& a+ M- Y# ~/ b% p+ H
enter 2 M. }; N9 b. J$ W! \2 \, z, Z
ret
& }9 W/ K3 W: \; |) Y
/ ?2 d* N2 \2 O6 t. Gprop2: enter
+ k7 V! a5 ~# x3 x mov dx,offset pro21 J/ p8 j* ~- \9 O
mov ah,9h5 ?5 v3 \' i, ^2 `
int 21h' r1 K0 W1 W% t5 T
ret# A n. h5 y0 N
9 V7 c3 V/ u2 scode ends
% i, F3 T! C: f. V2 s8 r" s" [: uend start% Q& H/ j7 o9 ^0 [1 L" g& e. l
) `: i$ k/ D1 }% b l' h+ U7 K- C: b( G: ?6 Z% K
|
|