|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
' ?% j: d2 Z0 k; Tenter macro
- r5 C2 A$ O) I push dx
- L( `. C8 h: O' u4 V+ N9 o7 ? push ax) L; R* N2 W4 b4 C% u
mov dl,0ah
& Z2 A+ w4 l3 d0 }; V, U5 a mov ah,2 R/ J. \( q3 D: a, j, `4 A& y) a0 w
int 21h
: r" d; H) j8 d9 h mov dl,0dh! s" Z! e% i3 K( p9 d8 ~
mov ah,2- h. a* h/ U0 o1 |2 v
int 21h
7 l8 }0 O3 H4 j* K- L' | pop ax% k+ n& i4 `3 @ k$ Y
pop dx
: T/ a, \5 G0 w6 O* Kendm; _1 n/ q0 y% Z! Z7 ~+ a- `
5 z/ I1 c! a3 D; eassume cs:code,ds:data
) z1 W8 u# i+ y; ~2 B$ ydata segment
* P+ T8 R# M4 k, _; Q; Gtable db 300 dup(0)
: N) N( s9 ~2 h6 _pro1 db 13,10,'_________________________________________________',13,10- E/ M, |; E% u+ O
db 'no more than 20 characters English name.',13,105 R% q5 _7 J4 ~' s
db 'For example:',0ah,0dh,'liang xin hui',13,10
3 S; l; v U$ h( G0 X2 e5 J db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
$ k# _2 h" e" H7 e6 u4 Q db '.................................................',13,10
& ^* R0 C3 j" o: D5 f db 'Please input:',13,10,'$'6 G( J t$ X5 d e. P7 O' C; {/ x% L
pro2 db '.................................................',13,10
% ^* Y% V/ ^: X( {1 v% i4 p3 _! O, W% _ db 'The results are as follows:','$'6 o S4 |3 M. Y
" t/ q, p _' F- P6 ?0 T
cont db '________________________________________________',13,10
# Y( V0 ?, Q! R6 _0 p& B2 p db 'Can You Continue(Y/N):','$'! V- k9 w L9 y/ C5 @- ^% M! X
[' k4 Z0 g3 } s& R( v
cp dd 50 dup(0)
3 s$ o0 z& ^. {( I# [+ @7 E+ _9 E7 Adata ends: E5 C* D3 z+ c
$ Z2 ?) v: X3 y+ Q( bcode segment
3 b1 c9 \6 N6 i- ]start : mov ax,data
" P) [7 d9 h, o mov ds,ax
- [& Z% o. Z& U7 O% F; Y1 ] call prop1$ w4 }- O: f E; y
mov bx,offset table
2 T. e- U9 J" E9 m2 W% L+ P mov si,06 S6 v. V4 q4 d1 o* L6 { ~4 ^- Q
mov di,0
9 b9 d8 N! m7 a3 V3 U/ |. J: g 4 Y. y# E! G6 X- w8 X* C
0 D" \8 L/ c% t8 j& t) x2 {
call enterchar5 ^6 s3 h1 ?6 I6 |( T& [2 D( h
perp:
' U. b s# |) S3 o dec si
, Y* d9 Z" f9 F8 n; m; ?. j9 z mov dx,si
# U6 b: N, ?" U0 X% q3 e inc si
3 M/ P- {' O. t$ F) q2 f) u9 J mov cx,si+ |, ?+ z9 k G6 ]5 I# @6 f
call arrange
( K* p' |0 i: n call prop24 N, K" z% o' |
call putchar( j$ |/ S" G% ?) B" I3 U/ Z
liang:
6 E \& g% O" [. U" i) e call Continue
% ~; Y) P. m/ ]4 w+ a$ f- ~ call judge
: \0 e# w7 N9 X. f5 n+ F5 S mov ax,4c00h
! L5 z6 f6 |+ c3 j& }0 F0 R int 21h
) a$ ]1 W7 n- u4 K+ u0 J; I* x: V6 j4 f% G% h9 u
( O1 n* i, K7 R; N, h. f: rContinue: enter# H: ^, |9 B6 j/ l7 {
mov dx,offset cont: ^' @4 w, Z- b) D4 o, N' w' a
mov ah,9h1 G6 d' F- g# Q. i1 \+ z
int 21h/ l& a( L5 h7 m; B2 _
ret
6 s/ Q* Q5 i- b$ y6 w/ a( u1 n& j$ p/ s; e
judge: mov ah,12 R: W% B# x4 p6 Q8 I8 p
int 21h
$ n+ Z4 ~7 T' |. m: b or al,100000b
1 N2 W/ q$ o/ ?7 ] cmp al,79h/ s3 G, L7 g; _" _ i
je clear
G' t1 n; X. V8 }0 } cmp al,6eh" F* z; S5 D/ j: h
je endj
: t D& w, C9 d+ v0 D jmp liang
, ]; B2 y- `# w3 Pendj: ret 8 u5 P; c4 \- B9 j( E
* b& s; b6 y5 t0 |9 J$ r0 dclear: mov bx,offset table3 O$ \$ q4 X' O* o
mov cx,3007 y9 I& o' y+ E1 \. `
zero: mov byte ptr [bx],0
$ W) w. V# J% f$ S/ | inc bx9 X$ _/ F2 N$ a) y9 m
loop zero9 c; T; V5 o0 {' W9 |+ m4 v) U
jmp start
! u/ R) M# D9 W* C, e
# f) U- D( G! v/ n, ?3 O( [1 @6 b9 P$ l8 G
enterchar: mov ah,1
& }0 W+ p U4 C int 21h7 P/ O o- i5 Z/ g2 G1 K) e
mov byte ptr [bx],al
1 m' b# b0 P# l, U/ v cmp al,13" D, {8 K8 ]4 ^/ F
je endchar ) s* D$ j7 {* D: F
mov di,1# k" c! Q5 r' t
inc bx
$ C8 P4 x/ H5 R5 e( z jmp enterchar, o0 e7 r5 @! W- t
- [# ^0 S8 B# K- ^2 ^. [2 E6 a+ B$ gendchar: enter ' z2 s* ]) l& @( V2 n! v% o
mov byte ptr [bx],' '/ v5 X- x% J5 e& g3 T. C) ~6 P
cmp di,0; g& `% r& S6 v8 h! |+ u9 R! U) ^
je perp
5 d. M E( ]! {& U4 D inc si
! u- k2 B& g! ~" s# B5 ?( D mov ax,si
# `7 E$ k( l* N; [$ J, @: Z0 H2 d mov dx,21
4 t" x* o2 Y" L' @" y6 u mul dx/ u& l3 S: k, x4 u7 s# G: a3 J
mov di,0
' f. V5 G7 G; t. } mov bx,ax
4 h1 g# W1 y [# B0 U jmp enterchar
, O. b5 z7 s- _: G) ^1 C! h0 Q K& e* S) p; ?
arrange: push si
8 W' I0 T, X6 m& E+ o push cx - {% l5 H4 y! U& V7 Y( h: }
mov cx,dx
, c- S* a7 H6 y( c, r mov si,05 t6 ~) n4 M( ~. \3 n L: J6 j
mov di,21" L) r/ R* C+ }- U7 _8 X% L3 i8 s0 u
5 Q* v2 H; V+ C9 N+ x7 k* q
s1: push cx
1 p+ G: z7 R2 H$ W. b" k4 H7 z mov bx,0
2 \- \* f6 o( m! i) X0 d0 v mov cx,20+ Y; R! j$ S9 G6 o4 Q
ss1: mov al,table[si+bx]
+ S4 X# {* d0 _* r cmp al, table[di+bx]( Y! }, @; X+ t3 a8 ?4 X
ja jiao
- G. `8 ~3 _. A, i: N" E9 z jb s2) m5 \3 x$ @3 F5 P E' @
inc bx1 a9 L1 L w( J' C/ l" W2 o# ^
loop ss1
" C% r1 J( N2 T- ^0 e1 ^+ h jmp s28 p: D' w' t% T7 p- ]
: v$ j- ~! I0 O' [4 M3 h& V3 E; Qjiao: mov bx,06 D5 g: F+ z9 f5 X6 s, S9 p
mov cx,20' D( i; S) Y, |0 ^- O/ f' N3 r
jiao1: mov al,table[si+bx]
* U7 v/ O5 P; S8 j xchg al,table[di+bx]3 X X3 B! z/ [7 ?3 ]3 l5 B5 i
mov table[si+bx],al" }" u# t |1 { ?
inc bx' U" I7 @7 }3 w$ x2 A j
loop jiao1
( V7 e$ \: y4 `, U8 a' Z" v5 D( a/ V8 a# [6 E! q2 L% Z2 Z: n
s2: add si,210 [& |3 ~; h2 m" L0 K
add di,21/ g- ~' u( F% e/ x+ b
pop cx ]; i9 j5 A% P$ F4 H$ |
loop s12 q4 x4 f3 f" |
, z- p" U1 P, S$ S2 l1 l
pop cx
( F+ ]7 X6 @7 z9 f6 p# b, x% R pop si; ~/ i( J7 N( d8 }: ^ _, [9 U" l( v
loop arrange
6 i F) ?# ^. d+ ]2 D9 S% U ret4 \. Q5 I% |' U7 |
* t$ n& Q% V/ ^4 u% hputchar: mov bx,0
. k& L0 G A! l mov di,1: [3 s6 a& }: u) W P8 X3 f
0 ]# @/ M( b |
3 i$ [( h6 J! P' s mov cx,si
3 |7 ^1 w4 w( [$ _2 oput1: push cx; M, }8 T2 `; f/ x
push bx
E$ i- M, W; B$ L/ W
- b( P- p; w" s enter
& a+ a, j g: v e9 E+ {: }4 G0 k 4 B6 U; F# u) o; ^# _3 L; f" B1 @, C
mov bl,10
5 q# L- n: _( k- X' T- ~* i9 Q mov ax,di" t% x9 t, A' I' ]4 B5 c( O) C% X
div bl
. n' j: M* v+ @6 q$ y* r: r/ f mov bh,ah
1 Z# \1 D! q' @7 d2 |0 Y2 A add bh,30h3 `; {8 y, R. B- B$ i c
add al,30h/ {& x/ j" S; Q5 J
# Y# _; ]7 @/ E, G
mov dl,al( m1 ^4 B: N/ f# C3 [. w, U( d
mov ah,2
5 Y; B" W6 c8 q. p9 D int 21h
, I8 V+ _5 }& p/ Y8 o2 Q mov dl,bh2 b# L3 J# n% T) b
mov ah,2$ N& \8 S- n$ ^/ z5 C
int 21h1 L3 V: e/ A7 I4 u9 d4 B
mov dl,3ah! h) T2 _. S7 Y" n3 X
mov ah,2
; M0 m3 x, n! c/ ~' d' X/ _& d5 r int 21h# r/ {- R5 y1 ?0 U+ f" o: D" y4 a; ^
pop bx ! t0 H; s4 {! Q6 w
mov cx,208 {0 B4 k. N8 p& P
push bx& d4 ?; j8 y+ \8 i: D
put2: # D' w" O' L" g
mov dl,table[bx]
2 K2 t E2 m. q }0 H0 v j1 O+ R mov ah,2h9 B2 P/ u$ |9 l
int 21h# S& B! t" A/ v8 m7 J/ _8 y0 F! }& G
5 }, g5 [: U0 X0 P inc bx+ o) ?# y( w5 J+ L$ E7 p+ x
loop put2
7 @& G+ U/ V8 u& p% { inc di * Z) g: ?8 E- \' g
pop bx
M2 F; X3 A! [& \4 c0 O3 e2 v/ R add bx,21
& ?7 ]# ~, w, u% ?8 | pop cx
" f" \$ L* n# x; f7 y. Z& J- O; C
; X$ f6 }- ^- b' K/ V/ k loop put1
/ r8 m6 L9 v+ n1 O; ]% g ret
9 Y( ~. n8 I) X/ I
4 e( v- Z! h @4 u4 g/ T( iprop1:
9 k$ }, |1 a. l mov dx,offset pro15 M p8 s9 G2 H9 B6 Q9 A
mov ah,9h8 r) {6 {; o& i
int 21h
' N. w1 W: a0 g0 r! m7 D enter 0 t1 U* q% J/ y4 [
ret' X$ q; J: G4 B1 k7 m- \
) ?7 y& f- Y! [+ M& nprop2: enter9 b+ `$ A" }+ o
mov dx,offset pro2$ ~- h" ?) b4 ]" U
mov ah,9h! V* ]. c- v; o, |. f
int 21h
: }& ?" q1 R4 l" c% u" X S ret- h, L3 _, R, T5 Z
' k# L! M5 T( O+ y4 qcode ends! u8 g& B& l% c# N
end start
4 A# Z8 b, l8 g) P/ ^% B/ |. U5 M- b4 x: Y4 {/ p+ q& q
; d# x z& w5 r: O |
|