|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧! j, y# h9 W+ o4 A$ H6 ^6 \$ }4 h
enter macro
$ M* a1 l9 i t4 F8 H! o push dx$ q/ f1 y, B4 Y& [# w- u
push ax
e" P4 P& k. t2 ~ mov dl,0ah8 v' i& s5 v0 }, B" V8 ]# N
mov ah,2
6 Z( z7 ?8 G, k/ L- z' K( T- j int 21h+ V9 m# W5 Y; ~8 X, ^4 `$ N
mov dl,0dh6 D# l8 L, H; {7 w- M) m
mov ah,2
2 X* E, T) w5 N5 D( e% v+ @ int 21h
5 j5 s* ?: g/ i7 {/ a/ [ Z7 D pop ax
+ e" _* Y) h6 q. R- @0 H pop dx $ z V+ i* a: J# T+ x+ a
endm
; h1 v# L! l0 p2 E5 ?9 }0 i& m8 S5 _
assume cs:code,ds:data5 D5 v, U* V# ^- n) j' V
data segment9 w$ K# J* N/ z/ B+ x) b% {
table db 300 dup(0)- E! z6 [6 k z7 p
pro1 db 13,10,'_________________________________________________',13,101 B- J# l( }0 t& m
db 'no more than 20 characters English name.',13,102 {: O" r" x9 ^; I
db 'For example:',0ah,0dh,'liang xin hui',13,10
' E/ }3 U5 P {- G db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
, b' }" X% j/ Y" e' j db '.................................................',13,102 y+ p' l, J4 ]/ _! M3 i& l2 n
db 'Please input:',13,10,'$'4 D* m/ a: Q: ] l7 |$ B- Y
pro2 db '.................................................',13,10/ E5 I8 Z4 R- {3 C
db 'The results are as follows:','$'
7 c: u3 r: Q; c/ C, W
+ f2 C7 m9 X5 O. o/ s3 qcont db '________________________________________________',13,107 z' `$ u2 L K1 ?$ a: ]+ i
db 'Can You Continue(Y/N):','$'
P: O: I% T! [4 D \1 U
+ O2 ? ?( ^/ P: }, [cp dd 50 dup(0). @2 Z$ p1 U$ s, }
data ends
& n0 f, f: X+ u+ h# }9 [$ w% J2 q* Z, W& F1 F$ |9 w
code segment( @; m5 D' r( C& F
start : mov ax,data: @+ F4 ]7 r& z8 }" e2 `7 s# n/ Y
mov ds,ax; g9 j# u( i" G
call prop1
$ A G# {. c1 r( z- Q mov bx,offset table
0 W, A% W4 A1 ^7 P7 m y mov si,0 u6 J8 p* t; ]7 ~9 Z9 A* X
mov di,0+ t1 O/ O$ F( }( x
" r0 j! q0 S# E+ \! g8 f1 j. U; ~ 6 k! k0 s B2 \0 X2 o
call enterchar
& w& x0 c- W6 [( S. Tperp: 5 l0 D* }" d$ n9 {! g& j
dec si
! O3 V" H3 K0 } mov dx,si4 m. c) t6 P5 Z! \6 H8 u
inc si + g7 ~* A; [$ b4 {$ D' X
mov cx,si# q2 T, N5 A: X1 M5 D/ u& }
call arrange' l/ c$ g1 Z! w6 B6 A
call prop2
, z, f$ S' }' d, n# X call putchar
" B9 _1 Z4 l: p0 V) P. l$ dliang:# w9 n4 h3 [. z( i3 b6 I
call Continue3 O: z$ s: P, ?) o. Y2 ~* c+ n
call judge
5 E* ~3 r W; e6 H. I/ B mov ax,4c00h2 j* H; {7 s. F/ w9 c
int 21h6 h) A, J2 o0 V. p9 m& J
. u, w5 }( T7 B6 F9 o5 F$ p4 P3 I% ^9 G) i* X- o# X& l, P
Continue: enter$ A- O; d, {7 o0 w0 y$ W' K
mov dx,offset cont8 M* y; w$ E. }/ k3 }, _# E: ^( h) `
mov ah,9h
. ?$ i, l3 W c& m int 21h# i& d, } B, k5 Q' T' \4 f
ret 0 S; C) ]( F3 M% a1 m
- W$ n' e4 h" w# @4 l: ijudge: mov ah,12 K& x* h) Z7 x5 S$ y2 l
int 21h" z8 b& b% Z# J4 y0 W. j5 j* g
or al,100000b$ U: W$ c- U$ I
cmp al,79h& g0 v9 i% ?/ C* a( a- Q+ z/ k, @& Z9 R
je clear
1 w. }; [# W e- O cmp al,6eh
! n4 T: R& T* j je endj
/ a# l" X# s; c" m- `7 x jmp liang7 P5 l! Y1 w& o0 ^+ u3 S
endj: ret # u9 V: _0 I# q- ^( K' Z7 W
, I8 w- Y; b4 m l" r! X x2 ~clear: mov bx,offset table
& G/ m# m; Y1 v3 N mov cx,300
; `6 W# t. ^! k0 ?3 o3 M* wzero: mov byte ptr [bx],0- V$ w) a+ O) j4 j0 Z; D. u
inc bx
+ z5 f9 z8 f5 H; m% B3 n+ [+ a loop zero: t' Z; i' W# z; _- |
jmp start
: [7 B6 Y/ W$ j }; P! ]8 ]
( @' X: d2 }8 J. H* e7 b) X
, N2 f3 ]3 P4 d0 U/ I8 y d: Lenterchar: mov ah,1
2 W5 k3 E% a5 U int 21h
1 q9 w: ]( z W2 H3 W mov byte ptr [bx],al 1 W& ?- x5 l# j i4 {8 x0 U
cmp al,13
" `: d3 @& ?1 f* E' g+ L je endchar . o) O) z4 Z" g
mov di,1$ f9 N) q2 ?5 {- f1 w9 @
inc bx
2 S5 ]/ B% H+ n jmp enterchar
; G+ `: W. U2 ^1 s$ B) T6 Y7 K% V c% h% P8 n! q$ Y
endchar: enter
: n& ?9 H# x3 }: C" {3 I& o2 o$ x# d mov byte ptr [bx],' ') o$ f5 Z! T2 l) q
cmp di,0
- W$ h2 V$ |' M7 H7 C! w" R je perp
4 T/ ^7 U, y: j1 x" u) Y' Z. \) c* y inc si) E4 n% x' g; v9 Y
mov ax,si
4 V" {. k4 ?0 Z+ n mov dx,21
$ C! r5 n+ X; c7 r4 m# \6 i mul dx E' b/ u* \* O9 P3 s
mov di,0! {9 u+ b7 r, G0 Y2 f+ g% t" V
mov bx,ax
/ q9 p$ c3 n& L0 K7 I; \0 ?3 G jmp enterchar
" A4 n6 B. a% ^3 [* Y& }8 X8 F" l3 Y* w
arrange: push si
1 p- O- F( \& l4 C push cx ' T4 @$ G% ?" _& q3 g
mov cx,dx
( q+ ?& ^5 ?/ b. y6 e# f$ L: k mov si,09 e4 f% C& l+ i1 j- Y7 P$ ]
mov di,21
1 h+ \% R* d; @4 r
$ ?" X- C' P9 C8 Z9 ?$ Bs1: push cx7 V! D5 |: u1 N8 {2 I4 E
mov bx,0. K1 p5 f' L. S: n
mov cx,205 `7 n3 Q3 U/ d/ k, @4 d
ss1: mov al,table[si+bx]( x" s* n; r6 Q7 N1 x; x) u/ a
cmp al, table[di+bx]
% b% _/ r4 J4 R) F, ~ ja jiao
/ }$ v* r- s0 U: ^8 E; e* r# Y jb s2/ k9 E& v# e! F3 B6 h- \
inc bx
) [9 N0 \- B1 D loop ss1
) a, k6 t( `5 w1 ]+ G* X) s jmp s2
8 B+ C( B% [5 f7 x5 N$ u* A: a) }. Y1 r1 T. U
jiao: mov bx,0
) J j: J1 ?, B% X9 \ mov cx,202 k: k a- Y8 m& W. ~
jiao1: mov al,table[si+bx]
8 }- z: n& v: E1 S+ z1 X xchg al,table[di+bx]8 r$ i1 K! m+ L! _
mov table[si+bx],al
; C3 H* X2 s \3 y) c inc bx
5 v. W2 h/ Z! w* e loop jiao1, G7 B* _: s3 j9 f" ?5 g
, f; f/ L0 D2 g% H1 I3 N o* Y6 d& r/ p
s2: add si,218 \6 w7 P+ S6 t; r2 U3 @' _
add di,21
z) E$ s7 n& n5 m8 n pop cx
' h$ {7 @5 Z+ O* o, ? loop s1
g& X1 [8 X4 q. w/ q8 }7 Y
- }' Y* `3 c# i5 U; K pop cx( k8 S5 ^9 Y: k0 p1 [
pop si
1 X: u, Y' D: _ J: y loop arrange
" Z4 [; X- ]2 ]( J$ ? ret% I2 p- u, n- F# H8 ~( Z- [* k k3 m
0 C- C% X; A# x+ [- r7 p oputchar: mov bx,00 ?0 l( O1 c" C7 B. `' j8 [9 z
mov di,1
: h u; @; @& v8 N : r/ E4 Y4 q4 r* T- T# H) `& [$ w
0 N$ o5 v2 Y8 B1 x) w7 E; |- ]4 a4 M S
mov cx,si+ a& [( w% n( A6 F6 j9 e6 _
put1: push cx3 R7 ~% c/ F) A% K. r
push bx
X4 s0 m# h3 F# w: a& T
2 m. F2 G" \ q7 L enter
' O w" r: Y" ?0 Q7 y. y0 [( z
: y u, ^$ ^; _+ d% h- k% {5 b mov bl,10" o7 W: T/ j- x2 i- Y/ |1 N
mov ax,di; X) @5 ]- o+ V/ A' c5 M/ X8 ~6 X0 S
div bl
9 b a; i! Q$ l6 h$ c mov bh,ah# ]7 s! S$ V0 y7 M
add bh,30h1 r: |( p: p: ]+ K
add al,30h
$ ^1 X" m/ U0 p7 E6 Z
$ u" H D. ^! C. M- Y) G C% g mov dl,al2 x. q1 Z2 B; {3 } \
mov ah,2
' I$ J% C' r" d" i& c' T int 21h
$ M( \! Q' a3 _1 o mov dl,bh3 }6 @5 \2 p) K
mov ah,2/ P3 }' P$ F3 W$ ?1 k; y
int 21h1 D" M7 z/ b: K0 Q) e; t2 e9 r
mov dl,3ah" v; x# @& U( ]7 r( b. A
mov ah,2 q4 j( t6 y- M8 g( Y
int 21h
- S% @( K. A; O pop bx % h% h- {2 K5 B
mov cx,20 ?8 W4 z% j. K+ ^2 M
push bx) Q; B% {3 [% y/ i; E/ ?$ d3 a
put2:
+ y" o I4 s0 c0 N% A mov dl,table[bx]
: S0 G5 ?5 z4 `8 u2 R mov ah,2h
4 t K, t+ r# S int 21h# A' r/ A' Z9 I( `' _7 u
s) Q8 a" l" c8 `7 c
inc bx5 h% d3 ?. l- C1 Q
loop put2
; o9 q/ [' X5 P- v inc di " N( C& k) ]1 z8 u
pop bx
4 ?/ R$ ~+ J+ j+ r& R* h add bx,21$ k- v3 }% F+ `7 @& C n4 p; [% q+ Q
pop cx
j! a# z$ l6 \& w5 x& ]
9 \- X2 k; V) r2 L" w+ x7 ~ loop put1% p9 }4 E% l) [; V: T( s
ret. E% y( C6 }+ H7 q- U! E0 d: D1 o6 t
) f3 R6 f7 [ e! Jprop1:
8 @, j: c* a( `" {; H mov dx,offset pro12 G( [( V6 s+ [- [0 l7 U' b5 N
mov ah,9h
# c8 Y: P" c0 |& t2 F, ?1 {! Z/ ?+ T, ] int 21h! l; b4 m! |) R# ]* d
enter * C& q( ~0 E: P: ?/ x# Q
ret
1 L" Y$ O" E2 C2 x7 r1 Y
9 s: J5 Z, X" J, lprop2: enter1 n: g( P5 _4 _; W
mov dx,offset pro2
: R ^* X |! J8 P* z" }) e4 [ mov ah,9h
& y9 O' ~& d7 m int 21h2 \) S# o4 o0 G* t$ r+ _
ret- S* y) Y. k$ I3 n9 R/ N: Y
- Z( L8 Y! O) C
code ends+ [$ |. v# P4 f8 N
end start
/ B. ~, d0 o( m* L" [# M/ U4 c) y3 D
E: J" ]' Q9 {0 @( I1 T |
|