|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
/ M) ~3 `, M7 v, S; x3 Menter macro
1 r# g& }/ c: b. l' x push dx
% c: R8 U- L- L7 T1 Z, { push ax
8 c, g) j+ t( k* n" i9 l mov dl,0ah/ E& q" C# h; y' j
mov ah,2
$ a, p9 b; R8 W* ?* V int 21h
% d* _% V+ {2 Y; r5 q mov dl,0dh9 n }& t! {; |4 w
mov ah,2
* g; P, y/ A$ [. }1 C, X6 C int 21h
+ U8 u7 b# Z; l, a pop ax0 k: e4 Q9 [" {( f! F0 ]( [2 m: m: ~
pop dx
8 \/ s3 n* c3 s! I8 ]" [endm
" `* Q3 H: v& ?* W2 c
+ ]3 ?$ U$ ?8 g. [( bassume cs:code,ds:data# Z6 B. G' ]* M# ~3 U9 X6 k" g
data segment+ T# W ^. `' W
table db 300 dup(0)9 [) {; l, m. g& C( V7 |! |! H) ~
pro1 db 13,10,'_________________________________________________',13,105 w' J( i, W4 t: q$ K& n* b2 o" W- i* o M
db 'no more than 20 characters English name.',13,10' ]5 _7 o9 r, H0 B; p2 o
db 'For example:',0ah,0dh,'liang xin hui',13,10$ Q6 B5 t4 ^) u* L5 W
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
3 |( N* m! e" D4 X- J' ?! f db '.................................................',13,10
/ h& S% K8 v, M& j! m$ @6 _ db 'Please input:',13,10,'$'0 n, z7 l7 x: s* X
pro2 db '.................................................',13,10( c k4 ~) G, j9 S9 `) z! _
db 'The results are as follows:','$'/ j6 ~( E/ p4 i* W0 ^
# {! P* d7 Q! g6 u& r! X4 hcont db '________________________________________________',13,10
7 Q' ?5 [9 h, D1 {1 d% @* W db 'Can You Continue(Y/N):','$'" t7 C, n2 X: k1 z
7 F& T$ n) G u* c- K: W9 |& J
cp dd 50 dup(0)2 \. w/ a* h; Y; H; c
data ends) G4 h/ }) j3 V- L& I
0 A8 @- D B4 }; O5 }
code segment/ k+ M/ O% t" `. k
start : mov ax,data- ?7 {6 y( a5 N8 I, N
mov ds,ax
4 @" D0 d* y3 u* }/ D0 I call prop1
$ Y- a6 ?9 R2 l' ~ z mov bx,offset table/ q# A/ F, J7 q6 _
mov si,0# Q- r7 v3 t: n) Z$ D
mov di,0
% P! x# Q3 o" \2 Z8 j( G2 S' P
0 _$ D3 W; L* o4 \2 }
' X# j, g. H. i call enterchar1 b7 i7 `, w( \ Z- u
perp: 5 @8 n! W6 F. ]$ g- z# q! a# l1 N5 e
dec si
0 B( K; R3 W x mov dx,si
" P( a* x- r/ r4 X4 h9 Q2 q inc si ( m& j* |: J' }8 C1 R
mov cx,si
& t E( p* h8 Q' E f! k call arrange" H4 C: B; C/ k, g6 _
call prop2
5 }" [/ a8 t& d, t: r call putchar) S; [3 n8 q$ |& d7 y! r
liang:
0 W4 D1 }0 H; R call Continue1 d8 @9 t) C0 k0 X' {& G
call judge( X9 S* q! d6 B% j# `9 i. D$ y* @* \
mov ax,4c00h2 |$ s" |' }2 H4 O4 i
int 21h
: G0 ^; Z9 p9 J* J. {. _5 e# C$ ~& W, w
: x6 K5 |4 x5 MContinue: enter% `; b( _8 P& R5 I. ^& R* E1 J. P
mov dx,offset cont. i, ]1 n: {# ~
mov ah,9h' ~5 A( ~ E8 N# e$ E2 Y1 H
int 21h0 U6 E" z) I( D( a9 p
ret . S! Q7 m, h9 m3 M6 f! P
+ h3 `4 K% a7 j
judge: mov ah,11 Z, d) W) U9 g
int 21h
/ w4 g' V$ E; Y5 P, K4 z or al,100000b7 E; R* J3 b2 \* V
cmp al,79h
( }4 s8 | r4 b) F je clear
v6 b _9 f8 B+ s5 t+ Y" K cmp al,6eh
/ f6 Q: o9 g }& R: @! J+ p1 A je endj
4 k$ W k5 r V, j' } jmp liang
" p8 x% z2 R0 W9 ?/ ] f+ m eendj: ret , r( h5 ?: }( j* |5 Z* ^+ k
" d" n3 o) D( i B5 h$ r3 V& j. O6 K/ d
clear: mov bx,offset table
. W4 n- |1 G5 ~) g" H/ i mov cx,300- f' m V+ v* _
zero: mov byte ptr [bx],0
7 M) m/ S5 C: q& X* G! v) g inc bx
$ X5 m, L! C+ ]- @. p loop zero
' x0 X; e( d6 b0 s/ | jmp start( q( w" [4 A6 ]1 _0 a* u5 J+ X
3 h2 w3 H" q/ a
[# E) P3 f }3 F* W0 _1 b
enterchar: mov ah,1' ?7 Z6 h* ?# |+ ?* v
int 21h
4 N& o4 v$ o. R- z mov byte ptr [bx],al 8 O3 ?/ }+ Y( c
cmp al,13- r, a9 ~% }/ v1 K+ ^1 n1 I
je endchar
0 |4 k) n5 r' y, [2 D mov di,1" g l9 o6 G$ h6 v0 F; J. z
inc bx
! ]* }" q5 f! a5 p8 X9 i jmp enterchar
; A$ H- I) h3 N1 R7 [
3 ~2 V: |( F3 j1 x! W$ M, d' Y. q, j$ oendchar: enter
& K' U" s+ \& g+ i( ^ mov byte ptr [bx],' '
2 t" W* G6 F8 {* ]3 M cmp di,0: l6 e# Z5 C$ C
je perp
8 X9 B" M! F3 J" g. q9 s7 z1 b) i inc si
$ s5 y: k" H9 E- F& k( Y) h+ Y3 z mov ax,si# }! ~3 d3 k# h; C& f
mov dx,21
3 z* }& M% F1 Y4 \+ t mul dx
$ v% q0 _% {" K" X mov di,0" y5 G# V# J. B" T! @- ^
mov bx,ax + ~/ V4 O; i5 Z1 W2 v5 V2 |4 b; n) V
jmp enterchar' P# j8 z+ j) i
' y: J2 t y1 M4 }0 O% W( L, e
arrange: push si
3 N* r4 {- A3 I push cx
! `% Q- U2 j& D mov cx,dx
# h# J2 W& n% t5 }$ g mov si,0
. S5 c: f: Y% V; H' y0 ^3 m mov di,219 }. c, f& X1 S
5 t$ A: W. E; A' x2 U+ F2 A
s1: push cx+ h- M/ r4 C! z; w! F% v
mov bx,08 ?# G; e( D2 b4 H0 J
mov cx,20; ?4 y5 G1 Z' ~& ^$ g: f
ss1: mov al,table[si+bx]7 s; b7 B/ R1 ?
cmp al, table[di+bx]
3 v+ n% b) n" W# \# q6 h ja jiao
; A& x. U! Y' L+ c! f/ E jb s29 J1 C; j, L: \3 r# Y3 ~+ W1 }# l& W& a
inc bx
4 ~. g' N. }8 x* B loop ss1
9 o9 Q( }7 D- m: @% U k; F3 I9 p4 c jmp s2$ k- F' C& _+ x7 j
- T# n$ h7 B$ D) u' F2 H) f5 j
jiao: mov bx,0( y: Y- V' T; Y' _7 y# a3 u O
mov cx,203 j4 [3 H9 m* ?% S/ j9 S6 q
jiao1: mov al,table[si+bx]
( w$ |9 `7 O; |/ T" ]$ ] xchg al,table[di+bx]; S" k4 P+ M) s& D9 h% `
mov table[si+bx],al
, ~; C9 a8 H3 q inc bx4 ~" Z% w! Y: S% n E
loop jiao1
3 c$ k( X( u" J8 z" v& a
0 v6 \5 E! R ] fs2: add si,21+ v& N+ Q6 N+ z3 g
add di,21# q, a# j) z `$ F- p/ V
pop cx$ _$ R: B, J' @; b' Q) C) t9 D
loop s19 Q% f; y9 e/ `9 a/ o- F/ G2 k
x1 s7 @0 @, u0 p* f& o pop cx3 u$ Q. q& [3 }: L
pop si3 @; I2 q' `+ N, Z! ~- _
loop arrange! n+ S0 f- _! h: O3 |
ret' X; Z+ k, i* e/ x5 E5 X
3 a7 r3 C/ c& d1 f5 ]# h5 n1 m
putchar: mov bx,0
; v" C2 O7 U( U+ F# `: P. x mov di,1
9 a2 f0 l8 L" _2 w' f
5 E g6 _+ v, ~+ o2 E4 y
3 f/ u6 O$ i5 J( }' ? mov cx,si
( j" H% V+ x; X0 F) L. D( Kput1: push cx+ ?: [3 a4 F8 n( ]# X& i! c# C
push bx2 Q$ r6 E- D2 m; b) e ^
. P) f: v: z" K
enter
# E. P& S% ^* l5 u0 W$ k, \) z3 H 9 P0 w; ?* R2 d: I0 r0 @. A
mov bl,10: f( f2 L- e# R: A; P3 S
mov ax,di; f$ ~8 x+ W5 x+ w5 j& ~
div bl- L! n2 C+ W( m
mov bh,ah- P( \0 w. q' ^$ c/ t
add bh,30h: w6 `8 S2 I7 D9 X4 {2 e
add al,30h0 N" ~6 C( [; T" {" F, q- z, I9 f7 e
: o8 o4 `3 Q" c2 A7 v2 B% q
mov dl,al
" g$ F4 T* ?0 N/ C, X mov ah,2 Z+ n* S# Z4 ?) b( h$ [
int 21h
& V# @- N; i: s0 @% I T, g& i; N mov dl,bh8 p9 K7 u4 m @: e
mov ah,25 Z2 g6 Y F# g5 i& i% h F
int 21h
. b- f1 y; y0 a0 {, ? |+ h mov dl,3ah
9 c6 O. g( Y' N7 g! G mov ah,2
$ @- L, A0 A: l9 G! b int 21h
1 E* ^* s$ j, W) P pop bx & D& |+ e; c: ^5 [
mov cx,20
$ J9 y X2 Y2 v2 a' V) Y3 Q push bx
; B `4 A/ G, L; W+ l# w) \1 f$ ]( _put2: ( {, M f, p9 J6 e6 C
mov dl,table[bx]
" o! Q" W. {7 T3 I' g; E. C2 _ mov ah,2h1 i) W8 S2 o% ~
int 21h0 ?) g% [: E* x+ z, \3 v# }6 }
1 |0 I2 e! G" } inc bx
9 T F+ b3 m# q$ y% `' E' B loop put2) j) Z3 W: Q3 L# r2 [8 G
inc di 6 ]7 i0 @1 X# ~- a& @* C, J
pop bx
) I( a. p( H. ^ add bx,21
6 V3 z/ Y: c. R* i1 a- Z pop cx
$ M6 t1 H* O! R' `
Z& H2 N9 T1 N loop put1
* V2 N3 w$ ?! ]; G% p7 _( U6 K ret# A6 ?# }5 a! [0 V9 P0 W
! ~+ R# V; v- b; N
prop1: , O9 I4 I" o8 |" D
mov dx,offset pro1
7 r w; J, D/ s4 e mov ah,9h! m! z' P: I$ f# n' m/ s; Q" r+ S
int 21h, W6 Q, X) {) T- }1 r
enter 4 S- I4 C" C+ x/ T3 R8 F* e
ret
% q$ v4 v4 G! U# \$ V) f4 K: N$ @' p2 ]5 e( i0 D
prop2: enter' G4 S: A! o4 G3 U& v4 U5 |: G8 \
mov dx,offset pro2
( B/ N- t# y& ?/ l mov ah,9h
2 S: x5 p: x- `; X: V7 P3 Z t4 S [ int 21h
1 L( p9 Q, e1 d- I$ y$ N ret# m7 {" M4 W/ W3 j9 [
! g! R2 z4 V& O$ V* L0 i& Xcode ends2 G% H8 \9 E% ?4 B
end start- M8 S' V) ?' C& W2 j+ B# p) [9 P
* c/ P V3 c* q0 V3 i5 M" ?
! z: S- b: R* c+ @3 e |
|