|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧; N, g3 g, K7 `5 t3 _0 U; X
enter macro2 [8 p7 n0 W0 u0 p" G3 f
push dx) T8 L5 e9 \+ L+ V m# ?) ~6 b
push ax
1 M% s6 j# }3 r8 }, u( a; r6 x mov dl,0ah2 G8 O7 b/ X1 c; J k2 G" l7 W
mov ah,2
( ]; c- v" n C8 {8 t2 L int 21h4 p% f j1 u+ b
mov dl,0dh
) }. L. O) s" @, g: P/ l mov ah,20 \( c0 F2 F! L2 n4 ?$ y) C8 R* c
int 21h
, r6 E$ _5 N7 D! `; r, D( w' F pop ax
' f; L/ L. @' D$ F4 Z) s pop dx 9 v0 ~& r: l- D$ V" y
endm; ?. P. K/ \0 s
# x" R8 z$ J( f# Z* L. I1 Y
assume cs:code,ds:data
) i/ {" ^6 R/ C) H/ e0 o/ qdata segment# [0 P( y4 L! _3 H2 b
table db 300 dup(0)" k# R% r Y8 S7 T: Q$ J% l
pro1 db 13,10,'_________________________________________________',13,10. G' j6 M1 e0 H' Y+ C
db 'no more than 20 characters English name.',13,10- C7 I0 S, Y! X# t# P: h/ w8 p0 G
db 'For example:',0ah,0dh,'liang xin hui',13,10
) ]2 A2 L, G3 }; P) x db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10% s" {) D$ @( @
db '.................................................',13,10
$ b/ n9 N' y3 ? db 'Please input:',13,10,'$'& ^0 X4 G7 R8 f1 z( v
pro2 db '.................................................',13,10* h& U/ K4 e u. S
db 'The results are as follows:','$'
& f/ C6 c. v1 Q3 y
8 }6 s3 m) {9 Q1 `cont db '________________________________________________',13,10
6 u. W6 t- g0 J6 ~/ d0 s db 'Can You Continue(Y/N):','$'
4 ?. u; h( U! Y, `3 q- V, I k6 I6 {/ {1 x
cp dd 50 dup(0)
4 N, p% X! r% u4 Ndata ends+ a* f$ R5 P, N8 z, {6 f) n/ _
1 |5 N+ y6 h0 k- i4 E. t% U5 D: U
code segment' n1 V0 D; M8 _
start : mov ax,data
" w E( r. _1 y4 k# c mov ds,ax q% u7 O, b) y4 M
call prop1; ~- G! @# G# k4 s2 Y; z" e1 a
mov bx,offset table
# {6 \: D* _! z! _$ M3 ~ mov si,0- { a* d& G4 X0 `, v& ^* l
mov di,02 R: M$ [+ |3 [+ L
" P6 r+ H2 I9 a' f1 O9 B , }7 L, b2 h: n. `
call enterchar e( e- R4 U- m- W
perp:
( N2 R" y0 x6 J4 r% J dec si
" F ?4 T7 P4 ^, s" P* q mov dx,si
7 R, [% u4 J _ N inc si
; m2 i8 ~7 T& _8 f9 Y mov cx,si
5 m, [ |# F# h$ k# R7 |1 ]& h! o call arrange3 g7 I7 k6 R- |1 M# ?$ R6 m
call prop2/ h. O9 P0 s1 N L, s
call putchar
$ E/ l5 G8 b% ?7 Y2 t" _liang:
B) N0 n. R& _" O3 @ call Continue7 Z& L0 I2 e& `' P! |7 l4 z) e/ }- L
call judge
; A2 x5 e2 d6 c" X+ u mov ax,4c00h
# a* K$ ~$ E# y! y2 w# F int 21h: `) d) a& t+ f
% Q* z$ G+ ^- \' ~3 E; I* G# N. k
$ _2 C) ?8 d2 c0 \! V* AContinue: enter( u) Q* T2 O0 B5 p4 I
mov dx,offset cont/ G% L( |* @5 D: o
mov ah,9h& z S, Z2 D' d7 N X, }. g2 B
int 21h" A4 b9 I8 A6 V# c& t, A8 p! m0 Y
ret : }1 A6 G8 E/ W) s! C
) d8 h- O$ V' |- \, z, H) [judge: mov ah,1! k8 l$ n8 r$ R7 g! Z
int 21h* Y4 J0 ^0 g0 `* b' V* A+ F
or al,100000b4 J# D* d, y' N2 Z& ?
cmp al,79h
' e) @! V; Q- ?; q, A: `2 F7 _' ` je clear
y, s$ d7 J+ K6 ~3 V3 I0 K) s2 J cmp al,6eh
, j2 G; S6 M5 x6 z5 O je endj4 p) Q' S$ Q! R" o
jmp liang
" \/ A4 P+ |0 i3 l" n, wendj: ret ( n2 g% U2 o0 ?
4 n( V: K$ {/ x1 aclear: mov bx,offset table# u. S* L3 B( E; p' r* a
mov cx,3000 }: a6 V5 e* C7 _3 \* ~* h) ]' `
zero: mov byte ptr [bx],0
* P% a" x" L- \1 o inc bx# r9 \) H; a }% H( C8 W5 C: @
loop zero6 e7 e) J( k1 q3 D, ^2 M/ K
jmp start- r3 w! B" v( b: ~; L- |
9 _+ t5 P# E# d6 z n9 Z( k2 h3 u$ P" j
enterchar: mov ah,1- g; t4 t7 G* X- j
int 21h
5 L9 V4 H9 u; C [$ R mov byte ptr [bx],al , U+ V! w' j2 X* E2 `
cmp al,13
9 k6 ?/ ]- z; a0 g je endchar
( b% F8 v; `( g2 d' d6 J$ M8 [3 o2 k mov di,1( |8 S2 b; }2 t0 E3 y4 o
inc bx
+ p8 Z8 a3 b3 M* O. u! V9 a% Q6 ` jmp enterchar
4 U/ p& A' E0 J, }3 t! ?. W: L, ]' }- I! Q
endchar: enter . j" F( n" s9 o4 N2 D1 `3 N
mov byte ptr [bx],' '
7 ] k4 s; O6 Y cmp di,0
x" |1 D2 ^$ e! ]& X4 y. T3 F" S je perp1 O; J4 _+ L. G
inc si
. w) h. O( o/ C8 E# \( q mov ax,si
4 K+ A/ D1 u2 g) B/ P mov dx,21 K3 [4 M/ ]6 b1 g0 i$ ]4 Q
mul dx7 P' X, B; d3 e4 X1 Q y7 }; v
mov di,0% O+ P) o2 K; [/ g8 |7 c5 z: ~. k
mov bx,ax 1 r+ o( u. s) M( I+ l, O
jmp enterchar
$ b, x5 B! L. @/ u7 h& b4 |$ T
0 E3 W' W0 }9 p* |3 v- Jarrange: push si
5 g/ F3 m+ A3 T& U& p, R push cx ) w) b% i& U' W
mov cx,dx / |# V- I' v( U! D0 k* Z, I
mov si,0
4 |. d/ m4 |8 Q8 T+ t5 N. ` j mov di,21$ e b- ^& b6 f% q+ b4 m1 Y; O# Q
1 P* C7 J. w. M$ f
s1: push cx
6 t3 l+ x/ o( C1 r: Z1 N mov bx,0: N! o" s( G7 w; G4 ~
mov cx,20
: J/ E% ]: N, U$ m& l5 |9 [1 e" rss1: mov al,table[si+bx] U' |) r s% Z3 u' G
cmp al, table[di+bx]' C+ W: Y U7 @) H1 a
ja jiao
$ A2 K+ D. R/ _# |" ?2 W2 r jb s2
8 u' M9 b. ^1 p; N/ n% x inc bx2 U) T/ R3 p3 Y D: c/ V
loop ss1 e9 c \! U8 _
jmp s24 h* Z, T+ V. I& B) [# T2 y. `
4 u3 O5 [, i$ p1 U* @# m$ }1 ajiao: mov bx,0$ ?& O6 T) T2 R* G$ o. N/ V5 ]0 z
mov cx,20
# F- n# w7 e5 @. _3 n" t/ t3 djiao1: mov al,table[si+bx]
5 @% @2 M5 A5 @& ^1 v Q: f5 ] xchg al,table[di+bx]
1 Z7 w$ \1 _7 U4 ^. |! O8 P. c mov table[si+bx],al) K6 l$ E! ~+ u% t7 @; n' b3 A
inc bx+ D1 P- D+ J" M' E
loop jiao1
; `1 N- K# W' X" J
3 m) l5 V; K# W5 M' f: Rs2: add si,21- X ?) Y1 d4 R+ U3 }
add di,21
" U1 t- Y0 `2 M$ ^ pop cx
8 X+ j) V! x) ]2 | loop s1/ [& z! y. B( u" s# S( I5 s
8 n0 q9 v( i$ C$ f! v- O: k/ ?1 G! ]$ ` pop cx
{7 [6 w+ w+ ^7 v7 ^+ ]- K pop si* M" G- `) @3 U/ e _
loop arrange0 v Z, }# m( ] c
ret
+ M' a( U' J0 W: p |1 d1 i& ]6 b( k, O, @& b( D$ b
putchar: mov bx,0
+ O# ]8 f/ H2 N7 I mov di,1
3 s; b& V' R. O" ]' v$ r ) ~# {1 f* T0 O3 ]
; k8 G1 b* W2 | H! l mov cx,si; }4 [: Y8 L8 s& R
put1: push cx2 n, C9 @/ j; |- E9 m; j
push bx w4 d/ |9 C+ i% S: V% v
5 c% l# }5 h% O2 H; S8 l, g
enter( z0 x6 d" W' {& z
, O& s" n# m- |- R* }9 K4 i3 b mov bl,102 E8 `7 F+ a3 \: `
mov ax,di
2 {( |: b# a* u K div bl7 Z6 K7 D5 V; _1 z+ R( k
mov bh,ah- R- X* M# } U& f' X( i
add bh,30h" [6 e, |( R1 z
add al,30h# c5 q( l( t9 _& h9 W
% E, e$ h' \ i# J, N% N. z mov dl,al+ v( ?4 J S, D5 c
mov ah,2
3 [3 w% v6 F( S5 a* L. ^, X& I int 21h
" _& V% g$ u$ q4 B mov dl,bh ?1 V; P( }- Y
mov ah,2. u( O% x, q+ }& U
int 21h
; F: E+ u$ l! y mov dl,3ah& i8 A$ ~% H/ u
mov ah,2, R6 r# C0 _! a2 C/ d7 {) U4 W
int 21h
( F8 [: e( O5 _, @ pop bx
2 }7 p- ^/ F! H mov cx,20" {: ~4 z5 J3 {( w; X
push bx0 S, p( x T& n% y0 W, \
put2: # {" S, b* Z$ [( t* I% J* g" @
mov dl,table[bx]2 I' v0 U; d- _
mov ah,2h
2 ~, ~+ _4 }0 k( h0 }0 _ int 21h# e& a6 S) |: {! T7 S& A7 E
: I: K5 V8 X3 @3 ?0 D# W5 j1 W$ n inc bx; U; A& u- L1 x/ b$ _
loop put2( `, a4 ?, H( X0 b; E" p8 z0 l9 o; B
inc di
4 D: O# R0 ^* M5 t \. V pop bx
! A! Y; ^$ @1 v3 n8 b+ n add bx,21& q) s2 V; e8 s3 A' n6 g7 L: Z
pop cx" h" i; ~" s* N" l. r8 @' v4 l
' J% x0 K. K$ z: q: a loop put1/ E; I1 f5 u5 B# ^3 O- J- B! V
ret
8 D1 y, F5 Y2 d; T2 @% w% G% O% F) R* F6 o+ x+ `. ?
prop1: , P0 j: ?8 P# }0 K* p6 l
mov dx,offset pro1
+ b. \5 J; U3 n mov ah,9h
F" `: U) k r int 21h
; w+ d+ [' H# _* U enter 1 O" `7 b: l8 n& ?, }; Q$ F) ~1 {
ret
6 k+ p: a% E. ?+ B' l
' Z, P, R; n$ W$ S- ~prop2: enter
9 o# j9 U t* W$ @( k- J0 E mov dx,offset pro2
3 v2 c) g. {1 i! v# F, b mov ah,9h
8 B) Y; }" j n, L int 21h1 T; T- E$ V( p6 ?% w
ret* p. l2 }4 u4 p/ ~/ j$ l0 | p% B
; A, I# ~" S: }$ r
code ends. _2 K; \* w4 w8 L9 K2 z
end start8 n+ F2 v4 T4 A
b5 k/ c; I3 L7 c$ Q
/ q9 C& v' y" [+ }1 U |
|