|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
6 M9 I1 J; P2 W5 b- o; e! E6 T, Aenter macro
& R, U' ^: E2 ~ push dx$ h1 M9 L1 N; S9 B
push ax3 ?; J+ [! u9 d# B" ^5 K& N6 I
mov dl,0ah% i9 @# [+ V% e y* T# k& c4 w4 e
mov ah,24 H* k/ G2 E% r4 {
int 21h: H% J9 N5 _* G
mov dl,0dh/ D" z; h4 z; \* z! ?- C
mov ah,2
/ Q+ x$ t2 |, z3 g* o int 21h9 U" z: `! ]1 f4 X `+ F! o$ F
pop ax
2 u1 o3 |/ k2 U) Y$ N+ w pop dx 8 p( I7 P3 J) D: f
endm$ H7 f+ U" P/ i: O* }2 o' c5 K
, b# L% k4 G7 ?% O5 k
assume cs:code,ds:data) ^" J0 `. I! R% e& U/ W
data segment
- k1 j3 k- M. u; J# b3 mtable db 300 dup(0)
, _+ e# F) d; c$ ~( _; M2 A# Opro1 db 13,10,'_________________________________________________',13,10
( b* |. u+ v9 \3 Q3 _3 k7 h db 'no more than 20 characters English name.',13,10
, u+ E) T# `/ _* w6 g: }/ ~. ^0 e db 'For example:',0ah,0dh,'liang xin hui',13,10
, H+ Q+ V0 j# x6 `% H! _ db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
% F( R1 z* J$ {/ j" h db '.................................................',13,10
2 {" G# O; m/ i1 G: V) ?; \ db 'Please input:',13,10,'$'2 I; r5 ?# r; M, c* s0 G
pro2 db '.................................................',13,10% P% ?- Q2 F+ W! Y$ ^. B
db 'The results are as follows:','$'( s4 g& V. x' H+ G& a7 T& O; m
5 I8 D4 J' L; mcont db '________________________________________________',13,10
1 M4 b: N$ y3 G& v' \: n N! _ db 'Can You Continue(Y/N):','$'1 Q% \2 A8 Y- _4 l+ j
* N6 q6 I: ?- ?% M
cp dd 50 dup(0)0 Z, M. ^# ~; I! j, Y) y1 g& v D
data ends
2 D% x: r) m# t8 l6 {
( p) Z/ X. ]0 C& M* T U: Ucode segment" V+ W) }+ n8 J( p
start : mov ax,data7 R4 `0 o% w: f$ [1 `
mov ds,ax
4 \% M6 x, K6 u call prop1) F# O4 ]) A/ o' Z1 F( B' n4 e
mov bx,offset table8 Q" F& H- h' p0 a# c6 x9 n
mov si,0
: i' T3 ?0 ~9 L& c+ }. X mov di,0$ Z3 H# O6 L: z) ^6 x" W# _
0 Q0 @. h! Y( R( G) `" P
! H/ v9 B4 @+ r: P' k/ s" c, r
call enterchar
0 j7 z. I8 e1 A5 ?3 z F ~perp:
W8 e6 ?9 H2 |; M4 M' C dec si2 C% U% U" |2 L
mov dx,si0 _9 g$ U' Y# M, i2 r
inc si + g- F0 |2 n7 c3 C
mov cx,si$ a" v* R, q0 v
call arrange
$ p- \" n- p: r! f call prop2
3 F( s. `( s& O. x call putchar
. q: d" _. I' {/ c5 c; Z# S! Y# [" aliang: m) L8 [1 h! m- N) O4 z
call Continue4 Z+ _+ ~( }1 y' l' D
call judge
/ {4 y: ]( f+ x/ u) s2 w mov ax,4c00h
& ^( y: Q0 h: \/ H, ^ int 21h+ c( l# ~/ }$ |. b+ Q ?) v; s9 V8 t
! l$ |8 O1 o: j
5 z+ R' j6 V9 J
Continue: enter
& G$ H- q2 w3 C. t n6 i mov dx,offset cont
2 ]: k% D: P$ }9 O mov ah,9h# K* c% i# l y
int 21h8 M3 R9 R" I5 e) }% p- m
ret ) a, @; [6 Q8 I8 j& W- E. B
4 @; {; y! i+ F2 B5 N- c g' ^5 Y, Bjudge: mov ah,1% Y Q0 s4 ~8 Y% Q; X
int 21h- J5 L( }4 p$ w# k4 H: P- D
or al,100000b" ]& y4 |' @8 j! S4 u2 }' U
cmp al,79h
/ {/ k8 A4 o7 m% g- M" G je clear
5 E% r" X8 K# s0 d! L cmp al,6eh& V; F' G6 u, B4 w+ t: a. a% I- K
je endj
- \& x! C' M8 p8 I0 H jmp liang) X8 g+ j% ?7 z8 z$ K R7 L( e
endj: ret + T$ `5 N+ B6 p1 ^+ p0 a
& k, z' f" D" x/ C' J6 i% G: sclear: mov bx,offset table$ Q* V/ U% x$ q8 e* ^4 x
mov cx,300
/ w+ T8 I! m! K5 R7 M$ C9 Dzero: mov byte ptr [bx],0
7 T3 \4 q/ K5 K; L inc bx6 \. z4 Y" v6 W8 D H
loop zero
# f: V7 c! S& r( z5 V% }" J! d: @ jmp start
# W7 W" P8 X0 f5 V% v: o
. T( ~6 T( ^8 p# g
4 ~$ t, j5 W. S/ yenterchar: mov ah,1' b7 a; Z! ~/ o; E$ O: {9 M
int 21h/ f4 g% V- Z6 v- h. a/ O
mov byte ptr [bx],al
8 V" e$ x& U- t& W9 u( P8 C# W cmp al,13$ F0 {0 b# m" z' r }) n* l
je endchar & X( T$ x; N! W( w& j6 s( q6 G2 @
mov di,1( X1 i! ]' x) f9 A* M; p
inc bx, n! O( m7 A+ ?) x
jmp enterchar$ X" q% |1 o2 W; g; _
6 D: y( a% X4 g) |0 ~9 X
endchar: enter
* I! h# @. E$ ]/ I& x* j mov byte ptr [bx],' '
- k1 w6 c* f7 @+ |* q0 v cmp di,0& u# ~6 P( U) \* `4 p& I
je perp
2 G% L P" A) b inc si. ~8 f7 t3 Z( g9 z, i2 U
mov ax,si
- m- G& u, c0 Q/ O0 _ mov dx,21
6 T4 z* S' J6 e& y mul dx* ]) k i3 ?& I% P4 n* k; C
mov di,0; }( ?3 j2 ]& a; S
mov bx,ax 5 B$ \% l7 W) C3 A% ~6 Y0 `8 F
jmp enterchar O, M9 |# u0 ]6 B! c0 ]! z
( T# `6 ^0 v) R1 x2 l- W
arrange: push si
! l4 W6 B- x( n2 T' c' @9 B push cx + n7 P# z4 R8 A5 z
mov cx,dx
: s ~# t# C' O6 I7 a/ `0 F mov si,0, \0 j. [/ D1 A, l
mov di,21# q) @( M3 S6 k; x8 K) o3 F A# I5 K9 m
5 l S- r* e- S5 a) U" Vs1: push cx
8 h) X4 W' H4 ]: z0 c! }9 A5 h* E1 { mov bx,0
0 h+ n& E" r5 B- i mov cx,20
( @# [. e. v$ q N. i, c0 fss1: mov al,table[si+bx] G( G& ]" j) m8 Z
cmp al, table[di+bx]
& N7 S: r: f; M. o ja jiao4 }; m* J' T/ A" l7 Y: R
jb s2* b8 F! i8 b2 Q1 n! M
inc bx
C2 k' @# o0 ? loop ss1" j: x) ^9 f3 ]$ Y: h& `, \
jmp s2
7 M4 I; L. L; n0 A8 k' P" p0 ]1 M6 ~+ s5 ~# F* V; C
jiao: mov bx,07 X* @$ y6 ^ I
mov cx,20
- l, I. Y1 m6 _% s1 ajiao1: mov al,table[si+bx]
! _( N) Q: m# g xchg al,table[di+bx]
( P1 ` W) X5 n4 v* H3 J5 X mov table[si+bx],al9 r) u2 X, X/ W/ b1 O5 D
inc bx. p3 _. G( m- Y
loop jiao12 v& P0 ]+ X d$ S2 G2 t" a$ c
h3 z) {% C. M; Cs2: add si,21
! e, k- m/ e* e9 C7 ] add di,21
- K0 [8 `+ t) @* a( J pop cx2 h& e( O* i# t: d% i& i/ q$ O
loop s1& p2 o' b6 h4 H m5 d
5 l' \1 C9 ~( j( i" T- x: J. g. e
pop cx
; T K% v8 X' c( w4 s2 m8 _ pop si
1 x4 ~6 W4 z" E# y' w: |' q% q& U6 z loop arrange
7 W. I: M% s( B ret
1 u1 r3 |/ A# `6 Y+ l" k o' X* d+ l
putchar: mov bx,0, e: H8 D0 q0 _
mov di,1
) P) L( W$ C" _" A% A
- t# n* j/ S ^2 v* s ( W( m7 U4 w/ F: ` p Q/ z
mov cx,si
) \8 j0 E4 ?* d1 d- Tput1: push cx- J# D9 i! N$ \, b$ z9 t) s
push bx% X7 Q% H5 ^4 d! q
! O. {+ O7 j: d1 h enter! c2 E' l/ ^8 E, i& X/ k. u
5 k- ~+ w2 c6 q3 o mov bl,10
# n, q' O% j7 b mov ax,di
* Z7 @% Y& p& O) F7 k0 p2 H div bl
' J: n; g! l9 v3 @1 G1 }0 s. O mov bh,ah
- ]5 b" p7 d; x; h0 C$ i0 c# y add bh,30h% v' r) I* q% O, [/ [& P: _) f Q. A
add al,30h/ Q; Z$ l$ D+ a" N5 C. r+ I
1 r. e# M0 Z7 M& l# K mov dl,al0 _0 ^1 [( J1 L8 o7 l+ a$ H- R8 p
mov ah,2
8 H# C9 s A* Y: E, B int 21h
1 [% J; v7 P2 D$ `2 \0 Q1 C. B mov dl,bh& \3 X$ @. j4 p' ? f' ]. X
mov ah,2
* T3 N6 a1 c. X+ U4 W int 21h
5 U$ q" x3 q1 w# g; T, J: E+ j mov dl,3ah# S0 [0 c( t: J M& [+ m) Z( n6 d% O
mov ah,2$ _+ E3 P' V1 [ m% F4 B
int 21h
: j0 X' \% F7 U4 e pop bx ! k1 I) J: B3 j/ v
mov cx,20
7 E6 F: N8 v3 e8 y8 z4 e push bx6 ^/ x0 i( ]9 |5 `9 L8 x
put2:
9 W ?" Z1 {4 C# i1 [; p mov dl,table[bx]% q+ ]( s+ N, S# J$ o- g
mov ah,2h( w1 K1 K8 g$ n; Q& F. Y1 }
int 21h
$ d! q& H0 Z7 A0 a, ` 0 E9 D! _; B% P3 o/ e9 Q: Z
inc bx
5 o% t. c/ y& W/ H; u/ U2 V loop put2
# s5 O' n6 a; b: c# {+ m' L inc di
* c) h. z2 m3 W. C& H pop bx
) l8 |( L. T9 V7 P ?5 P5 r add bx,21
6 x6 W+ y5 \ D* U3 J6 u# g2 u. c pop cx0 _" w# Q8 U, o, `
6 y/ I/ \" |: n% i$ X loop put1
4 f# c E, Z ]: |2 l9 ~1 o ret& S0 T% n! h+ h: O6 }5 u+ i
3 [, M3 e! |' v7 c" f1 ^; G9 ^) Tprop1:
^# o! N6 B# B7 [! P/ y mov dx,offset pro1
" i' y- i; ^, M! [* q( J mov ah,9h
4 K: X; }& m4 W% J5 c! d/ G int 21h
. `. t% t9 S. Z# \ G- Y enter $ I4 j4 f2 U( f$ H3 R# _
ret
8 l& }1 l j* K; i; o! s1 n n: o# C& ~: a r* C# N& F
prop2: enter) ^* |7 r, p* [! e0 E. ]
mov dx,offset pro2) [, h; R- I1 w, n' A; g
mov ah,9h
7 H- J% @, i. F g" K) Q1 i1 K8 m% x int 21h0 [/ B( i5 M9 U! f3 E* J( x# J
ret
R! G E" C! P; M' ^( g8 Q) a) I/ M$ o5 ]+ r$ L/ U
code ends3 V W0 W* O, q7 L! @" g
end start
`8 u5 P* W& B8 Y9 x5 g! B9 U; P' }7 c* }
- U+ w# `; s: ^ |
|