|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧& |& n+ a' j. f0 i o* r
enter macro$ `# j6 ?. t. ?# Q: _: N
push dx
; y4 P4 B7 N4 G0 ` f push ax3 l3 N$ m# a- ^& H9 H
mov dl,0ah3 m- K8 v5 W- f! Z
mov ah,2+ Y1 ~1 l+ F$ C5 D7 @" t% _' b
int 21h
3 m6 z2 R. r7 p& a$ b mov dl,0dh: w: n8 a2 A' E Q. Y
mov ah,2
, I3 k1 b- |" q' v int 21h
3 N, c D7 m8 V: \ pop ax
/ ~; b% r0 l1 T pop dx
0 `1 _+ V* s7 ]8 @endm' `% _& \/ f. }% m& |/ [- Y0 Q
; F6 l! |9 D' Zassume cs:code,ds:data2 [8 e+ F v; Z# O# r
data segment" t, e, I) y" R$ ]# t7 K
table db 300 dup(0)
( h* m) w9 Q3 T3 Epro1 db 13,10,'_________________________________________________',13,10; `8 b; E3 J8 A- ?8 f$ w, M
db 'no more than 20 characters English name.',13,10# G+ ~7 ]2 V, X$ X3 `4 ^. s
db 'For example:',0ah,0dh,'liang xin hui',13,10
; y1 s" Q0 w2 G db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10! D, C; ~! X4 R; @% C
db '.................................................',13,10
6 K+ t3 U1 R* s db 'Please input:',13,10,'$'
; [; A6 C T, y* B- zpro2 db '.................................................',13,101 l; c3 M- A$ @0 Q& [/ L
db 'The results are as follows:','$'
! E C$ l2 w* n% M/ y) z/ C' D) r& N, T" y3 t% b- s) V
cont db '________________________________________________',13,10
- {4 x6 V4 z' d) m+ ~ db 'Can You Continue(Y/N):','$'
" i) H3 L/ J9 Q2 y0 {( {% a& ]+ a5 B' k
cp dd 50 dup(0); V6 t5 ]. S2 b+ L7 g& B
data ends
- Y/ Q- E) V$ B( ~% y0 D3 I P1 ^
code segment- O% u; s/ Q7 o6 y6 S k' u+ L
start : mov ax,data' `' d9 |: ]+ { s& v. u7 w5 y
mov ds,ax
% f5 @+ k) K. `2 v" J* g# x/ u" c call prop1
. ^) m1 n0 ?1 v; c- ]' V mov bx,offset table
7 u+ ? j2 J2 O4 x$ S mov si,0; f3 V" i( W9 A5 L$ m3 r
mov di,0. Y8 I8 Z& T* @$ C4 V
+ c6 h s' ?; r* ^) o4 U' p
. T$ I- i; h/ T9 q' C; E. x call enterchar
* }7 A/ Y/ }; C# a# @4 ]* P- N! `$ kperp:
m* B8 M4 F& L( T. P7 k dec si6 R0 ?# u7 z) j0 w" l8 w
mov dx,si: D- r7 }; @: n7 p
inc si
$ w8 P1 d; }4 u/ s, _2 O0 N; [ mov cx,si
/ ]4 X5 c3 Z, o+ K8 Z' X( M' y; W7 K call arrange: v( _$ G W) v" T- |: }4 r
call prop2
, r. }7 @. j* @+ n% ^# x8 b0 m4 Z call putchar
6 P% y4 m. p% }3 y# |5 o2 jliang:; @- Y) f- K2 I) E# z- q
call Continue p. W4 T/ g$ ]; h T" l9 h
call judge
9 j5 f8 {6 }) q5 v0 G% W$ ] mov ax,4c00h/ P+ T4 u u" z/ ]
int 21h
$ _% p/ Y# x& y7 e x4 b
9 T) p( ^, t8 G+ U6 f7 f* x b4 F9 A6 c. [ M! z
Continue: enter( J( ]/ x& @; S$ u0 l# z, g
mov dx,offset cont
* q' M& y8 G+ l3 ~7 e mov ah,9h! h/ }5 | t; \+ O7 n" Y5 j
int 21h2 N6 \- C c6 _! ^8 X
ret ( e; r& a+ P9 B! ~4 X
" g2 \! G! m: @0 j( Djudge: mov ah,19 Y2 |0 }- b; E: c7 E4 I4 M+ P
int 21h+ q. {" v2 [: ^( T9 S% a
or al,100000b
?% p/ c3 ^8 h3 i; H& J' S- V cmp al,79h
5 h/ h5 Q, Z& L' y7 L7 J+ g je clear
7 l* [3 O" P2 O3 G cmp al,6eh
# m1 q5 R, @; N# D je endj
" O, s% T8 K$ l' b jmp liang
( N. Z- ?7 n: W/ {- H. s$ a; }endj: ret 8 P2 M' m! g9 P
4 c9 K6 L$ ]' e6 S; t& i
clear: mov bx,offset table
b8 l- o y. Q4 j1 M, q/ e& @ mov cx,300
9 j( K' C4 K( t6 ]+ zzero: mov byte ptr [bx],0
2 x- G4 L9 P; l inc bx
, U% ]: X! O$ \4 N loop zero+ j+ c) P4 g/ ?8 w! G% e
jmp start
5 Y: d( A* ]/ w+ }; p& @: W; X0 H
0 E8 S/ h1 n0 x+ X
" |) n+ w0 n& e/ Y3 z9 U! n a) i& Jenterchar: mov ah,1: y7 N8 j% O# i3 H0 {' P b( Z
int 21h8 q: f# ?9 I7 R1 ~
mov byte ptr [bx],al
' }$ A3 h% i1 m7 q2 _6 L$ i cmp al,13
* z/ J4 G, N' _' \& V: J je endchar ( L* o# z4 L9 _3 J
mov di,1* g- `5 z N( Z+ I! |; U
inc bx
* N; p# W# o, i/ L jmp enterchar! p' W1 j" `7 J) I
' L- ?% u: G! l a! ]' R
endchar: enter
& z3 B7 s) M* V7 ` mov byte ptr [bx],' '
) m' J+ s$ Z4 M$ q8 p2 f cmp di,0, ]: ^2 ?: d% v1 x: b( P; V
je perp/ K4 l$ Z# O! _# m9 J" s& G4 L
inc si" ~- f1 f9 s) P
mov ax,si J: ~$ z" i2 I8 b: V8 G- g2 z0 q
mov dx,21
) @' ]8 [" I+ z0 M6 d) F. p; x( j mul dx: _- g( v9 i$ Q( a
mov di,0' D1 R0 G1 J6 h' ]& v7 u: l! Z, J
mov bx,ax
6 H& ?3 w- @" A, O2 Y9 S3 v# F& S jmp enterchar
+ u) ]2 J% C9 ~1 H- h4 \2 d! c
7 I. b$ s9 @0 [1 [( ]2 barrange: push si
% r# I# [, p& X! M push cx
5 q- m8 K8 r9 i mov cx,dx
- e* D) a" `; J+ D mov si,0' _0 E4 P( w j4 t1 b7 Z
mov di,21/ z5 R. ]2 K! ]$ m& P! G$ D/ [4 G2 k
1 X& L' a/ F0 L$ \* O+ Js1: push cx
0 u- p. G8 M6 L) Q mov bx,02 W- r/ R) D* J9 H# K4 U) ^9 ~
mov cx,20
- a' Q7 ~6 q+ t+ M3 |ss1: mov al,table[si+bx]
2 S8 l# c/ L, E. Z+ } cmp al, table[di+bx]
2 q" o8 \) P, |6 U6 t ja jiao
! z& V6 f; ^: D jb s2
) \- F9 j& p+ k: } inc bx: e' Y" K1 w. x, @8 n' ^
loop ss1
' L1 S, u" K6 H! [: C jmp s22 u5 k! [- D0 m4 ^# }/ h! M
' i! f& A0 [$ Z/ Qjiao: mov bx,08 C% |- J3 y {( g
mov cx,20, P( j D$ d A l
jiao1: mov al,table[si+bx]
# z! F1 ?- {5 W' U- M5 _ xchg al,table[di+bx]
; X# w3 p; U1 ?1 U, d- i+ W mov table[si+bx],al% D) [0 w- {; J0 H" c+ x7 I
inc bx
; l4 o- ^1 N# Q& D6 Y* E) B loop jiao1 |5 U4 \4 _2 ?3 J* }
; u( M3 b1 E! i! Y2 c
s2: add si,214 c# O; d7 S' U2 }9 h9 c
add di,211 x3 j5 O& y& W$ z9 B! K
pop cx' x1 ~" ?' g3 g8 |* {, N
loop s1, F3 H; R* B( X7 R' f( ]
A! \+ I! ?: B. k1 P# l pop cx
, ?+ O+ S5 K. E; E) ^ pop si
1 G2 F) I( B. p& x z- Y5 G" q loop arrange5 a: a. ~) B+ F% t9 `+ x" W
ret
+ x. B' p0 _& [. F# e1 u" i
@7 Q5 {2 [) y$ N, q9 Xputchar: mov bx,0! d8 {1 B6 Y1 F2 X2 r
mov di,1
- x! a- `0 y7 ]( S8 i" x2 p
$ _8 W4 U, Y4 n 5 F/ h: d7 [! h/ E% ~( ]
mov cx,si
' }$ [# E# R q* T, B9 O7 dput1: push cx* `2 G1 Y3 B0 _0 I, I- T5 w
push bx- U' m( c" p: U- O5 \5 N! G
2 F/ U# [5 |/ B# T8 }8 X' z
enter# i0 l2 i: q$ n
- W7 U. [* p, q1 {: a& Z: l2 X% l
mov bl,10
1 l8 q* }/ X( z4 Y+ O$ h) ^ mov ax,di7 y5 Q1 Z+ ^& r, J
div bl
. R8 [; N3 g2 {4 P: I mov bh,ah) j2 P M! l2 o7 I+ C8 O
add bh,30h
3 o; z4 J8 O% q8 D- q add al,30h E5 o$ X" {; M- W4 T9 o
e7 A* e( M0 b8 p
mov dl,al
) e: J9 h+ ` ? mov ah,2
9 P# ?& u" q- i/ J" u" R6 A7 F; a int 21h. t1 Y2 a# ?& T: b' k( C
mov dl,bh
1 b) O. |: @, J3 S% a; p, ^ mov ah,2
% W, ]- Z' u6 l" R! L int 21h
$ [- }! q8 I6 Z/ a9 ^( ?) ? mov dl,3ah* V: z; `& A+ v: L2 C2 z
mov ah,2- J6 ~& X, [( t7 h
int 21h# g# v- p; v. a. E% a( A( {( W
pop bx ) g5 c' r% }; k' K5 ?
mov cx,20& p0 l. `. }9 X4 d5 M
push bx0 x/ D( j) b; y4 J
put2: * m/ k; d2 ~5 o4 S- T
mov dl,table[bx]
' Q) v0 S6 U% F mov ah,2h
5 h2 ?7 F# Y, e) P X3 G int 21h
: E+ A8 L. A9 a* H5 | + u) [' d5 J1 g( X
inc bx+ C0 q8 z$ f! s/ U5 x/ w
loop put2+ x6 k5 r6 K- ]6 X6 E& J
inc di ! w5 S% z o: D; F0 u
pop bx
! K7 k; k4 Z7 Y4 r# w add bx,21
+ L& A& b* [3 g pop cx) X7 e; h% k& t0 K6 x/ t
( T: J* Q8 s$ w9 P& y; w
loop put1& \. [8 U6 h- F2 H4 P5 q+ D! A( u
ret
1 P6 V" r9 d5 K! w- ~4 c* g2 M# U* z/ `
prop1: + E, F5 p* x, N" S
mov dx,offset pro12 T7 I/ S- G# n0 }( n5 ^* w
mov ah,9h2 e: `* r( l! O8 r6 \
int 21h8 o; X, k" k6 I' ?
enter . G) x, S5 l- |* W
ret+ i3 Z- y: L* k! F& {$ I3 a" f
8 A- P w& z* qprop2: enter- [& ]5 R( I8 N7 G5 I/ x, {
mov dx,offset pro2
5 F/ a% C6 b5 M mov ah,9h
+ t. u. ~$ P$ g& K5 q int 21h% D: q5 _' M8 `) E
ret; g, c$ x% p; b. F/ _& T8 p
6 Z0 T* r& N9 O; t+ G( p
code ends
# [. o. V+ s. v1 m' @$ d: Cend start
* s4 }5 K0 H) i
# \* S9 B) ~; X
& x& D# g$ M/ l7 |: X |
|