|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
0 `; G3 X! V, v: g9 f5 ]% henter macro' S1 [/ c; Z# d* _1 n! _: c
push dx4 d/ f# P, [* x+ i5 j' x; F
push ax
$ e% O, y( X G; l$ [# s7 Q& m; _6 m mov dl,0ah
8 n2 s; B1 h( x+ D' [6 p mov ah,2
2 y- N& e: {: v# x int 21h
" S9 Q" i5 f$ H/ h# d- ] mov dl,0dh
* Z* u% T7 k2 B) J9 m0 G& U* J- i mov ah,23 Y$ G, s: S7 T6 L8 s: ~8 k6 w
int 21h8 x) k9 P4 C/ |
pop ax
% F1 X1 i/ y, I$ l7 ] pop dx 1 |8 U7 \1 w9 e8 o( j
endm
/ G4 r) i4 @& V
8 G' @" y( z4 |2 h6 ^assume cs:code,ds:data
) X8 i1 h( b' m8 \4 Tdata segment
7 j* e7 {3 |5 e: \/ ytable db 300 dup(0)3 l3 D; r8 N% @5 {( D# J4 o
pro1 db 13,10,'_________________________________________________',13,10
& N+ f0 x* `1 R, f( Z db 'no more than 20 characters English name.',13,10
; z, Y" X% y6 \& K0 i4 f9 _9 F' s+ L db 'For example:',0ah,0dh,'liang xin hui',13,10+ m- W- h/ N* [6 Q/ W9 N
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10$ E$ d) u; ^, i
db '.................................................',13,10
& e: n3 ~ f! ?0 B |" P db 'Please input:',13,10,'$'
" ^) ?3 W1 F. L, o9 c* b2 N/ U( `6 gpro2 db '.................................................',13,10
; U$ p/ [# d6 m1 N8 Q db 'The results are as follows:','$'
% e! w/ @! @8 ]$ P; e$ x, p' j
& }7 X: p/ O! Z/ w$ fcont db '________________________________________________',13,10
. S5 E9 P( f' N7 A% I3 T6 |, Q% L5 D db 'Can You Continue(Y/N):','$'
' c2 C0 ?. @; n$ F/ W0 a5 d, T K
cp dd 50 dup(0)+ [) g1 i! W+ v; Q* d$ e
data ends0 Q! {6 f, ^" O% ?0 g
; n1 q( v9 A9 g
code segment
5 c1 K- u$ |, e( jstart : mov ax,data% [, @, [# m. R3 O D1 b/ p
mov ds,ax4 P' a! D4 O3 {* }# H0 Y/ V
call prop1
$ Z% L7 V, [ I4 ]9 O c/ M9 Q& m mov bx,offset table m) i5 g) A: i \4 G
mov si,05 D0 ?- S7 Q. E+ W# L
mov di,0
) @4 G3 A1 C! m+ h9 i& a, \ 8 c* H) Y- G* H+ B
; L6 U9 S. j0 a; k
call enterchar3 w4 v$ z: [$ ]! a# p# _2 E
perp:
& a G' l' [. E: b0 g dec si: n I( o" Y" c% J6 k0 _
mov dx,si* T' n5 y9 ?9 v z% C1 u
inc si ) M" o" m2 [, f* o2 L
mov cx,si
G1 ~" D3 i+ n, Z$ b1 ~" A call arrange
, J7 M% B* O* ^" s0 c call prop21 S" e# ?# @ B) i( f# Y
call putchar
( a9 W! N4 P0 e7 s/ k: Gliang:
9 X6 x; Y9 T8 A$ `7 { call Continue1 p4 r9 _: R! [+ V/ w0 }0 Z' ]
call judge( D2 w* D2 x8 ~3 Y* y
mov ax,4c00h$ Z. e# b0 e' s [" r
int 21h
o8 e0 L# K; X) I y R5 R
) l. X. E! V F: c) x: P+ j( r$ j5 b9 N
Continue: enter
, m9 G/ U1 ~6 t8 ^/ Q5 c$ N- G mov dx,offset cont* [4 O9 W9 g0 n: @$ ]: n1 {
mov ah,9h
% n. v5 _) ~$ Q+ X* ~ int 21h
$ W& a4 U) J$ m3 t }* l" | y ret ( P6 t& H& h. _3 D) O
! Z" W" P( T9 Yjudge: mov ah,17 f# L0 I! I7 B W8 [# `% M
int 21h
2 z( s. ]+ Z" f- W% c; w5 X or al,100000b
0 W. [. L; d. T" a# S f9 G cmp al,79h
% b$ r. K* _) j, L: ? je clear
( [- H5 D9 _, B3 ?% i cmp al,6eh
/ Y& s) B! y. y/ j# s0 E; b je endj
0 f8 e; J; W% R jmp liang0 M( y$ N. x5 p* g% [* p
endj: ret
C; ~7 h- L |8 ~ * q9 Q7 A' s0 _% ~5 s
clear: mov bx,offset table
$ X1 c' E. Y8 e1 [ mov cx,3000 x: E0 L' Z3 n. ?5 X$ D( {
zero: mov byte ptr [bx],0
6 B3 L; J. l8 R1 i# Z- {* m inc bx
( o, M7 \/ p1 d2 x8 H; L/ [ loop zero
5 S$ o& S9 z1 j) g" I jmp start
m8 I5 d( P) y# `! u7 _( r9 d
+ `* H3 X0 B" h/ n' Denterchar: mov ah,16 t5 Q: N7 G2 O. X! K- E K
int 21h
4 g+ r/ w" w& K0 L mov byte ptr [bx],al 9 _& @9 N0 r; h" R
cmp al,13
& {! [7 h% V, L5 @ je endchar
$ R/ x& m$ ~/ { c; ]2 ]. _8 | mov di,1
: R, G( r- B0 i( n5 i inc bx! ?( c7 Z$ k4 S) {: @" w. o
jmp enterchar5 d6 I# w H+ U* E
" Y7 B4 B6 w h6 s! [% zendchar: enter
1 T( P) q+ K+ c# Z" w8 C& q mov byte ptr [bx],' '
! F) F. G& @7 S) G# T' z" k cmp di,0
7 f) v) t$ M8 e7 N; a5 N& \( | je perp
' F) i4 r, E; Q. ? inc si; o. g' y0 f! i8 ^) }
mov ax,si: c3 g% z; N* N, r" ~' x: N) j3 {
mov dx,21
# e3 I" ? {0 _( Q# u mul dx# Y n6 U7 c4 O
mov di,0
$ D" M& A& V# t9 h mov bx,ax
1 Z' j0 i ]4 ?" k; { jmp enterchar1 A$ f8 `. [3 A: @* m
2 N) Y4 |5 ` C3 B6 E
arrange: push si
8 p& p- C% R* f/ F push cx
/ {( a5 A `. I7 c3 U mov cx,dx " `6 s2 A7 S: u+ W
mov si,0
7 G+ i4 S. V/ F0 ] mov di,21% O. |: S& A/ M) l7 [2 p; R% e
5 a+ d6 `% m/ xs1: push cx5 ^+ k- B, ~6 @4 W
mov bx,0
$ b7 S1 s+ A- ?2 H7 d8 l# u mov cx,20, D4 E6 z$ b9 w+ {! H0 y) C
ss1: mov al,table[si+bx]
2 `3 Z) m- ^. O* ` cmp al, table[di+bx]
- E- ]' [, r% i8 g2 g4 b, u1 u/ I ja jiao
6 q- V$ n9 h/ B, V jb s2
" p7 _$ J( x7 r6 L% Q$ t; s inc bx
: D% j9 @+ t3 s) i/ c9 i. X loop ss1
6 w! U+ h) D8 c% x* ]& ~ jmp s2 u2 Z5 U- |# \5 T5 q' ?
) d6 q8 ~: M, F" v- C0 u) K. s
jiao: mov bx,0
- n1 j4 `% {: I6 v) \. L mov cx,20- P. }2 k4 [; R( E8 X. h. {) T
jiao1: mov al,table[si+bx]
) ?: o/ s5 h% i, {! R, T3 x8 p xchg al,table[di+bx]6 ^' e& k5 F1 q5 b8 k7 [
mov table[si+bx],al) O u. R1 l9 S) R
inc bx
! h4 ~2 ?& C4 m; S/ z loop jiao1
% Y3 C( [% x" [0 s X/ ~% |& q+ X/ T6 X- c0 q7 y3 W. a
s2: add si,213 U+ @9 s5 y" f- m+ H# L
add di,21, w7 k' I8 j( m; J9 K+ R7 B$ N' }- B
pop cx
2 ]+ v' Q) F) l/ I loop s1
3 h, ~) \& }$ K, i
5 m4 a9 n- ^, W; N pop cx
, S. U- G) o7 n/ r9 Q; O3 X pop si
; x5 n! o/ @2 s0 ]. g% b loop arrange' { c; B( h% C3 ` C& e
ret% j5 t: R' v. q! K6 G
9 m R9 z* ?- V" @2 E
putchar: mov bx,0$ `) ~9 W4 G( X% B2 w& X
mov di,1
}% y7 [, z$ O7 k0 [1 o) b & x, ~" l S; K9 N& O* r2 g
; m% _" [8 g' s ^: b" g7 h+ u; I mov cx,si0 H* m X+ E7 H$ U& M
put1: push cx7 I% J) y) w' ~1 e! j6 Y! h% q
push bx
1 ]! c) W: j- }
1 a& k/ {) f$ U: }2 X enter/ s, e, l' ^0 r2 I7 C
& s4 j: ?( W4 e" u8 R& c) {6 d mov bl,10" l, l5 j" l# u/ \, o& a+ F
mov ax,di9 d3 S) }, w8 t
div bl% @; F! _! H( I+ }+ i
mov bh,ah. R$ l. b3 E0 d+ U
add bh,30h
; }8 ~* j3 A- @" W& g add al,30h
( i; A( t C7 W5 x$ i3 l: o/ m
* s) F: q' `4 `8 R* b& q mov dl,al
4 K2 v$ l8 j/ n; U/ @/ m$ h) J mov ah,28 D, m9 w: z, \: ~) ]
int 21h
) H, O5 b- i$ ^3 |* e; \+ J mov dl,bh
9 t; u0 Y* L: B8 ]3 }. t1 u5 q* R, P mov ah,2) R1 X0 [/ D/ t* w. ?4 N
int 21h
, T* E' V8 c. W6 D mov dl,3ah) ?+ I! H4 q* I: l
mov ah,2
+ n9 R" `& n/ I5 ] int 21h s5 a& U7 z1 m* m
pop bx
& f* I, ]* o/ G/ A mov cx,20( I% L) ?- c6 L8 n9 u1 `: g
push bx
+ m9 K1 G, d! Xput2: 3 y! A3 u' T" Y5 e5 W
mov dl,table[bx]
0 l9 X2 `5 ^; D1 g mov ah,2h
+ W {/ ~& @" n# N' {! W int 21h
- I# ~# n. h; L" X
6 e4 H( y7 ~% s2 M* q inc bx
U8 U$ O4 z2 d2 Q6 N, k, l g loop put2- v% L* c- E# {/ o3 S: y: G
inc di
" j5 v; w+ }$ q( _- x0 W pop bx0 D F2 _" c9 o2 l* c. d8 b
add bx,210 e% K# A; R: n' l& X
pop cx, r: P: B0 `1 C7 q6 I3 Z# G! U
% M* E" e( f' p& T loop put1+ ^ w* p; g/ i9 V9 L4 }8 s
ret1 ]5 p) h: e/ K+ |: z1 p' A( @
% B0 C/ i# X B4 |' Fprop1:
% q. N+ o$ s) M6 P7 b mov dx,offset pro16 Z; N7 V2 r8 v4 t# t: y& w
mov ah,9h
5 q& H5 F$ D, g' M' e/ ]+ u% d) w int 21h
6 T) r: t) K" C0 J, { enter 8 w% ^0 P( n: A) w) R# T
ret
* `, [9 F; u4 B' F) j( u& O& \' ~# K9 v% l" ]! h! Z4 I& y
prop2: enter7 s; M1 P1 f7 C; t6 }$ C0 }
mov dx,offset pro2
' I' `3 s+ K, Z2 ]8 v3 C* ` mov ah,9h' P! B- B; n p- H4 H$ ^' _
int 21h
# ^4 @1 u! X+ E: j& Q6 @! j ret8 I$ |4 f/ r5 Q0 X1 n
5 L2 X9 M3 }# w: A0 U
code ends
5 u2 u* y( a, Z0 E- g/ Aend start
) E% O9 T1 a; E# r) {, s5 p4 N6 `+ u6 ^5 y9 V$ [4 i. p
) v( E+ K9 ]/ s2 F* \4 j |
|