|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
7 Y" i( N# V0 Benter macro ~. `, j: E7 ^ l; W5 k- g
push dx
+ B) j1 c: X- Z* T3 r4 ?5 O1 Y push ax' L. f O' q6 W( v# I
mov dl,0ah2 M& ^$ H5 p4 S% Q
mov ah,2, L! F: B+ c$ @% i
int 21h# e# v) }; m5 J+ a" d' B0 ^
mov dl,0dh
" T7 y- [0 T$ `1 F( u mov ah,2
# b T$ ~* Z6 G) f5 G, s int 21h
. F$ i E% K. v+ k8 b' Y pop ax# D* j4 |) n- r0 e
pop dx * M9 S& l, Z6 }4 M) t+ U' s
endm
4 ?6 [+ _8 P* h3 t+ V5 k, ?
: c4 o' G! n% F I+ hassume cs:code,ds:data
* V7 {. i; B. t4 {* `0 \data segment
0 p+ L: P+ ~8 ktable db 300 dup(0)3 i* ~) _. B! r" O, [/ b
pro1 db 13,10,'_________________________________________________',13,10( q% U3 ]. R6 N; O
db 'no more than 20 characters English name.',13,10
- b: a8 U4 z7 v# P! U M4 M9 B, ` db 'For example:',0ah,0dh,'liang xin hui',13,10
! f' ~6 W6 |- G0 E! J/ k db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
$ Q6 P% _- d! |6 V6 S% x db '.................................................',13,10
8 @5 Y5 p- N6 O9 ~2 S db 'Please input:',13,10,'$'5 J C8 s: A% Q$ Y! p j# A. B
pro2 db '.................................................',13,10
( @6 x9 @9 _+ [$ W5 h db 'The results are as follows:','$'. G4 ^, ?7 ~+ I+ j2 Y" |2 b
& O8 \2 N8 f: s+ k: E) g: y
cont db '________________________________________________',13,10
5 Y4 a5 a* `% B0 V0 Y& F db 'Can You Continue(Y/N):','$'
9 U2 d7 R' o8 H. G( r8 L, @8 R; Z' Y0 u3 s
cp dd 50 dup(0)
' n% c0 @0 X+ k2 X' }- m0 }* Sdata ends
6 z6 K C6 j2 _. H: O; _/ B$ ]4 T
! M' f5 [2 |3 }6 [ Q' f/ q4 {code segment/ ]1 u/ Q& V R; ^$ v
start : mov ax,data
& Q7 A) L7 u2 m& Y) s. M, t mov ds,ax
0 @5 A# q2 V/ _ call prop1
, [. z+ Y, K% s# K0 h! b+ J+ e2 t mov bx,offset table& M8 Q+ @ d: V
mov si,02 C1 {+ E$ B# T/ h3 q% U0 l* k3 o( O
mov di,0+ a. t8 u2 [# [* G5 n& w
: h4 a4 S+ B( r. B$ C
8 a' x5 n+ c3 F% {( T. w0 b call enterchar' j1 L4 q" W7 h6 z7 m
perp: 9 l3 l4 _4 J8 l* D1 T- h$ F: c4 R' g
dec si
5 O( d0 E0 J/ B+ @4 F$ h mov dx,si5 [. ~0 T6 j% E! Z, R; j7 n( C* g
inc si
2 z( g9 k V9 I mov cx,si: \5 j, j. N; l4 M. D9 E. c! F
call arrange
6 }, M1 D9 z- H9 O call prop2+ @$ t( b* w9 B+ {9 G
call putchar
( u6 j* l a& C. `0 e4 o5 A8 `1 Xliang:- A( z9 s1 u5 i& z" l' W
call Continue
) g: m- b* ]. M6 y call judge
/ |- y2 f" v+ G mov ax,4c00h4 H- ~: Y8 C$ G1 x) `
int 21h
- u) f% |& g% P$ `6 H
% T- v& @6 ~* h+ @; w* v- D
! Q5 w/ n7 e8 [% X1 k5 UContinue: enter% P4 P& d5 `* r4 \4 ]
mov dx,offset cont& ]' _0 |8 p/ Y- ]; @
mov ah,9h
) x3 j+ F: z7 g9 m$ n2 Y7 i int 21h4 w* V& ^" L( J( B& s3 w
ret 0 l5 W( x. ]/ D3 I4 N! B. v
9 E# c4 r7 F' _ F+ P. ~
judge: mov ah,1
# B, @9 e& r4 Q" _ int 21h
# B: M0 U6 B3 ~3 h or al,100000b
5 v( @0 n5 }- E" B cmp al,79h
1 d7 `+ o4 M. [: v; y je clear
0 [" ^, b3 K5 p6 y! \0 h cmp al,6eh
P8 G- t4 n, b/ S- O6 k: ~* s9 f je endj
4 U# a/ x: m$ a jmp liang( c6 \. ^! l; F2 d5 ?
endj: ret
+ H& g! m4 i( ? 2 b9 S( H8 V( A9 c
clear: mov bx,offset table
& s0 T; @2 j: K9 K- ]; A mov cx,300
8 j e# |8 R( ~4 Azero: mov byte ptr [bx],0! x9 R2 e, P& m/ l
inc bx( `7 E+ k$ ~/ P2 w
loop zero
, Q: [6 P0 O. e" F( M jmp start
! h* u$ k' P# }# G2 X0 r$ A+ ]$ Z: H* c$ g; a( s+ h7 u. N, M
X# L& j H# l E. l2 F4 ^2 N+ Fenterchar: mov ah,1' p3 |9 Q1 }6 {! {
int 21h
0 s! {- X" f+ \. n# ~) C6 B mov byte ptr [bx],al $ K+ [3 J( B' A8 e" A
cmp al,13' Y. g% _. V4 M/ @* U* F) T' S
je endchar
7 R/ E; @- b+ p- H8 k0 h5 b: ~ mov di,1
) E! ^3 E! \( N, q inc bx( w, u7 J! ]9 s) F# d; c# t
jmp enterchar+ P7 ^0 q% w* e7 t8 k1 u
, m; e- ^7 m, {1 f& Pendchar: enter 9 H! \2 c# x; O2 K" ]
mov byte ptr [bx],' '
0 i' o' w5 }! f. |9 z+ X; ` cmp di,00 F, ~. o- J: S2 U
je perp
) Y/ S0 A% S4 O4 B& h/ Y inc si
( y+ @0 j0 p! k+ R' c: G4 z6 b& G! C mov ax,si+ ~2 ?7 s w2 Y; O3 `' G" {: U
mov dx,215 }4 n# ^9 Q9 x' j3 C6 J: |, x
mul dx
3 `& {7 h+ s/ E+ r5 }% S3 v/ P mov di,0
: `3 [+ `6 e0 e- H# Q( p. p" g mov bx,ax , e& R2 Y9 C: K" e/ y
jmp enterchar
4 J" d, g1 Z+ ^ i8 a1 B: r2 H! B5 D: y0 s5 U/ L" G8 Z+ l$ H
arrange: push si
6 s1 I k8 W$ ] push cx & O. W' K+ u; K: h
mov cx,dx % ^ W. ]1 k/ h- A/ \! I( Z
mov si,0
5 O0 d Z: i9 {* Q! Y mov di,21& {. Y- N) I; t
. e/ V0 A/ u# ~s1: push cx
! i( j4 H$ a- J% G mov bx,0# b& p! v- q2 P8 N
mov cx,20
: ?4 F- e0 w6 G: gss1: mov al,table[si+bx]* Y5 O0 |$ g! d Z1 j' u
cmp al, table[di+bx]
" e% U- x$ ^+ n1 Z7 A# O, i ja jiao& x1 c3 j+ T8 T/ C4 N9 D* }6 y
jb s2
9 Y6 B! v4 P1 p1 t inc bx
# W5 t% z. \# a' a loop ss1
# V# a+ L' \$ w$ Z7 C1 j/ B jmp s2
* ?% v& o4 x& x4 L4 c0 L$ {) V& Z
/ J" T5 l, n& R0 C: w2 r$ h! R) Fjiao: mov bx,0
$ ?( R# ?" S& w; G! A9 K: r mov cx,20
4 p2 @. D! y; I7 [+ x4 ]) kjiao1: mov al,table[si+bx]
9 I. h5 t7 C) q4 v$ W& t" s3 Z7 z7 [ xchg al,table[di+bx]
6 G( o6 z+ z# H mov table[si+bx],al
4 K, a' E, V. F/ ^; v inc bx
w8 m$ u5 f3 j, b _ loop jiao1
# H# O: h- _- k4 q- h
9 r. C3 s1 O: p5 Q: D5 Ls2: add si,21: Z/ A2 z$ e& w7 ~* w
add di,214 M. E2 g+ G- C! [) C" f6 R
pop cx9 j6 B9 Q0 V- t; G S- a
loop s1
6 z3 O! t- B4 C# ?7 Q8 H7 ^: E9 G$ y2 }. k1 [5 y+ I" D& J
pop cx
7 o6 k& W D6 G' t# e pop si
! f- `( _4 Y6 M' F: |+ _ loop arrange0 h7 R9 {* W2 r% ]) s- }; q
ret
; _3 i+ }' t" ]4 W: n! o6 ?- r a+ T+ N5 u/ S( \8 m# Z) T
putchar: mov bx,0
- F- U" V: }: O- R mov di,1$ a# s2 L5 ?; k+ V+ z$ t
) U; K7 x% C% c8 |: z' V( Q
& S, ^) Z$ z7 Z mov cx,si
' }+ i! b- L7 H' H- _put1: push cx) B/ D9 {6 f& x: i; m% b& p% U
push bx, I3 ~" @3 ]' u- d( i
, _1 X$ P3 w# Q: N) L9 G enter
( g7 b$ W! x+ b( o1 \( Z$ l
! K" q3 |0 K! ]! B2 Z* r p9 i( t mov bl,10
/ e. e* K. s0 \# b mov ax,di
) e9 r# X' i5 ~. [1 M& s div bl
" w8 P4 K: V+ e1 f0 A, ? mov bh,ah
& o5 S [% {4 X0 Y. \+ G add bh,30h
2 J* o% \6 ?+ {5 x: r% _) R2 } add al,30h
% J6 V" U. S- C. r3 g ' J8 f8 w% F4 K& L( t# `( m3 F
mov dl,al
* J$ f4 ^* J4 l5 P mov ah,2
$ s7 O1 `( R$ {$ {) E6 R int 21h% g+ W* R6 P7 ?3 N
mov dl,bh, K7 g/ }# z. y
mov ah,2, ^" ?! A. t) A9 J3 h! t. |
int 21h$ E0 N9 } c, V! K
mov dl,3ah
1 Y% V3 \- i- r1 I" Q& { mov ah,2! w7 v2 w* j B) V- C% Y- r5 l
int 21h
# u7 u" X% Z5 \! X pop bx 4 B: n; d( j# ]! L
mov cx,20
: o" b+ p4 e `3 N B+ b push bx
% m' H& I$ [" i) d$ Kput2:
u/ V" J/ w# G7 U( s# C mov dl,table[bx]
+ s% T5 E9 B7 ]# b& e mov ah,2h
) f, U: V# |1 v% w9 y; `4 @/ D! T$ D int 21h$ f5 _7 C% X! u# Q6 G
7 R) p$ D) q# x" }9 z inc bx0 t$ w5 i$ k6 D
loop put2
: }$ e0 d8 d4 ] inc di / H' _2 j' z! y- h- U' [
pop bx) _5 A1 t5 c8 m* j$ l" M
add bx,21( @* ~6 P* v! ?: h/ r. A
pop cx/ D% g/ l' ?+ R( Y) T) [
+ \! `% V4 n9 I$ ]6 P0 }# V7 M loop put1: a9 ^: Y& k% [
ret. I* j2 a% s' o: [' F, V+ x0 i- {
# }* `* w+ Y- Q: J$ yprop1: 5 w T" m" ~# R$ {3 n: x
mov dx,offset pro1
2 h! _7 P# b* e( l+ _ \- | mov ah,9h H$ p6 {8 |: H
int 21h, B) s. s* Q* P. P8 ]9 z4 i0 d
enter
, x0 e0 m, k' a8 I$ D2 V ret% k! `2 s1 w$ y# Y/ M% `
7 m' D4 F2 J: m( [* Z7 p
prop2: enter1 o6 k4 H0 i2 l
mov dx,offset pro2
6 o* e5 k' N2 |0 b) k mov ah,9h# b: h7 q4 i1 E, ^% V- z
int 21h4 T; @/ t; ~- f5 b U' P5 q( u, q
ret+ a# Y2 j/ g& _' g( Q; A
# W& F( V' X9 K( A" K6 B( ~
code ends' `! v0 K) `% { C7 W9 t( I
end start; T8 S8 E1 Z" d1 q# i, z& g
9 u- U, f- `6 r
# ^+ B6 h/ d1 d1 X
|
|