|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧9 `1 U& ~% ?4 ~( b
enter macro+ ?& W& N5 g% t, V
push dx
0 J; |! }/ Y2 i push ax
, C: @! m3 K* v, I mov dl,0ah
& i3 |1 \6 E& N mov ah,2
% i7 x; r A j* x7 a. v7 H2 E" O int 21h: ]6 s W3 \6 ^$ f( R. Y6 E
mov dl,0dh
1 A7 w4 Z; _& D mov ah,2! G! I+ ~# ], m& L
int 21h; |5 @9 Y7 h5 j) r0 [ v- m
pop ax# v& l, C, c* v: G
pop dx
q2 R' X. @) H% q2 Nendm6 N8 N7 }0 Q7 {
8 r7 B; ^, M( ?- t% I8 Fassume cs:code,ds:data$ z3 a( |4 r d) Q6 m9 \6 N( F
data segment4 C& S: Z. U7 d" T
table db 300 dup(0)
, P; T( s5 e0 s8 w8 Gpro1 db 13,10,'_________________________________________________',13,10
: d) k' g# r. @ db 'no more than 20 characters English name.',13,10" o# v/ J. s: \3 k% W
db 'For example:',0ah,0dh,'liang xin hui',13,103 a6 S3 u8 T/ Q2 ?, u( ^
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
G5 f R m- `) J6 |3 ]' B db '.................................................',13,10
+ n) d' e) n2 f# B1 H& m3 U db 'Please input:',13,10,'$'5 f& {. ~5 E3 J; @0 Y3 ?+ v! `
pro2 db '.................................................',13,10. \7 E) h) n/ f3 }( Q
db 'The results are as follows:','$'
9 [# |0 i$ o9 Q2 E+ h& c4 e; ~, g6 i' m8 A$ ?6 B
cont db '________________________________________________',13,107 P- t% Q/ f$ U h
db 'Can You Continue(Y/N):','$') W$ F5 q( l" t8 c& M7 ?! e% b
1 s( H6 Y9 z) V' J; ?2 x
cp dd 50 dup(0)' e; X M1 ~8 B7 |
data ends' \) M: m% F6 M8 J3 ^. M$ ~
@ a0 R5 E8 y$ q
code segment. [( E0 c$ N! }; c" Z; f9 V$ o
start : mov ax,data
9 E3 E- @2 K" b0 U- Z4 ` mov ds,ax
! h+ a! U g3 X3 x5 O call prop15 m: ]! I/ S( @' a- W9 g. g" }. _
mov bx,offset table
. `3 M2 b! U) q6 V5 w4 O% [+ d mov si,0
: _( m7 N9 E0 j mov di,0
: O* \4 K1 j- M& V. {8 ]8 Y4 L6 ?! D 6 b8 r/ f. i; ^
3 \ K7 }$ |3 ~7 V) }. w, o call enterchar
k+ X/ N8 D7 f: q- `( s4 }8 @perp: 3 e0 K; i3 w% J! u( ?$ }
dec si# k& i4 N5 o6 q9 B" H/ C$ c4 m8 k, q
mov dx,si
1 G. H: r. O# ?5 \' P/ d, v inc si * X5 c1 h5 v& J: U8 `, \, K7 _2 L! E. h
mov cx,si# p" f( ^) x p+ B- ^. c! Q9 q
call arrange
, q0 w ^: Q h( H3 k, G: |' k( \ call prop2# F4 ^2 N/ x! ~& O+ h) N
call putchar
: e. |9 L1 a! |) R2 jliang:
* |; C' q! O) O$ l call Continue- g3 f+ R$ d& f0 q
call judge
' {/ f$ d1 p; w) ~3 N" T mov ax,4c00h
, K: @7 e8 ^. D/ x% o2 g int 21h7 r) k/ m; ]% x% w/ r
4 N/ @5 x2 x8 k* b6 U7 r$ r
1 E( `9 k& j: d- UContinue: enter
4 | X/ u8 ^. [9 z2 N! r8 _ mov dx,offset cont) K/ r, \5 P* d2 W1 C
mov ah,9h, O W: h% ^" O0 K
int 21h
e- l$ p/ y; }3 W) i* z ret 8 A( @1 A$ f, ]: n3 J
# B5 d" y1 ~9 G9 x7 [9 v, T; jjudge: mov ah,1$ k: i0 I' L3 b1 H0 u, P4 W
int 21h" W/ D5 u+ O" n+ C' N7 K: n
or al,100000b3 w& f0 p) |) q2 G5 X
cmp al,79h: b* A8 a& C; @. j% v& t# w
je clear
7 U% L5 ~2 X1 q; M cmp al,6eh
& G' `/ ]. X Y( }& o je endj
9 k) S0 k7 C8 } jmp liang
# D. I( D% o" |6 w: _, Sendj: ret
0 t' e; l7 ? t0 t
( V, F& Z& U! i1 u) q( j4 ? ^clear: mov bx,offset table
4 y* n9 b: N* e( v1 q: C4 | mov cx,300. c3 L+ F6 G7 O. ^8 _' }4 u
zero: mov byte ptr [bx],0
3 R( L2 w& d. ?, o" l2 {. @% f inc bx: Y: _$ W- x; n- ^
loop zero
6 c( J: A" U: n6 w4 d4 ? jmp start
( [2 q' z! N6 |" X0 O
$ `. U0 F0 X8 z" \
7 x9 {) i8 Z2 X0 `& _9 l; N8 henterchar: mov ah,1
+ v6 }. M5 V$ ? n& J int 21h
5 x3 y# b2 ]$ m" r7 m mov byte ptr [bx],al % v' a+ W6 v. u$ X. r9 ?5 N
cmp al,13
3 X9 O3 h+ B& C* T7 a9 [9 y2 j2 f je endchar 4 t) e7 s6 B: {# `
mov di,1, V- S6 c0 b' s
inc bx
/ E7 D( b% g6 A: b: f1 C jmp enterchar# b0 p9 s/ [3 u0 ]
; Y6 e0 C/ P4 ^: G9 \3 |
endchar: enter + V& z" q9 W& ~
mov byte ptr [bx],' '
7 j5 ]4 ^* V' d) R n- | cmp di,0/ O8 ?% H' K( V/ Z
je perp" |; d7 V* T, p3 m
inc si
9 Y* O( T; R, h" j1 Y, \8 b mov ax,si
2 U2 T& Q0 K7 d0 \7 o. |6 Z& O mov dx,215 H& X% N6 W' G- F0 |
mul dx
* A# M4 k1 y1 R/ V( C mov di,0
( v8 Q. i8 g2 q9 I mov bx,ax # \& Q" o5 H! [0 @2 O A3 f
jmp enterchar
7 O/ U, Q6 O, D1 |$ d, i# S
7 P: V+ X" q# H$ H5 S6 Warrange: push si
8 V' C) A3 m. `4 j) Q7 U push cx
) z* p/ a1 W9 Q4 {4 Q% h mov cx,dx % r: H: L+ l! ] ]/ T, m! P
mov si,0; J4 T( Y/ M8 `5 i
mov di,216 o" q, N& g! O) _3 b, }8 T' V, V
, S( ^, A9 w; r" ^s1: push cx6 M- U9 ~0 F4 Y! f
mov bx,0
/ ~( N$ D. s1 |/ b! D4 b' L mov cx,20
Y9 K+ H9 S/ V1 k3 mss1: mov al,table[si+bx]' C/ Y- z3 G' W1 u( [6 C3 h
cmp al, table[di+bx]) J/ k9 i; u' |% k1 t% u7 O
ja jiao
# y5 N/ ~2 V% S+ m7 E% b" }) z' c+ ^, y: P jb s2$ T Y- }5 ]" i' _; Q8 R# t
inc bx" `' `" f5 i" n" I# q, |
loop ss1$ K7 X( T/ N( ?& {
jmp s23 N9 J4 _0 T5 k/ A/ ?
* G, X5 g1 {: b* l' d" r
jiao: mov bx,09 h$ v& ]/ L; k
mov cx,20
& x1 x+ d! w2 t4 `% e+ s7 \jiao1: mov al,table[si+bx], z- A1 E$ L1 Q9 j& S
xchg al,table[di+bx]- v8 u' z9 n& \$ R- c- W
mov table[si+bx],al# B# M+ R/ z W
inc bx
) v, G6 }3 q9 _3 n7 f/ u loop jiao1
1 {% D. U+ x& [0 G1 ]' `% x* c) v) G6 I
s2: add si,21
- q4 r; D9 `# Z5 Y" n; E$ H' Z6 K add di,211 M; z3 }) Y6 v5 Y
pop cx
/ T1 ^8 l/ t% z loop s1
* @6 h% f6 C) E0 |7 I* a) S' v3 A* m/ c) _6 [1 Y, {& c. y5 F
pop cx3 P9 W2 l$ U- Q9 w% g: j
pop si8 h1 \" }& s8 h/ ?5 A1 g! t$ o
loop arrange
% ~ i. d( Y; m ret/ `# S* p, d! y6 x& I
2 v/ o a2 ^* O# _5 b% E9 p) G/ L
putchar: mov bx,0
& e8 W1 i$ A, O1 n/ l- m5 Q* _ mov di,1: S# M/ e; r F5 e
- {. H' \$ i( Q n0 {% u ' L/ N) {" C# w: {+ K `
mov cx,si6 Z, T' c5 a' D
put1: push cx
5 g# J" w, z" ?, a8 Y push bx
& e0 s' t) J) v" v: F7 P ' d( [1 K1 j( w/ V
enter
8 p& e- R8 l$ _4 a E
+ E$ ~2 ^! v' p, b' y! z4 s) W mov bl,10; n$ B" ]% v7 }
mov ax,di
/ X* B9 f' s& D" f2 _ div bl8 k% j9 p+ k1 [% Q" p6 F. j5 A
mov bh,ah' I0 L& V2 i& e, _6 L7 B) ^' Z2 _+ v
add bh,30h* H" x# U; C( A8 o7 _& r1 Y$ O0 w
add al,30h' v X( G; z5 @/ [, i1 L! P
% r0 K* j% o- B# |8 [% C- e mov dl,al; x7 [' l+ W" _4 {' S0 N
mov ah,2
1 `2 B( r7 {2 S: r# L int 21h) j& N4 L2 _ M( Y
mov dl,bh, h0 l! {5 d# _. L* V5 U, ]- j# K
mov ah,2
* _9 x) k' P( x2 g' b6 U+ s int 21h
9 ?/ @% Z4 Y9 X- z/ C- b0 Y5 s mov dl,3ah1 ?: j9 Z$ M7 H8 m5 T9 W6 H
mov ah,2
" J8 ]2 k; ^7 n7 I% f6 Z. N7 [* b int 21h
5 M7 d |$ n0 I* C8 C9 }( a* _ pop bx % o1 V. }4 N% P. y4 P4 a
mov cx,20
# I2 |8 J4 E. l4 o* H5 P, @ push bx
8 C' P" l; E. j6 W& B9 E5 Zput2:
( {8 t0 b3 D& [" P* M; d* o0 Z mov dl,table[bx]
5 d9 b# l, d, S r2 x& Y mov ah,2h4 W) n; }0 v9 {7 r8 { U: x0 ]* s
int 21h4 x+ h! B( I. t
+ f5 k! K5 C4 P) l2 B+ }& H inc bx
" C. J9 m1 F" R2 `0 e& k loop put2
/ a* D# t4 |% V# n: Q/ P inc di # K' @( Q3 [' @0 ~, E; A
pop bx
: V: z: u9 c: q2 I# Q add bx,21
, p% _9 d B6 D! C) K. ?8 _ pop cx
2 L3 h/ F9 W4 m6 C# j$ W$ a0 t
; k, i1 ^( N5 h% `% c' m q( ^ loop put1: Q o4 f# Q' p( a) s" b
ret% ~8 q% ]% O3 W( r
5 Z: W# S% { D6 R2 j
prop1: ( y- j/ D0 P* y2 }. H o9 ]
mov dx,offset pro1
$ \* B8 q: @1 q mov ah,9h0 {+ V! ?" j0 S! T, H3 H- D
int 21h
/ ~. }# L7 r' w; P9 I enter
) f2 w9 b" }% \ F7 c4 y; E( Z ret" y9 B0 B9 ^, V2 f% i: U# S- l5 D' z
- w9 |) z: `# Vprop2: enter
; e$ ?. Y2 H) O mov dx,offset pro2
+ i) h4 L' {& X4 \0 p mov ah,9h
; K2 L1 w3 B; d v7 s int 21h
0 M" n9 w* F: s ret
: A) l o2 {0 _! Q
( p/ w, E2 J( wcode ends& k5 s9 i; v% V0 o1 ?% L: k2 m
end start
! j; z5 S) P% ?2 a b2 o
1 a( [4 m$ E, X- v: ^* Y' v7 u3 f/ t# c# B0 V4 ]
|
|