|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧/ H! _/ K$ f, j" U$ ?5 M
enter macro
+ e7 C; t: j* ~5 K9 D" U push dx
0 X# b C# |. l \/ s push ax0 d" f1 k' v( t% D
mov dl,0ah
# k4 n+ H5 Q3 T' i mov ah,2) ?6 w$ C) R1 N$ n$ o2 x
int 21h
4 u- S& ~1 K0 ]! n mov dl,0dh
- f1 k) v. Y% O mov ah,2& p8 }' j5 t+ P6 A) x
int 21h( h- J' W- F% X* x5 P/ Q) Z: T6 R
pop ax% e+ @2 j( R4 ]; i- s
pop dx ( X0 d7 O4 w" p) d$ s
endm C8 z5 a5 _+ n u: e! Z7 G9 O" M
" d3 K9 I" g- i- V9 L( p/ wassume cs:code,ds:data
2 t& \# P! ?8 S8 Vdata segment
7 M6 e1 D: ^8 | y/ [5 [! Vtable db 300 dup(0)
. A( e" ~/ M! }5 @/ P# J1 x9 N0 zpro1 db 13,10,'_________________________________________________',13,10) \( V: z. @2 i8 s4 _) l
db 'no more than 20 characters English name.',13,10$ L% b/ ~9 c! k( p1 h4 j
db 'For example:',0ah,0dh,'liang xin hui',13,105 a, k2 H) d7 R/ w
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
4 q# @/ t7 l7 T b db '.................................................',13,10
/ | q& `! B) w2 H+ f5 H5 q db 'Please input:',13,10,'$'9 C2 W0 ]8 M9 u4 F y) _9 b$ ]5 J
pro2 db '.................................................',13,10! B) G7 o% F5 B% J, v0 Z
db 'The results are as follows:','$' k6 u% x. }" W1 O6 m
7 W/ M# x. _' {
cont db '________________________________________________',13,10
2 b6 W2 a+ G% z! I& i db 'Can You Continue(Y/N):','$'
4 I- E& o3 `5 N% F) U5 D6 H) Q0 e; A& L; E. v1 `* Q
cp dd 50 dup(0)
$ G: K" Z5 N$ {" ]4 T3 m) W9 k& T! V. Udata ends% g! }4 v/ a3 m3 t+ N+ j) h3 Y0 X
& d9 B" }& ]+ o' N; o$ f, {; c) s/ Z" H
code segment7 _! J' w0 l( }) N g
start : mov ax,data/ w0 S) s# d, V/ \5 `$ E& E7 @! C# x
mov ds,ax) a4 `* n$ ]% V9 L$ e, G
call prop12 D7 u0 X K; ]
mov bx,offset table! r& _) P& P$ _5 J) q
mov si,0
" w. r. y0 I% W. O mov di,0 d8 N V# \; ^/ Z
I9 q1 ?+ {8 Q$ n8 h+ ]- M
6 D/ j, k- R8 l+ M4 M4 z9 [" y8 J. f call enterchar
5 V, n' ?# @5 h P" V5 L7 z, Yperp:
' Y4 f5 v# b) Z; Z' }4 q dec si
$ J0 @$ D! u+ S- O$ m mov dx,si
% `7 ?* w* X% \' f- a8 h inc si ) w# l& ]9 r" ]9 N- a/ M; n7 g
mov cx,si5 S( z* c* w* i4 ?% l
call arrange3 A/ [. N5 O1 T, n1 `2 x4 D
call prop2. e& M& w/ ^6 _) Q
call putchar8 Q0 G/ `1 {0 V: T' r3 a
liang:% m* o% r7 B6 r3 R
call Continue5 K0 T' L% S: M2 n8 E' `
call judge8 j; a: N! z! M* y" }0 U
mov ax,4c00h
) a& e2 k- M' }1 E0 p int 21h
3 {' v) t3 s5 r
. E, W% T; f: G1 c/ j3 f
4 F0 @. \4 v- x- E# h4 M( p( O7 yContinue: enter0 K* F- k" N0 ]7 p' e" `
mov dx,offset cont
. [0 `+ E1 ]7 P; t mov ah,9h
7 d/ f, K( ?# v& b! x int 21h
: C. ?* P7 d" }- M# z ret
( A6 ~( ]( Q$ q9 l, H4 Q! G, c) a: a9 f% A& P% Q2 j
judge: mov ah,1. c" W. W& t- B5 k2 x1 f
int 21h
% x* d8 O2 N* _# | or al,100000b
2 E( B1 Z4 g) K$ h cmp al,79h
: k1 P/ R% q( B% s+ Q je clear# @/ S: A& f4 J, |6 y
cmp al,6eh, U' d3 G% N9 w p, [" F7 y9 o
je endj
% ]2 j, E5 J" M3 k6 H jmp liang
F3 d$ R6 t- o8 ?endj: ret 5 I, e) u, f v* G
4 w6 K/ @ Q$ a. D2 Tclear: mov bx,offset table6 s: N' a; e; C" P3 C
mov cx,300
3 ~5 _, E7 q6 i9 d! @) \zero: mov byte ptr [bx],0
1 C u1 O( ]8 m5 J9 ?8 M: { inc bx
# c- b8 B1 d% w& ~5 g loop zero
( T; d. {2 k0 H2 l) R jmp start
4 j& `; {: l$ G ~8 \& y A! g' T# M( h. L2 m7 Q
/ R8 _# | ^8 k+ venterchar: mov ah,1# O: h" ]1 O" ?' B) L* S2 W* A# ?
int 21h/ X6 V j+ C" Z" w
mov byte ptr [bx],al ) n4 v3 e% Z4 {: H/ F
cmp al,13
6 Y' K+ A5 r/ @) d) Z C je endchar 0 M4 n- A; K% ?1 m9 ]+ w$ n
mov di,1
% ?/ S: H T0 [2 z inc bx; H1 g3 C' L* C3 m. }% ^9 ]* ^
jmp enterchar
9 g4 W' u; Y& o
1 j% B, d7 i4 {7 h z& S+ K* z; z( `endchar: enter
5 K3 N+ b6 j" C" {0 j3 M mov byte ptr [bx],' '
% V2 D2 W# S! |) r8 P8 o, v cmp di,02 a8 _& H4 X. b/ f( u! |. e
je perp! W/ i. _$ n! r0 E! D( ~, t
inc si
! b# U$ v& l2 Q0 T& V6 T& j* o mov ax,si
5 r/ l# `3 y" q5 U. X mov dx,21
5 {+ C9 R& r, i+ {* {7 _# V mul dx& x% f7 k. F% n9 m! Z$ T
mov di,0
( W4 N$ r8 q' ]/ {! _ mov bx,ax
5 [9 A+ d: R; ^ n/ g) F) W6 Y' \8 G0 a jmp enterchar( m. ~0 @1 H7 W5 i# L
9 \) M! C9 J: I5 Earrange: push si
4 D* ?! E$ W+ E8 I: S! |- U, X push cx - P" [/ c' _7 U: p$ B; j
mov cx,dx 8 J4 q& d! U0 S- I
mov si,0
- Y- r1 ?1 z. Z- P; g" K/ L mov di,21+ ~, y' C F4 P9 q A& ]: r ^
: \3 K1 L6 ^. B* Ys1: push cx
, B, a1 g+ r! L0 U' ~& i mov bx,0% Z2 ~4 R5 N5 k) u4 _& J
mov cx,20
% A8 \9 k$ m" f" i! Lss1: mov al,table[si+bx]
0 Y# n: Q7 G/ m/ m, }! E cmp al, table[di+bx]% {$ w- C2 D3 A" }' L6 o
ja jiao# N5 Y- a+ y2 u; W
jb s2' V4 r4 W- _+ Q8 c* ~6 Y+ k- {
inc bx& ]! F+ v+ X* Z
loop ss1
5 `! O' l; A8 J3 Z; T jmp s2
$ I$ F5 n, ?8 U. O6 `& l
6 Y6 o) K4 L+ V% k" _& R! fjiao: mov bx,0, W9 k9 q4 [: Y! D7 l+ Y7 y, |* [
mov cx,20& _7 P' v- R+ @' g7 {
jiao1: mov al,table[si+bx]
9 P: b H$ e5 L" \ xchg al,table[di+bx]
% ^) t+ G8 @0 C2 |5 f mov table[si+bx],al
* v4 k8 e3 T/ q/ }8 |4 Z9 L inc bx
6 I! W0 f6 j+ m2 R$ z$ A) d; Z loop jiao1* a+ G+ F" d! L9 J; Q
. i9 Q3 |! l; Ds2: add si,21. ]0 u: p& W: H) m ~; b, c
add di,216 O! |/ o$ K# |& R
pop cx5 @) g: [. {8 Z3 U" Q' }/ j
loop s1
& F# c' _! |2 C/ n) K
% x0 Y- K [- |4 F+ M; J! A pop cx9 T' \1 o% a$ ~8 X
pop si
! k* x7 m+ u& d loop arrange4 V* k' |/ K5 @/ l+ h* `4 ?: t8 A
ret
0 D- @! `3 Y' ^# K! b& D- j8 _/ j' S. B) l( g+ `( Q5 k& @) f' \
putchar: mov bx,03 u5 n# n X/ D, X0 I2 z: N
mov di,17 u) }. z5 g: v; R6 D( T
3 H7 |! x. R7 \0 \( ^ - W5 v% }. H6 O6 T7 \" K7 y
mov cx,si3 g9 N$ {+ @) w! |+ ~9 v, p3 `
put1: push cx
+ D# S1 V; `% D5 T% f, y push bx9 ~% e% b& z4 \
4 s" }4 g7 ~* N! ?; l% {1 P" y
enter
n7 F/ P" h9 n
5 L y. N5 x/ A ]( c mov bl,106 [8 e, q E) M4 \0 `: h
mov ax,di* N) X0 I- U6 t7 b: A1 M2 [
div bl
3 v% E. w% y1 L+ W3 q2 g mov bh,ah2 c+ j f w) \* R, C
add bh,30h4 E3 C0 Y7 L7 G
add al,30h, k4 v8 l7 u9 I" R
: q2 x) q6 q7 v. l+ l' [ mov dl,al4 T% J, B9 z/ U2 f- K
mov ah,2
5 t. y$ Y/ z- ?6 O int 21h# V* r" L, F+ [* _/ r+ w2 O" S, [
mov dl,bh0 c: I- @/ U( x& O) T6 X# m
mov ah,2
/ B/ {) I6 @$ n$ X9 W int 21h9 k) }" a3 e) G
mov dl,3ah
2 l# }+ }3 E& K+ ^ mov ah,2/ |" N8 D) o/ F B* I" z: c' e' D
int 21h
9 H5 {: c' _) C; n pop bx p/ }/ V: u6 g8 G- Z6 s6 s/ k
mov cx,20
2 k* y/ b; N% K: s4 M push bx5 d7 r. `3 f7 n& _% }, C
put2: + u- W& M/ q* H( X
mov dl,table[bx]
+ T1 Y2 F# w" E$ g mov ah,2h
2 Z. P4 o3 m2 h; L( u; [8 a) R) ^ int 21h5 j, U- T9 i: D5 l$ B7 F. m
1 _3 J! G+ j7 Y5 |! ?# r8 e6 u+ m* D
inc bx$ K% |! h. j- G/ W
loop put2' s7 U0 s. G5 s2 r7 r3 H
inc di
* G \# V7 U J# r! H/ q7 s- `& R7 Q pop bx" A1 w- _. k3 L' a
add bx,21. f. \* _0 r; \3 I/ a* F/ |
pop cx8 N& m( r( T: u
* Q6 S3 J: a0 K, E+ \ loop put1" A5 \: p& |7 T7 @& X7 h! J
ret
( q* K$ k5 {' G4 g2 Q7 Y3 W G _! |" a+ e- A
prop1: ' t, C) I( u* \" _) n9 L' b$ C
mov dx,offset pro1, D3 c0 ^8 z7 C
mov ah,9h
7 y* C7 R( f, ?7 O int 21h* d4 @% U3 n4 {
enter 4 O \% W6 `* z- z3 E
ret
3 U' o: _7 T; H% a# a! f
7 g% c0 S$ j6 |3 M4 y$ Pprop2: enter
+ P2 m3 u! R) }8 N2 O mov dx,offset pro2
% \$ e2 \1 f% Q _2 N( {3 N2 | mov ah,9h
+ z9 n9 o/ _- a+ W( O int 21h
( Z3 X% [! _+ L" l ret
& H+ X. ]- D5 q$ W6 ? }3 a
4 G& Y. w* c+ `5 gcode ends
0 T$ [0 ~4 }& O4 O& T' i6 _3 p7 hend start
5 s K$ M1 R5 C2 z1 D1 {- L
3 |0 e3 O: c4 y: e) ^4 ^: D ~7 Y/ O5 d' W/ V( J! R/ a
|
|