|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
% R6 u# `( {# d# F+ `0 Jenter macro& G7 }3 g1 i: C) y5 W; ^5 n
push dx: K1 T6 x3 i c
push ax
) Q* W2 j: I6 f1 @* g( x- K$ G mov dl,0ah
1 ~/ w: M* E3 V2 C. ~' b2 Q" D mov ah,2, O! d$ q+ u5 D; |
int 21h
2 U4 t0 c6 s; ?/ I8 f7 s9 ^- b mov dl,0dh
( Q1 H0 R# N& x& N* n4 p mov ah,2
: d1 M& `5 Y% q( r int 21h
; G2 D+ `" y4 v: @ pop ax2 D) b1 p" i6 o$ T9 a: E; h- \
pop dx . x; |, W4 p9 o5 R! ?
endm2 x. |- M! h( Y/ L8 G- ~; J
( k. w3 ?% W1 c! O: S$ G( d' H
assume cs:code,ds:data
$ y9 a( z- r' O4 {3 e& xdata segment3 H0 J& ^9 ~" O( ^( ?5 p+ N
table db 300 dup(0)
: G! Z* v. f; u0 l5 M0 i: Opro1 db 13,10,'_________________________________________________',13,105 d# F4 N% d G. C
db 'no more than 20 characters English name.',13,10. M% R( }" K5 c0 Y/ s3 e6 ^' ^
db 'For example:',0ah,0dh,'liang xin hui',13,10" t4 B \8 Z3 |, [+ B/ L7 t
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10/ y( h, L8 H u7 _" n1 U
db '.................................................',13,10* V; _ i" V) Y# H7 M- N0 D9 `
db 'Please input:',13,10,'$'
$ g: O7 h# i$ S0 M3 ]7 p$ xpro2 db '.................................................',13,108 T6 F8 Q' S$ f3 y' S4 `: f
db 'The results are as follows:','$'
( x, l" F \% L) E/ y4 \/ W/ \# Q2 }: `% m9 D6 [
cont db '________________________________________________',13,10
. J! u7 l4 S# B+ e db 'Can You Continue(Y/N):','$', c! H& A2 d- `0 o
8 B7 G! c7 k" m' w# j! v. ucp dd 50 dup(0)
5 W4 b7 |/ }9 s# W, h( {5 H4 ^0 f+ Mdata ends7 [" c9 u j# \3 o+ r3 @( p8 X2 A
/ o G. R" g! S) E$ @! `code segment! G4 ~- R q9 o. Y# [: t
start : mov ax,data
/ k% ?+ z, g" j6 X, b% r mov ds,ax
# w4 T; b+ t+ h! T' u! y' Y call prop1" m1 j4 {' U! H& `" J/ p4 S
mov bx,offset table( p! s3 S1 @8 N) N
mov si,0
* b* J$ f9 Q% n) b9 _3 ] mov di,0
6 e1 k! Q0 }- [6 `8 H8 F% M
9 r* P1 U0 y+ K* A. H8 q; S
7 i* J3 F% t" y _) r2 l1 a call enterchar& d5 m2 `% w4 j, t0 [. x7 M
perp: 7 O; t% C$ L- y; c6 ]9 d
dec si
! R0 S- C& n- x# {# E1 @+ f mov dx,si1 u. f8 [! I- ~ f2 h ?
inc si # n5 \2 G# `, S6 N* G
mov cx,si
7 Z! P* H3 e, D" z9 g" H ~ o call arrange( k" g) x5 H; a$ P; M
call prop2- M/ L4 g* h+ I3 u" P7 a
call putchar U6 h- s6 G% Z1 {7 d" K y
liang:1 m9 N* w1 P! v5 J" [
call Continue: N0 {( ?% S/ s3 V K
call judge3 ]* b. R7 b; P; s" _! S
mov ax,4c00h, a0 s1 _9 _& G0 D
int 21h" E Y% _) a* v9 d7 z; Z
7 Q! y1 J1 h4 r. n2 Q; N
/ }# J* Y) h/ j8 p4 H% F E( W w
Continue: enter5 n" y/ P* ?$ M- q: {5 S
mov dx,offset cont
1 H! @1 F! \5 j( ]! G& Q6 _ o @ mov ah,9h) \$ a5 R9 F/ J' }' h) w
int 21h# `, C2 I% w& h- a3 ^8 E. O
ret
3 A0 b2 }; }& N" f% ?5 l* Q8 M9 P- v- k5 l, X8 _5 j1 E/ D
judge: mov ah,1
: `! P& K1 B4 x' k int 21h" l2 L" O* |0 m8 q" y( ?0 e* k% S
or al,100000b
. h+ ]0 m; v% l V! v cmp al,79h
0 p4 j5 \" K, S% v$ ^: _ je clear
2 X' j0 M. V' }! p* F9 d7 i cmp al,6eh
, t4 \9 ], C+ M; h9 M je endj
! d% _ [5 X/ t) E2 t jmp liang0 e5 Y( r& A) Q* A
endj: ret n% J" \- `/ N' M, c. E7 L1 X: S
' z$ Z$ k% b6 V) M9 {
clear: mov bx,offset table
' E5 G+ L0 P e6 L3 Q+ `' D mov cx,300% c% k! h+ v B& z! H
zero: mov byte ptr [bx],0 m% G* L0 C$ r+ m* ~' d. u
inc bx5 v4 V4 v" \1 F" ]! e+ v
loop zero
' X3 h! ]! [% m5 w* ]# i/ O jmp start
" J& q" r( w/ \* J5 r$ e9 O) d
- c3 d' D" U2 K: W/ g w
2 S6 P- y. {3 {* ~; ~1 ]. Jenterchar: mov ah,1
- M4 n$ J3 e8 n' B6 D int 21h
" d, D, u6 W. S' w+ z6 V7 p mov byte ptr [bx],al 0 \! c) ^& I% s
cmp al,135 r2 l/ J5 w* D" b
je endchar
X% t/ e2 T: A: @ mov di,1
2 _, k' `, J1 N. n0 Q inc bx
7 R8 [' e9 G, I4 l7 H# x jmp enterchar
( A4 f; s- {: ~5 \$ @
% K) j) ~& r+ I1 {% xendchar: enter * N& G, x6 `; r8 S# l) \
mov byte ptr [bx],' '
( x/ u& M$ M. O: u* @( i/ r$ n cmp di,01 w, s4 w1 U3 z5 H6 w- ~
je perp
7 B& H2 i6 z" r) C6 g& C7 n inc si
: A a3 Y: P* C$ U; x Y mov ax,si. `% B$ g" `* [+ P$ c
mov dx,21
6 u* o& x; Y$ A mul dx
$ y- v B( z* P: m, X, s! k mov di,0* ^9 i+ f4 |9 u& k
mov bx,ax n5 z8 J* n* ?: r" s& {
jmp enterchar
0 b7 u% F! E, t8 |2 F y! K7 \9 |0 L9 k6 W
arrange: push si
; M7 f) a0 _5 n5 J1 M+ h push cx
+ l+ l0 \# e" ]" Y mov cx,dx
( _2 `- z: T; ^: X1 u9 \ mov si,0
: I; {/ |! m/ A$ P1 R mov di,21
7 K- L( F9 l' ~: I7 I
/ M3 F. F3 u! ns1: push cx5 q2 |# f1 P2 J
mov bx,0
; e0 n5 G! B6 l) {. V mov cx,20
7 ~$ r* k8 A$ \9 I+ tss1: mov al,table[si+bx]) Y! a5 m$ [7 O' c$ H' }0 L
cmp al, table[di+bx]
$ U9 m" z6 D7 ]8 b! ?$ @6 W1 L ja jiao% u) V8 ?% h( r
jb s2
$ X- w9 V/ \- G& E5 S& V inc bx! E; G3 g0 U& U( k) H
loop ss1, K' g' r$ e8 t$ X! G
jmp s2
% U; b; b7 p" o/ C7 Q, b9 |% _1 p! @- K4 _* a( t0 ~/ P
jiao: mov bx,0
3 E8 H. w1 q- T; K0 h* l& B mov cx,20' H2 m# Q" ]5 u a1 B. M
jiao1: mov al,table[si+bx]
' T( }" b3 _- l6 q5 j) _+ ? xchg al,table[di+bx]1 _# N( H- R e- G! @0 z* _! }. p
mov table[si+bx],al
! T0 ~0 E0 G- l& c; A inc bx
' v" x, Q( [2 \( m3 e loop jiao12 g& ~9 G6 v- m8 ~7 _
6 |9 K- y- m4 G6 ds2: add si,217 h, E0 r8 L9 E
add di,21: ]7 s& K; b) ?
pop cx! i3 @3 e! M2 g
loop s1
' }: [' {& c% J0 h8 X& ?# [+ M' X J. q. i
pop cx5 v' S" K/ z# t6 U
pop si/ O/ O% H/ q5 h' E4 A! q3 j
loop arrange
) {5 {! Q; m$ {, j I) q8 R ret
8 o# s I+ v, y# H+ K9 C$ n9 _2 b! W* n9 Q
putchar: mov bx,0
+ J& Y/ j, J" N: b mov di,1
, q' V% H' c5 f/ P
: z n0 f; V. {3 @ M2 I. `& ]7 l
3 w" m1 ~0 i- U" h mov cx,si
! `: t8 y" a1 C; l% B2 Hput1: push cx9 `$ I9 F0 d! }- ~
push bx
' `" s7 I) w2 Y6 f& k* c7 s ]1 J) a
6 N4 l8 v8 n& f6 e enter: z1 n) I% t. {; H. [7 V
" `6 w4 E: x- f. ]0 D
mov bl,10" M: \8 F( }2 D" G, F- N( Z
mov ax,di
; J# I5 W: h& v; A/ ~! o3 n& p div bl4 d* P0 ]) F. m' R3 O% _8 }
mov bh,ah
5 o! u$ S/ z; f1 t& p0 y add bh,30h' V! D1 T' w# X; ~1 }2 Y
add al,30h* _. k3 Z% v4 j4 D! p
7 h! A' o) i: [1 U9 g3 G
mov dl,al! P& H* D% d- _
mov ah,2
: M9 u) Q& S D! a0 k int 21h
$ E; U" }0 S0 [/ q/ w* w mov dl,bh
]5 h9 c7 m- A5 M0 L. n- n ~ mov ah,2* h% N5 e* M) S7 @0 F7 e/ |8 w
int 21h, G' N5 L7 b% `' M
mov dl,3ah
C" r7 I) W( h. k5 F mov ah,2
( @- o k/ j3 M V4 | int 21h
( G" V, |- O2 o. a pop bx - b( N' b& ]- d6 s
mov cx,200 e5 E1 {( M, }& M
push bx' K4 Q; G( N: j% q+ X
put2: # B, \. V0 G& R$ W! Q( L7 y
mov dl,table[bx]0 p. Z, D2 X& m( }/ V# m
mov ah,2h a; P; q% `3 _' Z
int 21h: y0 t* {: u/ t- N& y
3 H' e0 x7 `- L4 L- L( B inc bx" Y2 @5 ]: }% v( `) ~5 E
loop put2
* r7 S5 U2 D# V2 b- l& x1 Z inc di ' d9 f {6 j3 a/ T
pop bx
& e* t3 ^) W3 D. O3 C$ B' t# K add bx,21
6 Z& |, G2 k* O, _0 I+ X: p pop cx6 S4 p. m0 I0 e
& p \4 x( t, D |1 \' w
loop put14 S" H2 k, i6 M' o' L* t$ N! l
ret
$ M5 g- N- J+ C; [" k( m( O9 f4 M4 V: z. `% Q, r
prop1: 2 A4 r, g( o! m6 P w& v
mov dx,offset pro1( D. M# M/ e$ e1 f8 _; S% x8 q( c% G
mov ah,9h
3 u9 N- r( x+ _8 \- ~ int 21h+ S# p, D8 u) q6 b
enter
9 w. [& }( [( ^ ret# w6 F9 G B$ z3 S; h* U: e
6 S3 g$ h/ f% [
prop2: enter/ N' A7 n4 L9 s
mov dx,offset pro2
& E. }: x5 u1 F8 l mov ah,9h
+ h, R. z9 F) U. }4 \ int 21h
8 S5 I4 H) U5 h, b ret
2 H, L) F* ]+ J9 }8 I8 q, c8 ?1 d5 y4 l; x3 k. n" p" D$ w/ l
code ends% B J. r) T9 _
end start
. {# K3 `! I1 m4 V
! o. M. W( o" I, b* o( J5 S( V& Q9 j8 z" j9 }, D- L
|
|