|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧 r0 F7 }; ~( r2 } }, E
enter macro3 l6 w. t7 K/ t$ n' ], m+ w
push dx* {5 E$ u1 i# o3 m/ E: a
push ax
# u: r& Z4 c& d% q- U mov dl,0ah
7 Z& l: l3 G+ Z4 P; y5 @$ @: n0 q mov ah,23 x' w* \' i$ c/ H* L m
int 21h4 ~* W9 b% H( q; G! s
mov dl,0dh, r& n( k' ]" i
mov ah,2
' ]9 f6 h( [# ^$ o" {. P int 21h
, F! H/ X6 f4 r( n7 O W; V5 F pop ax9 t- Q! a7 U+ V! [8 s7 g" v g
pop dx
3 f: c t5 O6 Bendm. ]$ `: ^/ j$ i3 ]1 Q1 y$ ?+ ?4 E4 \
+ d _/ B0 v% W
assume cs:code,ds:data
' A) r6 n4 ~# {* _" k9 Z/ J5 W* {data segment
$ ^* t: o, e. T, y/ ?table db 300 dup(0)
2 T/ _. i0 {- F) C5 z1 {3 _pro1 db 13,10,'_________________________________________________',13,10/ q- J$ e5 c4 Z
db 'no more than 20 characters English name.',13,108 k7 A+ t' C7 {) d y2 f
db 'For example:',0ah,0dh,'liang xin hui',13,10
3 l- A0 b4 V/ N( V% C' p db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10/ h2 }/ Q& E4 w0 D9 w
db '.................................................',13,10
4 b* ]$ W) s/ y1 }; T1 T db 'Please input:',13,10,'$'
' f; {! C' C( h9 U6 |pro2 db '.................................................',13,10. i; F4 R" m9 a; S
db 'The results are as follows:','$'- T* {7 R' g! ?" ~, ?
) Q2 ]6 Y2 D7 r! |
cont db '________________________________________________',13,10
( @& d2 @+ {( q2 \ db 'Can You Continue(Y/N):','$'. P+ }& Z& [: R$ c' D( ?9 ^# M
5 o: M: L$ O/ f* P! p8 d1 A A/ s
cp dd 50 dup(0)
) h, |3 |) |: Idata ends
; y1 ]1 e. ]9 o& ?0 ~. ], j7 p- w7 i) d+ m0 a0 g. F8 B
code segment8 f' k: R4 Q3 d3 e7 S% G$ L+ F5 E, S
start : mov ax,data6 U4 c& W$ c& m- D5 J7 y
mov ds,ax
2 y! P) k9 ^4 q call prop1
T& }/ L7 o- v7 k: U( V) i mov bx,offset table2 e- l& C( a- p* _9 y4 `/ Y' Y6 k
mov si,0
# D- x8 P8 r! B# s9 g mov di,0 y' |& I. F3 h" i C1 i
9 t- }4 Q8 b8 ~1 |% W7 \- i! E
" W5 u" t, r3 E% O& v3 { call enterchar! E) y2 E& ]% X3 i9 f8 Q5 t# \/ }
perp: # x/ P0 B# R+ L3 d% n' ~7 G& _
dec si6 d0 f3 z! a1 l% Y( C4 b
mov dx,si
: E7 b! O, b# u+ i& U7 P inc si
: e) s! n5 M* u4 N1 Z# j% K | mov cx,si
' G' I4 Y0 i, A4 U: J. v0 N- }) c; o8 M, n call arrange9 ]$ C/ {+ S7 h' y3 I* S
call prop2
`- J% G2 t$ @ call putchar% n9 c: @9 A0 t% C) ^$ V6 c! Y
liang:
, a0 d. w9 o! y! g' L) k2 B call Continue
9 m# _; }- O* E; d7 _ call judge
8 y" K! Y4 J+ C' s9 Q mov ax,4c00h
7 Q2 J2 _1 h4 J int 21h
' f0 l# O0 K. c0 G' [* K/ j( u( ]4 t& E0 q k1 R) O
' N9 K, h" l: M K, C# fContinue: enter6 ?& B7 x- a( P, `: W1 x
mov dx,offset cont p, W a3 G! L S) d) n/ {
mov ah,9h9 U& J+ y- M4 L- m* ^5 | o- H
int 21h' h! \) R+ H( T" ]4 i) ]$ l! c
ret 4 x2 `+ m2 D8 \7 `& Y% i9 e* Z
% N; X8 U5 |' |! j$ I3 _
judge: mov ah,14 h. y' o8 G Y) x
int 21h8 Y: e' B0 ]7 R4 U$ u: I# d
or al,100000b
6 s8 q: k; O' C0 A |8 j6 P, _ cmp al,79h
" T' F8 N/ z S; ?( y5 R0 c$ s je clear
+ ^8 Q. I2 Y" u# N cmp al,6eh
% ~- s. G. x0 q$ \9 E$ E6 _ je endj# D# Q: A2 {4 b
jmp liang
' ~2 E3 v7 K$ G1 Yendj: ret
1 N" B9 }! X, S ( v8 I! T( V) k- D2 p G
clear: mov bx,offset table$ C% S6 V# o6 o0 W" }+ \; E0 P
mov cx,300
+ d$ s& a' b, G/ k8 ]zero: mov byte ptr [bx],0. ~9 R/ P5 D8 K; `# C7 d3 k; @" E. `
inc bx# A5 O a* {" d% s5 J
loop zero
, j) c% |7 G# t& J jmp start7 x3 }+ p0 s4 u: y- b1 a1 J
7 O# `' I, c' d* H x
" g" W: V7 F3 w, fenterchar: mov ah,1
( b. r" Q" Y" j N int 21h4 o' N/ K( f6 B, `+ Z8 X
mov byte ptr [bx],al
$ G* ]+ x/ U P- x! t$ n3 o4 q cmp al,13
6 ^ g9 M+ A+ S* A! N+ d je endchar / r/ g( H [/ D
mov di,1
7 _4 ^/ @4 g( X+ x1 U inc bx) \2 k+ B. w: J$ p- d
jmp enterchar; T" Z: ]1 C! S$ F5 o: k+ T8 |# e
; H: R! Z; ~$ G3 [
endchar: enter ' A9 J# f. V" W( t+ ^' \. x
mov byte ptr [bx],' '
1 k& I) T; l9 k7 B; g# z cmp di,0
0 C5 c5 J% K. S0 u je perp
7 r# R8 S8 p, }; F, B inc si) s+ ^& j# t* z) t. i! t* U/ j
mov ax,si
1 K ]& S1 ~2 Q |2 I7 G0 P mov dx,21" s' h/ `; _0 r" L+ d$ g ^" H9 F K
mul dx
# K5 |% n# ?. u4 Q mov di,0* C% |/ z" Y+ Y
mov bx,ax
: E* l' M$ b6 n+ ^( y; v jmp enterchar
) {0 J% H, V0 \, h+ Q
2 M9 r5 P7 `, s" m! z( marrange: push si
6 j! p* |/ J, A8 z+ ^1 O$ _) S push cx & D( c" l& f: t' k) \8 C1 O
mov cx,dx
7 j* [. n5 e/ h mov si,0
6 c( g" C% Y+ `& j mov di,21
& L6 {+ U& _* V1 J% j5 S
3 |5 D! m \& \$ L7 _s1: push cx
4 |- s W. w9 C% M- V q# N mov bx,0% u" c0 ]+ F4 }8 A( m/ o8 X' O
mov cx,20
3 w" @& j) Z( z, k ?4 Zss1: mov al,table[si+bx]
0 }. I! {: q% I ^ cmp al, table[di+bx]4 e4 t' w X/ o5 i# \5 r
ja jiao. Q$ x5 ?- m8 r, ~, E5 Q
jb s2: |' g; e5 \6 e6 {$ w4 X" I0 x
inc bx" l9 a- i6 A. L3 i% {
loop ss1& z9 j1 H6 k: Z! U
jmp s2% D1 O2 l% t/ @( `4 ~
W: I: ~: J" X y* a/ ]8 \$ p
jiao: mov bx,0: N- T3 o. n" s2 v- e: u: t9 G
mov cx,20
) w3 Y4 w+ @" d3 Wjiao1: mov al,table[si+bx]
2 `0 W# } K, p" R1 V; L Y, \. `0 \ xchg al,table[di+bx]- d6 }7 e* s# w1 N& L
mov table[si+bx],al' r* I9 b6 ]" @3 P8 G) `
inc bx
4 x/ D$ E* D' d. X- P% S: }' R loop jiao1
8 e6 x4 N" j. K: H% H" Y
" y* w0 O1 [5 Fs2: add si,21
8 w, r7 M" ?/ W+ L# R- f add di,21
5 h; x0 c) X+ C* I U) z+ @8 Y) Y7 b pop cx
3 w- [8 y' x5 X loop s1* |8 W# ^( h- s J
0 v1 i: T- u( d pop cx
+ M7 K6 P' X$ B$ M: r0 [/ p pop si0 J! m7 |6 c/ T* X) b
loop arrange8 K% V$ H* k+ t. P$ Z- I
ret
$ m- q( Z" f$ e2 T0 j; m7 n2 K+ a& i
putchar: mov bx,0
4 P. r8 [- D' l- L8 p+ Q mov di,1% R7 \2 r" M0 N H
0 _! G, k7 P9 e! y% C+ w: F# D
9 b7 n% C8 X3 `3 J8 b" H/ n: b
mov cx,si D5 R7 O+ i" e/ v; v6 E/ F
put1: push cx$ }* m3 l, k7 M- p+ v
push bx
1 y4 _0 X' j9 E& m4 @; h * @" R) E! Z7 c, `/ r, y% Z% l, x
enter5 V4 ?& b$ _- f5 ^' [# c
" @' m8 G0 i) p3 I mov bl,10
6 ~7 S" p7 R2 S% s" I" x6 i& |+ b mov ax,di
1 Y$ ]4 J7 S9 ]$ j V& U6 K5 @ div bl
6 a8 |$ [! T6 r0 l' j8 q9 R mov bh,ah
% P$ E9 S" P& @6 x o; w# h$ ]8 Q3 Z add bh,30h7 }4 f; t* o2 a$ v: T+ j2 c+ [
add al,30h( r1 |8 a( d# ?4 P2 c
# E0 W1 z: Z0 D* ^6 h
mov dl,al! q; d: ]& w1 H& I+ b
mov ah,2% d2 ~* q0 ~& m5 S* \
int 21h
2 [/ b8 [8 z5 b+ T' D0 g mov dl,bh1 y) J8 N( F# L7 Y7 o$ R
mov ah,2. |/ Y/ I5 }. q; P
int 21h
/ |# C2 d9 ?- `( Z! F8 p5 k mov dl,3ah( ]# B2 l( B6 j l4 s
mov ah,27 S# C3 f; x# ` n9 `
int 21h1 R6 i7 u/ A2 C( F) Y$ k
pop bx
5 M; n0 e) o W9 d- S mov cx,20( C6 D! h) F" _$ L# j
push bx. u0 \! \1 X U
put2:
$ b0 n: w; ~3 f( n3 q( [ mov dl,table[bx]
5 a4 j( W7 M# z9 `- b' L! _& B mov ah,2h) P. R5 B" A j" _0 K5 L
int 21h
( L1 q+ o# Q$ f
5 C" T" D( {; [, T inc bx
; U9 e& X2 T3 J+ r, C) t loop put2
d" Y: [$ D- L( n& Z inc di
7 H! ^5 q U9 i5 ^ pop bx6 Q% s- p) m% U$ r% A
add bx,21
( U' J. L% [. N C( B pop cx
3 w% @' W+ t" ?# j3 ~, D* m) p3 y
: \( z- S+ D f# y G: L) s, o loop put1( N4 x( r7 ]( r+ r' |& u# |# W0 V
ret
' h* R0 ?) x8 e5 \2 B* x7 X: Q2 b) M) W
prop1: / B5 C1 O* j0 T' `
mov dx,offset pro1# I/ X* I \3 m8 h* I+ O
mov ah,9h
$ {* w/ d$ U) ?0 y7 Y int 21h
0 g) C+ N3 D+ u! x8 u8 w+ t' [ enter - a2 w m- }9 ^& k& [& v7 r
ret' E- @) D$ w9 g+ w+ l
3 i5 s# h/ e0 O I$ G( o hprop2: enter
' E) D5 p( X1 H- T1 s9 `: ^ mov dx,offset pro2
( R" ?2 n4 S; h! a5 S mov ah,9h
# d h) J& R0 I* A int 21h2 Z9 p5 e+ f) n& [3 A
ret
% W3 e7 o; ^. [( b3 T
# ~, L# y1 @- a( b. j1 ^code ends
: |6 a4 |3 E# H% O% D& n& Mend start1 D H9 [$ c4 l: |
* j. x# ?: @3 M5 U! t' R' h5 p5 y7 e# M& a& S4 m% c! B
|
|