|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
. n0 B, g8 L+ j0 o. Nenter macro
1 s+ c! L9 \8 |$ |3 @ push dx" u" b* Z$ d3 Z% M8 [8 S
push ax
* z) F4 _! g/ T2 D z; }+ w mov dl,0ah
- U' k- m( A5 d, h/ A) } mov ah,2! z1 f1 |$ ]' F5 \2 Y" Z
int 21h
8 J& U; o5 W; i) t" v' ? Q mov dl,0dh6 {4 Z* d/ s8 V% m9 h/ ]
mov ah,2: D. f: T! d% u! o9 E1 n
int 21h- r% E8 @0 I2 ^
pop ax: w8 \ L! y P% z7 s8 P0 g
pop dx
% L' Y% J! C ]- R/ d' u$ Yendm1 u" c/ M( m4 T$ V H
& F1 d9 X0 [7 V- S( n8 uassume cs:code,ds:data6 h( F2 `: T/ s; ~& J% F
data segment: P4 `7 H& d4 R: N! P
table db 300 dup(0)' b$ E5 Z# q$ m7 D1 H5 e
pro1 db 13,10,'_________________________________________________',13,10
) u& p. @3 X* h# [) V4 ?& T db 'no more than 20 characters English name.',13,10 f& \5 ^" O5 ^! i. Q0 U5 o! \
db 'For example:',0ah,0dh,'liang xin hui',13,106 Q. ^! a2 h# w3 v
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10+ u! S n; @1 A& j4 V6 G A
db '.................................................',13,10
0 s* {# H& f% @' _2 L) \ db 'Please input:',13,10,'$'6 N6 G# [) t9 J+ h! ^- ^
pro2 db '.................................................',13,10 d e" v' X' z% S6 w+ Y
db 'The results are as follows:','$'
5 R! E4 T+ B2 m. z V& e ~
. z" M% J J4 Y9 ~$ z: K* rcont db '________________________________________________',13,10. Y9 ~/ L& z5 n5 B" \
db 'Can You Continue(Y/N):','$'+ ?9 E" [ c3 G5 Y
4 c1 l% z; t5 C/ m
cp dd 50 dup(0)# R$ C. w2 ], \
data ends3 N' W6 Q+ I2 C) E* a* N @7 r
; P5 D% [; j" I0 S; ?4 Qcode segment
2 K% [# C# N1 \: Ustart : mov ax,data
A# h/ J \. n7 b7 B) u+ Q mov ds,ax
6 D, J- ]6 [+ s call prop1
) H2 H- g- P/ n! x. @# i* X+ A mov bx,offset table
* O: ^5 T" {9 w6 r! v mov si,0* n/ B9 J9 y6 c4 V9 q; l2 X. u# F
mov di,0
4 c' S$ r) Y1 e6 ?' q) s: ] . I. S0 Y3 m/ n5 A' r1 ~2 `3 w
0 w4 i& |2 z, h- F6 V A
call enterchar
9 ^$ H2 [; v' ]2 rperp: 2 Z+ n7 N7 v; J# j& m9 d$ w
dec si7 ]& V) b: |. ~# g5 Y
mov dx,si
7 ?5 r% O* f g inc si
3 O/ E, A* D) }+ e# n mov cx,si
6 I0 h' ?2 ?! i1 ~ call arrange! S' b; l0 K; R7 c9 e
call prop2
: S# t! b( Z8 u( ^' o" X call putchar
* \8 ~# _( d! x5 i6 Eliang:
+ V, m' I7 a s8 P! u. e, `8 l call Continue5 x2 F! [; e3 }) _. `
call judge
" a& l/ l3 J) | mov ax,4c00h
& s/ M+ R+ }. y9 b int 21h
7 f7 \2 t7 \' d0 j
& E5 y& F, }4 x; F: z3 s1 h
, E5 D* V4 E4 r9 X0 J, S! ZContinue: enter" x) `( S5 Q# M7 P
mov dx,offset cont5 a9 ^5 F+ E/ {
mov ah,9h
0 { b1 [7 F& C. E( t2 ~ int 21h" }' x: w8 J' I
ret
/ Y1 t# J3 S8 J; j: b: W3 n$ c3 F5 u* R* }- u1 h
judge: mov ah,1! h2 p; A7 w& x: |
int 21h0 ]$ O: b C [# l' }. V
or al,100000b
- S* l" L+ [5 Y+ ^) \) O cmp al,79h
3 c0 m1 v2 ?3 ?1 d je clear
4 C- Y" a3 _6 a4 N: S5 S. Y/ s cmp al,6eh, h" S# s* X: {6 d/ m& v
je endj
: A* S+ A& d: S+ W3 a+ ~% F jmp liang# g" _4 q+ O7 q1 T1 X" ]
endj: ret 4 h; g d# Z. B
. L1 f, C' Y1 V# r2 {7 O
clear: mov bx,offset table x! d& a3 H6 p) L; a W
mov cx,300
: [, A* L: V5 ]! j! X* A* Czero: mov byte ptr [bx],0
: u. J1 _; Z% {; {+ b2 t inc bx5 a/ u# r: b& ^& u. A& i! r
loop zero
2 Y2 x8 [7 S2 q: T# a4 a* ^6 N jmp start
% Q# K& V* c+ j3 b
1 @7 Y+ l1 A& W3 P8 P
, d3 l4 I9 p9 e/ L* Fenterchar: mov ah,1
1 w0 b6 X( v! `) V& g% G int 21h# H* D) r4 N% P; _( R
mov byte ptr [bx],al
( R' w, `+ D$ h/ M( G cmp al,138 W$ l/ z0 @" d. T8 x
je endchar
* U- e; T% A. v0 m3 F- q0 b8 R. m/ [ mov di,1
1 q: N- B4 p# A3 |2 h& W inc bx; _+ h. V; z! S- ?6 Z8 R% \
jmp enterchar
N; _* J% |0 t" w* L3 `7 D r3 Z9 Q9 E' a- [% F
endchar: enter 4 Z# P1 n- I& Y: M
mov byte ptr [bx],' '2 c# c9 T6 Z- _5 {' s
cmp di,0* `9 |$ H% C$ ?7 C9 G- c* k6 D
je perp
0 j/ l; X J' \- u, d! G+ s. R inc si$ w% @. e: e/ {
mov ax,si& D E4 @5 B0 i* `3 Q( }$ j* c4 h
mov dx,21
/ x0 |: C8 V# X& P( T mul dx
7 p( `/ t. U; C) p3 a mov di,0
3 J# T0 ~! z/ H mov bx,ax 5 {7 `/ C m: \1 w, B! q7 ~. i# m* d
jmp enterchar( R# R& r0 Q/ e
! H# ~2 ?% @% y0 g. Parrange: push si
- D. ]7 g5 U0 M( ` push cx . B3 @4 Q( a( o3 O& O4 e/ I
mov cx,dx
( T9 `- n; r; l; N9 ~; Y! ~ mov si,0
9 m; S! h0 e0 i0 L8 s mov di,21
* u( i+ S8 S: v- d( A n4 w+ B4 M) O, F# D, k! B" S
s1: push cx
8 J+ `; n2 p$ s9 J3 U0 \( d( b mov bx,0. ^$ ~, b! x9 u
mov cx,20
( \$ L. S- z1 x7 X/ Nss1: mov al,table[si+bx]# h3 p0 |/ S1 W0 q0 u) z( ?
cmp al, table[di+bx]% j6 R7 u0 d# F2 x- D
ja jiao
3 W$ x) s, W1 M: W! h jb s2! m7 J* n3 j) k1 \' l- f3 I
inc bx9 i/ }& y7 d2 z" e6 \
loop ss1) g7 R+ F) H, ]) ?& M
jmp s2
8 G' b% ` L6 Y& M4 x* |& o; I! ^/ S8 P; R
jiao: mov bx,0
0 i5 Z5 ?- u+ p- @( b# [) L mov cx,203 s* U, V3 P3 o' X6 h
jiao1: mov al,table[si+bx]
; {$ ?* F8 Z. @. \ xchg al,table[di+bx]! ?6 d( b n) Q
mov table[si+bx],al( `$ O, H# @8 F+ g. y, \$ z
inc bx
. m) m/ M5 Q7 J+ a0 V$ c) P loop jiao1
! x% l0 @+ d( J( s
3 e) ]2 R8 M. a2 @" W6 I/ us2: add si,210 i ~, ?( c" c3 W
add di,211 @3 b8 e) a. B2 q. W, J1 k, ]2 t
pop cx
5 Y9 l0 O% e/ U* l* J7 z( L loop s1
6 B$ ~* r# y# D
: q& v3 g' d5 t2 }; h' j pop cx! D( K& K; ]0 e' ^# G
pop si
; \- c% i$ \/ y" Q' ?+ _* c& h5 ^; g: P loop arrange
8 }& l/ g* t$ M+ L" M6 [ ret
! m: ?( s% K7 k. N# i3 Z6 [. y
# p3 N; q9 _: x9 h- u/ R4 C2 g" iputchar: mov bx,0
3 j- Y+ h3 O. e0 L mov di,1% U, V0 m' d1 ~6 a% I
; [- }- {, W; w' I' I1 r8 x$ T
. [& {) j2 X' n9 S1 B1 [6 a
mov cx,si4 w) y( E: @- p) G% ?1 K! y
put1: push cx
* H( G3 B' g7 J/ n push bx- R- n' ^; x+ ]
) R$ H. t1 V3 \# e enter
( {7 O4 q; O- u2 z' \ c( P, U7 X/ i! P
mov bl,10, |! [. R* g2 B* y$ B
mov ax,di7 E2 `) @/ }. O
div bl
; B' P- [2 Y2 e7 @ mov bh,ah
2 \) A5 o4 I* z add bh,30h
( C$ Y/ |$ F: ?" c add al,30h
9 ^" R' _( t L6 t O) O' d - ^! g3 i- Z2 d6 ?* d- ]6 ^
mov dl,al, }5 A7 L5 ^0 J& b, Q
mov ah,2
7 b. J- l: M# ?3 `7 i int 21h
: ]- @- N- ]5 F/ ~! b- l: N mov dl,bh. G8 r L& C. n" i0 N
mov ah,2
1 Y G: Z" G* s2 s int 21h
# F& ~8 A; R' `9 b. v c6 S mov dl,3ah6 V& U- T) [1 g1 {
mov ah,27 B9 d+ Z5 _0 q/ M3 a
int 21h! n' L2 D5 G, e
pop bx 2 ^" }0 X7 g" U' s0 r
mov cx,20. w' d! P1 W; \
push bx2 m' I$ @; D4 u4 c, }6 @. Z
put2:
& X' M) @& t3 d- d7 F/ Z- ?- z mov dl,table[bx]. j3 O9 h3 \, ]# c4 p" {
mov ah,2h6 `2 C" j# @% [6 X
int 21h
6 I) b. \1 M! p0 N4 o - s4 Z$ c7 e' O; J7 m g* h
inc bx
, T: s. o4 g- L; v [ loop put2
: a' \& a3 {4 D/ {% L: t' r# e inc di ! J! c' L+ k8 V2 _- ?& C! n
pop bx
0 G' n: X- t+ s. A) v* ^; C- A add bx,210 J) ~8 _- l( y' x9 U4 B
pop cx# ]# K, X* `! W$ c8 l
3 P+ r/ J4 G1 ^+ d3 H/ `& b loop put1
+ b y0 M Z' [; m0 G9 M ret* d; o7 Z- N# h1 l+ H. d
- o8 G+ @7 w$ kprop1: 8 x# g) @! s) }$ L
mov dx,offset pro1+ r: ~' G1 N5 a: n) ~
mov ah,9h$ `; ]3 K& J+ [" u
int 21h$ Q. C: J& z2 P: S# \5 k0 r$ d" \
enter $ F4 E) w/ c- O& U2 I& k/ g
ret8 x7 [. {4 o5 D
2 a% h0 k" G+ c2 Cprop2: enter
X) \3 Y! [9 t% m. g0 B0 F mov dx,offset pro23 t5 h: i, D, T+ _# y% w: m8 v
mov ah,9h1 o5 y0 S5 @ o, h2 b& U
int 21h
5 y/ G# d$ N7 z4 Y ret
% q4 D' m0 K) a
* D. I: Y$ y1 M6 D, b9 Y! Qcode ends
. z6 x) r: |1 ]' J w {) mend start9 z7 P+ h3 w: Q7 P, ~' s
9 ]" O$ f+ { Z; z- C
$ g6 ]& O' W0 J1 [& g |
|