|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧4 t, _% M2 i. Y K, c/ u' y
enter macro9 Q/ |. y G4 x* H; _
push dx& `, ^3 Y$ l! t+ ^, D4 o
push ax
6 X% n' R, H5 L4 `$ X7 z# g mov dl,0ah
% q* D& c# i' d( w9 j, @ mov ah,2! J- K# ]5 ^: H0 z" K9 D# M
int 21h- G2 v$ }' Q0 ? [
mov dl,0dh+ O! \3 ]/ m6 `8 r5 h; c3 q1 L8 g
mov ah,20 K" G$ e# A, w8 J+ [/ T4 ]
int 21h
1 a8 q4 O: V8 k# D9 M3 t* a8 \6 c pop ax v* b1 P4 V- r0 M8 E
pop dx
8 O0 D' z. I/ c+ ^endm
: h, O- z/ a+ E. Z
! m2 t& m; P( p$ eassume cs:code,ds:data
" F2 _0 J" H2 |4 _0 Zdata segment
9 A* `! s2 g$ b, f( \, L" J5 ntable db 300 dup(0)
/ r2 f- E( h6 V- O8 d9 E% U& @$ @' tpro1 db 13,10,'_________________________________________________',13,10
- Z; \3 f1 s1 d db 'no more than 20 characters English name.',13,10
% h9 x7 c2 Q4 G3 Z/ M1 \0 B v3 I/ s db 'For example:',0ah,0dh,'liang xin hui',13,108 C/ }% n" N4 ^ a% C* j2 _
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,100 e# T! D. A& Q
db '.................................................',13,106 L) _/ p, X# \7 U, i' Y& S
db 'Please input:',13,10,'$'
2 r' G2 T7 I% [pro2 db '.................................................',13,109 h: E- F2 ~! m+ Y- z) {2 _
db 'The results are as follows:','$'
& p' @1 l$ `% T! c" V
$ T4 ?$ Q/ h2 X! Kcont db '________________________________________________',13,10
/ r6 f4 `& Q( A0 S db 'Can You Continue(Y/N):','$'
7 Y4 ]$ F! u# V- w" @ `% L3 B/ ?3 v! t" `
cp dd 50 dup(0)8 f5 b0 d2 V2 d# E
data ends4 g4 }+ T6 `& G$ K
$ U# h( \9 Q4 T: _* ycode segment1 `% m: c6 Z0 {( R
start : mov ax,data
, u* l7 t& h) L1 b' \! J+ J9 O mov ds,ax: P3 b/ a* [3 p( q- i0 l2 Q, _3 {
call prop18 j+ `1 f# ?7 H Y. i q$ X
mov bx,offset table
; Y% \0 ~8 L: }$ y6 y8 D4 W0 o9 H mov si,0
: a, k/ {1 `! a mov di,0
X5 b. i b9 k5 d5 Q h, |3 w 8 {# N: K8 Y, S$ N
8 F# I, u0 D/ ]1 s | call enterchar+ Q- T k% T2 [! d+ \
perp: 1 @$ a) e6 U9 _9 O* s+ b
dec si9 m H K/ F, r* a f
mov dx,si6 s8 r- z9 H& o0 X4 d1 Z6 r
inc si 6 c7 j. [# |1 ]$ G
mov cx,si
6 p0 X) g1 O# |/ U7 q9 r call arrange' |( j: K8 k* ?) K1 q
call prop2
! L+ M y/ k0 S4 r- k2 [ call putchar
! _$ L" m8 l' N8 ?& _& }$ kliang:
' b1 R' M# o% Y! Q% x call Continue' q2 r: N- Q9 c5 k0 N' S' G
call judge" m. J# f1 y# T* o9 s) ~- u
mov ax,4c00h: m, L) r; U! R ~
int 21h, g* u) o5 ?+ N% X, t
. ~: u% u' U b# X% d# m0 X! n
6 g/ p" h$ C r, N" [; y- _5 K4 fContinue: enter
7 a0 s! F) V; e5 ~- N9 V U mov dx,offset cont& f5 }9 \+ s* c2 s! {) b1 J
mov ah,9h
7 V- @1 s3 t; ?) T int 21h: S h9 H3 i5 W" J+ D
ret % `/ M3 ~: N, v U5 j
) }/ k- C3 `8 A6 ijudge: mov ah,1
3 N' A1 ` d2 b5 E2 s int 21h: k( g, o% X% y0 m, s
or al,100000b" p# K. ]- [( z, k0 _
cmp al,79h: s/ }% X8 j6 S( F5 G
je clear* Q$ ^$ j/ S2 {1 _6 [/ X7 |
cmp al,6eh( E7 f% d' }, h' h6 ~6 h, i8 g& j: J
je endj
: M% z& _* j- X6 c8 M% C2 o9 ~ jmp liang( k2 m! W: q5 v
endj: ret 2 T/ I+ W D) z
7 \. C1 u% ~3 f! K1 y( kclear: mov bx,offset table# P+ o( _/ e1 P
mov cx,300
0 k$ e1 e- q7 I {zero: mov byte ptr [bx],05 k$ G7 t0 w, ]+ e! }3 C: B3 Y C, n
inc bx
( }6 [ O' Q8 e) ~% T4 n loop zero$ |# B+ }: h7 H' N
jmp start
9 `, i$ c0 w7 L% k3 F2 U+ g( f
* d/ P7 {) w$ t/ j# w3 c; B7 \
% T. H. [& N4 O, x0 i3 j+ Oenterchar: mov ah,1/ P& |9 B, O+ k7 m' ?2 H1 t/ X2 m
int 21h
2 l# T' X- T! R0 |0 h0 R# c mov byte ptr [bx],al
_5 f! a5 a' l7 q cmp al,13
* y/ e- C! u8 ?" k je endchar & J1 y+ V. L, J2 w. X6 T
mov di,1
0 J* x8 E4 g$ z inc bx
7 `1 K: P) A7 c& _$ G& T jmp enterchar
w C8 y0 t8 s% H! X) X' Z
8 I5 M- v; w4 u: g$ v7 ^) ?endchar: enter
/ A% t" C2 H4 t- R/ r mov byte ptr [bx],' '
; M0 l' J/ [" T* w( b cmp di,0
% c x) J0 y* l" J je perp# F" ~! a6 g' W, f6 @7 k9 z
inc si; Y5 l" W7 g! H% }0 p
mov ax,si5 h% V8 Q% |1 r7 d `
mov dx,21
: E4 H( a% b: ?8 T9 V mul dx
+ q `+ Q) N8 h B. e mov di,0
' Z) K0 T! A; R mov bx,ax 7 e8 {! O4 \# U# r8 {
jmp enterchar% P' Y. m' |* `1 [. H7 W' Z, ?' J
" Z$ ~; T* K y( ^$ marrange: push si
: b7 w6 j# E* M+ t8 ^ push cx ) }3 _6 @, a( N" \$ i4 B
mov cx,dx + W; x& h) D* N8 P) x5 M* F5 `
mov si,0 g3 i: D- e' ]7 `' \ g, l; C) q- U
mov di,21
4 B; _5 Y/ y4 H. a! j: j2 l* c, z% q0 _5 u' F
s1: push cx$ R" R6 c2 ]- a3 _4 ?" ]# P
mov bx,0
; u+ ^% m4 m4 n2 ^' j mov cx,20
: C. z8 y6 G4 o0 m# q- @# H+ t- uss1: mov al,table[si+bx]
: k3 w! O* i8 h; u# G6 ]! t8 H) B cmp al, table[di+bx]
' X& K& z4 [ m7 F- N* D; W- U ja jiao
% J/ a/ k: a* a! ^8 f5 T2 q) @ jb s21 D2 O) h1 p4 {% a$ |* v( @/ U
inc bx f8 J, `) l3 G9 Q, }" }
loop ss19 q M1 e( p& i, U, I
jmp s2
5 U$ b: k3 }0 i3 Z; Z/ W8 U! w# [) ]$ n9 E& v" Z
jiao: mov bx,0 a# r& [' S. c* V+ Y
mov cx,20
( U4 S" s! ^' Tjiao1: mov al,table[si+bx]
# B* I- q: P! p2 {3 h3 g, x! z xchg al,table[di+bx]
1 \" k% X3 Z" p ]. K: U3 f mov table[si+bx],al2 o2 b: k) R. a' W' }& R3 T* V( Q
inc bx8 N! K1 @5 Q- p; h5 Q5 o- e
loop jiao1/ R! J+ e: a' \2 I; g" N4 S
& n, p4 v# L+ t9 X4 Xs2: add si,21
. z( v: ^" {6 G add di,218 Z n3 p! v& t& ]/ k
pop cx( f; }7 I0 Y; X) N3 s
loop s1
& g. h }" J8 G2 q. u8 W9 O( c: @/ N7 ^3 S6 C- f7 A' _3 c+ \0 j
pop cx
6 A W: o1 [, J! A pop si
. S% s, f/ R" L) c" ]) N loop arrange! a7 q" U) k1 ~" d$ z6 u/ T
ret; M! [: l% @) s, D+ \. K; a
: A. \8 a5 m @ H) u2 X
putchar: mov bx,0
- U6 m" I) \: v- ~9 G mov di,1
7 z5 _$ o3 W' W) X: @( x
, R* ^( w4 F% b9 J' i 3 r, y0 d8 J% ~( \2 a
mov cx,si
1 o7 a2 p: B$ Z/ G9 xput1: push cx7 w, [0 t% H0 h0 }4 ?9 V, f) n5 [- N
push bx
/ h& `& R+ K; [9 g
1 L& j) c( b" k9 a enter
* A2 y2 z' a1 h- {. G ' h( j/ P% Z- \% B* P3 _4 c& l
mov bl,10
; I! f( L1 ?/ k+ j) ~) `2 _! { mov ax,di0 B5 `; a J/ Z- u' h+ w
div bl: B0 F- l l6 q3 ~( b
mov bh,ah& k6 n* [7 x. G4 g) M
add bh,30h2 s Q8 r( C, e" [: i
add al,30h
, A; f. f* d& P) Y! X; l: ]2 l / R- Z# i }7 `3 D( m& e9 a
mov dl,al
3 P6 X Z! ]9 t3 \% k: d5 c" d" E: ` mov ah,2
; Y1 O# Y2 p4 V9 G V% n }& d5 F int 21h( c' d$ |" o: p5 r3 ?- n
mov dl,bh$ G& R3 u q2 O5 [6 J5 Y4 v% C
mov ah,2. L2 z5 D) w& Z& E, e( z% s
int 21h
5 z n: Z8 ~$ m% J% K mov dl,3ah5 }1 B' f2 g' Q% \" V7 x$ Q( f
mov ah,2
) D k( M& e& K1 G int 21h
2 L" G& j$ \4 G @' j M* |6 [' X pop bx 0 g6 N3 j3 k$ N; e$ i9 |
mov cx,20
: G" m1 N4 g1 x3 `$ q; I3 Z push bx
+ X4 g' l+ q( S' ~ T* ^0 q7 oput2:
9 D& U$ L' X5 r/ G. @8 G5 { mov dl,table[bx]2 N/ g; v* j+ U/ A, M5 ~3 O1 f
mov ah,2h
; ~. _' R! g; y- N, L int 21h
& M2 R% ~1 T0 O
9 c. c" c+ }% D9 i$ e inc bx
9 ]; t9 m' j" \: E- `* } loop put2: F& ~. @ _! \9 i3 p" o5 V' ?9 C
inc di 7 V6 n3 D. S+ z9 J8 [- U/ D3 ]
pop bx$ h2 V8 q* ` u2 B
add bx,21* G( l9 S3 i+ T2 Z1 [
pop cx
) {: f z% K3 v4 P; j j8 ^
* W/ r9 k, X+ H7 N: c& q$ T' j8 J loop put19 D' f/ U0 h- R/ [! Q& @7 A
ret
( Z( F9 _9 A6 j! l H" l+ { e. t* i
prop1:
2 r1 t j+ j% ?- W: H2 g9 N mov dx,offset pro1' ^5 Z' F# o- F' w
mov ah,9h
9 ^5 y3 ?# S- f int 21h
: x: }% ?& n: f1 O! G7 G. r enter 8 C% M5 _( I9 i( i( ?; w
ret/ W! @$ M' j" z
" @% N7 Q2 T- L* f
prop2: enter7 C" `: p% ?2 L
mov dx,offset pro2, y" g+ [! l( Z, d! F( M$ t G
mov ah,9h
" K* m3 F! r; b' h! g V5 l& r int 21h
' i- v# }2 A1 v' O* B1 d6 ? ret% |1 q8 H6 Y4 I* Y5 g+ ?% [+ f0 |& D
# I l( Y# C! Y" S( o6 ?code ends
: y8 C b8 q, |- nend start1 g' v) r* i0 [9 L T7 |
# U+ P: T9 ]; p" g; |/ j
& ?" j* @" v) F& _ |
|