|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
: ~& t7 x% y% x8 S2 Q9 P3 Z7 benter macro2 t; |% O7 h8 @$ T$ \
push dx
3 O8 N6 \ W5 D1 g, @4 m" f push ax
$ ?- u: P- \' h1 J6 _ mov dl,0ah8 \+ o1 v" J3 [0 Q
mov ah,2
6 I1 }8 d- a! x. ], k* n! w int 21h8 S j# Q: ~% C$ A7 W5 Q
mov dl,0dh1 F1 }, z" b) r; f
mov ah,2
0 P+ L u1 j0 b int 21h1 k; X4 p4 H6 G9 Q9 v' ~( t
pop ax
5 i( y: t7 P3 @$ a" y" z2 U pop dx 4 V5 {3 E7 p" B) {0 b( w
endm6 f! D( Y! f" r+ N
# ^: O( @; z! n, O7 l6 R
assume cs:code,ds:data+ J$ {" _1 E1 A" n( j
data segment
/ n$ v! \7 G4 Ytable db 300 dup(0)
1 i+ ~$ j$ ]9 {/ _5 Opro1 db 13,10,'_________________________________________________',13,10! g( t/ v0 W* Y
db 'no more than 20 characters English name.',13,10% {# J+ U$ d9 j! p7 u
db 'For example:',0ah,0dh,'liang xin hui',13,10
0 y' `9 a# s! e0 m& T$ M db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10* z3 z# i( }% p' ~, l8 C. A
db '.................................................',13,10. P/ X1 y+ w# V& t; g; w6 C
db 'Please input:',13,10,'$'0 u6 G# x& i# O" ]+ O+ }' D' z
pro2 db '.................................................',13,10
3 K/ h. G% q* x: t% ?7 A db 'The results are as follows:','$'$ X e9 ^" N r: Q! n
& [. W2 g a) {. t. f% Y: t* acont db '________________________________________________',13,10
. h$ u" B( l7 g* [! h db 'Can You Continue(Y/N):','$'; e5 C5 ^, A4 M/ q. G0 d: s
5 C1 z1 s9 }1 S3 N! ]
cp dd 50 dup(0)
1 l! h& I" a1 I Z( }9 k. cdata ends
( n: c5 ^* F5 Q0 v2 L* L1 J. R2 s3 M& a$ J! R1 r
code segment
" h& T/ d9 { {6 C j3 n, C( Qstart : mov ax,data
5 c u8 b5 X$ }# i$ W8 a mov ds,ax
7 I- i0 e8 S8 ^' ~ call prop1
! d/ L' h+ \3 D. E' q9 F mov bx,offset table1 Q9 z7 C3 F% P; @
mov si,0
2 f1 F$ x2 P) r5 l+ j mov di,0- L/ |( c" g8 d6 O" O+ v2 J4 z
, _' h2 H: g X* M( m- F' i+ H- _
! B) I, `1 W3 H. w" ?9 h1 v2 m( ~ call enterchar j, u8 d. j# W6 V$ L7 c. ^
perp: $ t* e1 k; W; m4 H
dec si
. G+ Z5 o% N* @& N6 k mov dx,si% Z. Y+ N( D; ]1 r. O8 s
inc si " q. A5 O$ j' X; Q! E/ Z4 t1 E" w3 v
mov cx,si
T L5 H9 }$ B) h& l- J0 h# b4 ` call arrange
5 E B. e5 o) h- H6 R- G/ ]: F* i call prop21 I3 k$ m' P# N- ~& u
call putchar% Y; R% [' k0 T: I
liang:
% t; e1 Y3 G& Q5 \9 }; D5 ^# ] call Continue* }' F9 j l8 v4 h4 q
call judge& e' [# O* @- H0 a7 N; G7 d3 u0 o- h
mov ax,4c00h$ S5 m+ P, D9 ]. o; B: g2 W) D
int 21h' o7 t) ?6 C( s/ k9 i% Z
3 H+ C L1 m- b; o
% O& ]7 w/ D3 _2 F1 v! c
Continue: enter
4 H# }2 q* n6 K: _* S! h mov dx,offset cont9 g; r! C/ j/ L' W5 H7 C
mov ah,9h; k8 J" W( @! O( t* Y
int 21h
2 x+ V* E, f8 o8 t ret
7 Z" ~* w+ q1 z( O& r, A. i1 c
3 ] Z( f( K: y! x3 y ujudge: mov ah,1$ H: E5 k3 K9 G" }2 y* Y6 g
int 21h0 Z6 ]& F( T/ ^# F) H6 v0 x5 \1 z9 J
or al,100000b# [! ^5 g& ]' s3 g6 h
cmp al,79h, E' G7 E- q$ v; W0 r' ]
je clear
; }0 i0 f% A" j, X cmp al,6eh5 E) d, z; x. H. H
je endj4 f& q, B4 ^- a
jmp liang
; j& e F* Q! _/ P% l* bendj: ret ! a I' y; p2 C) O( Z6 b* W4 v/ B
7 A( B$ E/ |3 i3 D! z) P5 [clear: mov bx,offset table
6 I% ]( @& c4 k$ |0 Q8 U% V mov cx,300# E4 A# H+ k( [% K" A- z% r6 y2 U
zero: mov byte ptr [bx],0- f$ w" B5 u$ a5 g
inc bx3 A: j; k3 Q0 d
loop zero2 A) m) S4 Q Y: j" i' I
jmp start O3 `* H. ]* |" P( E9 \
' u. K8 T, L9 g7 J6 t
/ l; }* f8 T" Q; {6 qenterchar: mov ah,1% w/ u: \0 P" f( z
int 21h
: z1 O! o. D: L/ A4 R8 d1 p* G mov byte ptr [bx],al 2 O8 X7 U) c' U b0 v
cmp al,13
* s, \' p& s4 \: d) H0 g1 M je endchar 8 ^4 w9 H6 i3 E" t8 w6 ]- i
mov di,1
. p* t q# a1 k7 K inc bx
; D% Y( F( e$ s jmp enterchar
/ |& I+ k" U( P4 I' A4 j* z6 J6 s: U- Z: d: \' b
endchar: enter
, ^( i3 L4 I3 a9 P: ] mov byte ptr [bx],' '- B9 g; G# C9 _$ v }% K5 @8 D* |
cmp di,01 o2 f" i: N! ~9 M. O
je perp
" l J4 m& F0 O' b' \1 N inc si; h3 a/ \9 y8 n) H/ @* Y+ F x
mov ax,si6 T D8 s2 A! ]+ |/ @' N" o
mov dx,21+ t7 i ?3 i3 p5 o' _- [3 }8 c3 H
mul dx2 _- l$ S6 W. R! a1 x' F8 ~
mov di,0) w8 z$ f8 ?8 a0 W: l
mov bx,ax
5 J0 G0 m" {" [9 q% u" H6 j4 a jmp enterchar3 L9 K: ]6 {4 E! N
) N" M) @( E% e; t& j
arrange: push si9 ?) i1 _0 P/ X
push cx 1 Z+ h3 X4 g1 q c) ?) h7 v+ E- d
mov cx,dx 9 M* U& l* g9 d: ~/ B4 Y4 U; I- C
mov si,0) h( @. b( p) O! a: E/ k' [ I
mov di,21
" b. f; F& g; j: I: c: a0 y( v6 p
s1: push cx
7 `2 v9 }' I: [ n7 Y mov bx,0
4 R' D5 r. `2 ?0 q+ L mov cx,20/ x7 k5 F: g. o) } T# a' \, k
ss1: mov al,table[si+bx]. ]9 J2 p! a4 o3 x' A7 v4 P$ Q
cmp al, table[di+bx]
1 ?: s# F% h) e4 c4 _ ja jiao0 t* M3 X, S5 @5 I3 e
jb s2
( ~! t$ f. k! [9 l4 s; w inc bx# v+ R+ [. H5 v
loop ss12 A' i5 [4 {. ~5 ]
jmp s2
r5 g. Y( T6 z# ?5 U& T9 F) \' o& Y: [2 R
jiao: mov bx,0
7 a5 Q4 m* a6 H3 V- K8 c mov cx,207 Y" B5 y" T3 X; @0 c* ?. V
jiao1: mov al,table[si+bx]
$ j; s m+ R$ n4 R( z xchg al,table[di+bx]
% I8 `2 ]9 k9 x" M9 j; j mov table[si+bx],al$ F! x7 [3 [- k$ ?; N5 j7 m. `, S
inc bx
1 s5 \2 H- `0 q4 w. u$ k; z loop jiao1
" ^6 E, G0 n* I1 Y9 @
- X, L- G1 {3 _% D/ N7 p) X# |s2: add si,211 _: h) B( y1 q% O( h
add di,215 L) P1 v d7 }0 X# Q. e( I$ x# c
pop cx' S7 r1 m% J! |( P' K6 @" o# N
loop s1
0 N) l* |$ N/ Z1 Q- Q7 B
/ T2 |) n& Y5 A& }$ o pop cx- R; e. I; w# p* ?4 `
pop si
+ N' z$ K. o3 z% h loop arrange6 X/ c6 ~6 W% i+ z
ret! D: i8 o% Z6 G0 F# P1 X- O
4 z+ j _! ~! _8 b. i; |7 Z. uputchar: mov bx,0- A. T! }/ ]7 r1 O% D* U g
mov di,1
7 V; h5 R* k( L4 ^& @
$ B+ n& d* ?5 i; Y" g, [9 ?/ j
8 k/ f4 i2 r( a8 k" a! t mov cx,si6 k! o4 T3 u# c$ _5 C+ P
put1: push cx
7 h: |& A1 @6 x& n5 ~ push bx
4 B- s9 g1 o i$ w( Q& X . O4 o8 _/ `" @! N x5 ?- y
enter; o/ Z- E- T& k5 Q: z
% n% F; s4 F# k* S0 H mov bl,10
4 x9 b1 ~# T: d: f) C mov ax,di
2 g% ~# }) x1 b9 p' F div bl
. O0 V* s9 G5 s( F! Y mov bh,ah
# V- A# }& [0 u9 _4 ~" c add bh,30h
) z) o/ O9 ~% }. o add al,30h) s6 H% h Q" }9 z5 z2 {
9 N7 K k) n9 l mov dl,al
+ T5 h8 D! n, n- a% ?: q+ x8 B/ L mov ah,2
2 ?! p! L1 T0 D+ W X int 21h$ C" Z, o6 }9 a. v+ a, v
mov dl,bh
6 Q+ i$ ~: J/ z( V2 I mov ah,2
; [# y& X: z; S* I4 L. E% o1 n int 21h( k; V" y( T0 {% X. j1 b
mov dl,3ah
8 N: U! R* f5 f8 g/ [ mov ah,2/ h; L. C2 P0 Y! \
int 21h" N5 s. }9 F6 y
pop bx
/ F4 K! u# n" N. f mov cx,20+ `4 \; \# x1 U# a* G: ^5 A# x# H
push bx+ K0 R; @& H7 R2 l: {4 ^3 |
put2:
- J* o0 E7 K# Y/ W: k! G mov dl,table[bx]5 o+ v1 u/ G8 q- }, ]2 Y! B7 {
mov ah,2h/ g& E' K- D& T r
int 21h- S* J/ p( z# }0 X
* }* A) \; m. Y
inc bx! T( O+ X( n4 ?: ?* i& C
loop put2
) C( z6 p' \/ D" l6 L6 U2 V5 F( d9 O inc di / J; k, n& w4 a/ z& `- j, @ D
pop bx' e4 _ Y3 a+ N1 [( ]* [. m4 {
add bx,21
+ f5 m, d0 C' a$ w& N pop cx
! o$ F) Z8 T2 G) o
0 J: C, V$ P+ m' V; |+ [ loop put14 w! d" w, O2 V" _& w
ret
1 A3 ^5 m5 L3 K/ i
/ s4 \) v" n4 K4 dprop1: " u! p% X! q w- D: j8 l- f
mov dx,offset pro1% M$ H/ U& a( c
mov ah,9h
9 d+ E& K1 r2 T' E* c. g int 21h/ ^; d+ P" `5 _5 \: X3 {
enter
' h" I$ @$ |' Z' o ret6 a: Q/ ^- d. i! C* ^3 u: n
5 z8 {8 M9 W) u4 m) [" P* x; j% Bprop2: enter+ @ n. b) @6 p4 @ Z; e1 n
mov dx,offset pro2
5 S- X0 t5 Z$ Y3 j+ m mov ah,9h: P8 Q2 W% F- a( ^, j
int 21h
3 @2 A' N1 Q+ i& |1 j) [ ret
" o* _( N8 H4 ?& y. y$ h% C1 C" Q" `0 ?9 a$ C7 K! U7 D
code ends7 P3 x4 k( h7 p$ o$ f
end start
. w6 s p2 Y# G+ t) D& [+ E5 J) _$ `9 T1 ~
7 E7 t7 a$ t0 @( h |
|