|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
6 k# b7 j+ x4 senter macro
0 u7 o q) H$ V3 E! T5 R( K+ g8 C push dx/ m2 ?6 L# J6 `5 n
push ax
* Z5 C5 |: }& q mov dl,0ah# x% E+ d" x# r% R! i, d+ ?. J7 k2 C
mov ah,2
: y/ P. N! r9 {) ^ int 21h
! z: `$ W+ i O/ @ mov dl,0dh2 X: C# e' C3 b7 H B W* e7 E
mov ah,2" M& F: M+ k8 a
int 21h3 a( \+ }# j- H+ N6 k+ n% f- R! i
pop ax
8 P M- {, m. }# q; u/ k pop dx 6 [; E- i$ ~2 ~% Z
endm
9 w3 U; L5 S. R& z! k4 J- g0 o3 K4 a& T9 O
assume cs:code,ds:data8 M9 @1 v) C: w7 R" _
data segment, G4 R1 d: ~' I
table db 300 dup(0)
8 X& P+ h- Y; n& U# ?pro1 db 13,10,'_________________________________________________',13,104 F! _- g2 c8 B9 ^! r6 a5 x" k/ R
db 'no more than 20 characters English name.',13,106 _. d. _6 Q- `" s
db 'For example:',0ah,0dh,'liang xin hui',13,101 i& [4 B4 m5 j* y1 |3 g2 Z- z
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
9 j: B; \1 N! m7 _# l9 }4 } db '.................................................',13,10
) }1 R; w" x& z db 'Please input:',13,10,'$'0 |- q3 o8 j7 W/ Z' h
pro2 db '.................................................',13,10
: A. U& `8 M/ t l db 'The results are as follows:','$'
5 m* {, ~% H. x L: _4 [3 f9 B# s# N$ E& d
cont db '________________________________________________',13,10
7 N5 n3 A6 r) b% f+ B) ]2 J6 Z db 'Can You Continue(Y/N):','$'
" N4 s! c4 i N. g/ z5 t! r0 `! C8 [% q1 f* _& P
cp dd 50 dup(0)
) D4 g: |6 x# r G: @& @. o0 d/ xdata ends
% ^6 L2 |; V9 Y8 s
% m& ~/ `: T, `' S7 u9 ccode segment2 A9 z- b+ N0 s% v4 P5 c2 J
start : mov ax,data5 K$ L; z9 J1 F; l& ?- g, u& r
mov ds,ax
! w1 o% b4 U1 k! e4 i g1 d call prop18 R+ r! z! H# B. e3 a
mov bx,offset table
+ @& S5 Q( p4 L k. y mov si,0
9 v2 C' v6 L$ M9 k ^ mov di,0
0 c R; r" g' \6 l! ? # U ?0 y. i/ }9 w, ?1 z
" N, P# c8 ?# {
call enterchar
5 R1 O; ~( B% yperp:
2 i' P* P/ }* g& h7 j dec si* \8 s: r5 T4 ~
mov dx,si5 `- T# K% l. p3 i5 C, g, u
inc si
, B8 @: v+ ^! ~% o8 m6 Z mov cx,si
( M( Z! S, V6 E$ Q* C; g/ e0 M7 p call arrange
, h! I( C5 l: D( q& b' l; @ call prop2
- E7 g6 b/ p e( D W" } call putchar v# O& |. O1 P. x }
liang:+ F7 ~- ?0 O; p
call Continue
G' z) \) Q) ?% |0 m call judge* n0 g' O: c% g6 a# ?% B0 j& i$ U: \
mov ax,4c00h
' v6 X5 M2 P* d int 21h
) Z7 \3 X$ Y s6 |7 n4 J, j
/ p. Z. M6 l* e# [% C3 Y
$ w% { t( v" f* }3 kContinue: enter7 j, v& c' u+ |7 |' j
mov dx,offset cont" |5 h$ v# Z' W1 l0 [. [& R P
mov ah,9h
. ~8 l0 V2 z3 [ int 21h" j8 L- e( L8 I$ D( J7 |
ret
' S: h& o/ t0 j4 f* x: I5 `" o4 n" `5 h
judge: mov ah,1: @7 I- L0 x' l+ O
int 21h
8 D9 E3 @7 G+ F k or al,100000b! m. N% @1 V/ o! o1 a! V4 ?
cmp al,79h0 n. n& @. V" [- S
je clear5 w9 S) d: F) a
cmp al,6eh
$ ~; p! C7 _# X+ [2 K7 k je endj
' i" J$ X2 D% j V0 [ jmp liang! `* t% V1 [0 j" X
endj: ret
) @! S9 }: ^) d4 `; f5 u* u
0 e* Z# ]( I B* I2 C; r! jclear: mov bx,offset table
. ?* r9 O2 w' L7 C mov cx,300( f W3 }( |5 A# I$ q3 m
zero: mov byte ptr [bx],0
. j9 n! ? B$ q! B; ^ inc bx
, s3 E7 U9 O5 ^0 U loop zero3 ~2 Z4 s n! Z! n
jmp start
1 ~! j" L. J3 o1 ]7 K
4 P, \/ B$ Y3 R* F$ U3 K8 U' @7 {; y# D, B
enterchar: mov ah,1" L- R$ ^, c. M( s4 e* ? c
int 21h
6 B6 v& k; Q5 N! @; E% c' T( \ mov byte ptr [bx],al - a- W+ k! K" Y7 h* ?* d# W0 V' Z7 {2 u
cmp al,13
9 R5 m% H9 @7 e% J; ?4 `: \6 F je endchar
4 A9 [& f# m; M4 R1 | mov di,1
& _6 _! K5 M% c1 i! y3 z inc bx6 ?, L# `4 o, `2 A% I2 m! \
jmp enterchar+ E3 g0 `+ F1 c( ] ]
/ |" f$ E- B; B
endchar: enter 5 H& u: O8 B( |! Y
mov byte ptr [bx],' '
. u0 Q. Y2 n0 ?3 S4 w cmp di,0
+ e' U$ c4 n7 D# E1 w9 c je perp
W! J7 R+ M$ W; D) r inc si" y& ]: x! H W
mov ax,si
7 b V" i& R1 l! |) K; ^% ` mov dx,214 l* o, v, v" F+ b# U
mul dx; a5 h' k6 {0 q$ Z4 g5 u
mov di,0
. L4 z& Y1 r/ J# M/ z' D mov bx,ax ( Z* U4 B3 b! p7 A3 g; H
jmp enterchar/ g( K5 B+ q/ `" u' ^
9 y2 u0 G- e/ C7 e( P- v5 V: z
arrange: push si
+ {' m9 K# n3 x5 @* n' e4 f push cx
/ `* C" \6 o/ r+ `, _4 S mov cx,dx ' b9 c# O+ _" \4 t
mov si,0, @' p3 I* q2 a3 G% x
mov di,21) ^" z4 ?* a" n: p
4 w+ @2 u/ S# {7 B
s1: push cx' ^6 o: c3 d4 K* E. Y( z
mov bx,0
/ G3 a3 j% \# U* s9 K7 j* d/ ` mov cx,20; h" Q9 K3 f9 x; o
ss1: mov al,table[si+bx]
% y7 D* j1 K+ a0 \. B6 h cmp al, table[di+bx]( `2 J0 ?; M" f) O
ja jiao5 Y( u; k8 }( @$ P3 M) k4 O6 x" K) W7 l
jb s2+ e8 N- x( D3 u8 ~- ]
inc bx
, X0 F, w6 T) `3 [- K1 E/ q2 H loop ss1" L5 `1 w+ X. h/ h/ X
jmp s2- s# v8 f4 Q. l0 y8 i
3 k, \$ X* U! z! Y
jiao: mov bx,0
) {0 z# e- b j3 q: c$ f) U7 ?8 F mov cx,20
0 v: c. Y7 ]/ o% K6 Ejiao1: mov al,table[si+bx]8 w4 t6 Q& U# k; t. M
xchg al,table[di+bx]9 I" g3 N2 T( U; x' N' }
mov table[si+bx],al
; c8 N* h6 P; P( P4 s" r3 k inc bx$ Q) j! d& e7 n! ]
loop jiao1
7 c, ^0 l3 E# V4 r
) R( C# v- P1 j0 F/ K% S! }0 ys2: add si,21
9 \/ C6 B4 V3 C! c$ ~0 K1 z9 M7 b add di,21
+ d" u' c0 e5 \' v pop cx% d4 q. a) A! t$ \
loop s1
; B% ^" x V/ _& Y- {$ a
) M% v J) h3 v$ s6 R' |1 _7 ? pop cx
, P. ^" Y8 f, [6 s pop si. U/ B$ W! s5 w0 z
loop arrange
) A! e# w3 G( p$ A) B1 x" u ret
) @) d8 q# i; i" L$ m' J. Q% A: [) F' A0 Y, n; h+ l
putchar: mov bx,0
* }' I2 y; u! ?% Z2 l h3 ^ mov di,1
8 `" [0 S0 I; m( o* R 3 M1 T/ Z* H% ]7 I7 k) O5 G
& Y1 \% V3 I+ b) A$ K$ s p* H4 F
mov cx,si
! t$ o3 L. N3 w+ \8 j% rput1: push cx
- F, B6 p1 m' h7 O+ Y3 \( Y push bx
$ b9 h3 u1 i: @3 p, r- }0 d" F
# E% P2 T& p2 H5 o2 E enter; t) R/ k# i9 M+ U9 M
, X2 \" s' K" e! ~# p, ]
mov bl,10
# O. s* ?9 A; w2 B) u- r$ v' f8 ] mov ax,di
) ]: K1 e* R3 J3 `" e div bl6 I# S" B y/ c* W9 D/ S! n
mov bh,ah
" y4 `: l& R* |" q t a4 | add bh,30h
+ x% ?* `/ q7 _; T Q add al,30h
% W+ K" Q3 Y( O+ ?$ Q ; Z) r% Z3 }* k2 u' Y" Z( f& W
mov dl,al3 ]: n8 ~6 {! S% w: [
mov ah,2
+ [8 K! @. Z" X6 ` int 21h# o/ S+ S( F3 s9 N
mov dl,bh% z7 \$ e' ?4 ~( J/ g: {
mov ah,2$ ]2 m2 B& j7 U2 q3 A3 m6 W
int 21h
( j# Q$ ^9 |! c% W- R mov dl,3ah
- C9 N8 u- {, o0 T( K1 ?9 t mov ah,2" m5 J5 u8 Q! \
int 21h
# A4 k0 \8 f# `' |+ ^+ X1 q2 W/ e pop bx % _0 P6 o& f# P9 |/ h/ f7 t! U
mov cx,208 _4 l) L: F& I6 G7 y6 j
push bx; m, |* L) K3 p: A8 f* V
put2:
0 s2 }9 E) h, e7 } {. ` mov dl,table[bx]) ?# F# C4 v# X$ o- K- ]$ d& T3 B
mov ah,2h
; D7 L8 t7 \6 @ U5 x+ W int 21h: a) v) J8 c) t
4 A8 a* |# x1 q4 W inc bx
. p+ v' z: b' q/ a+ I- u; A* |, g loop put2$ w# x5 [5 O" s5 I
inc di * _/ E+ a; h0 C! W" F9 }* ^
pop bx
4 `* Q& T g; S- D" `1 S4 l add bx,21
( w; \+ V$ [+ p2 O9 { W pop cx
$ E8 g y' ~- H/ Y) @ 5 z; H6 z" J9 P+ ]$ Z! x
loop put17 \. }1 N; \3 g" f7 f) A
ret
9 k M: E1 n: b3 I. v. S
" e j4 u; L. b, x% iprop1:
' Y7 ~7 |* d; f* u2 c mov dx,offset pro12 _8 m) V% u6 d$ Q* R! q7 [
mov ah,9h0 _, `, t; D* t7 Q U4 t. B6 G
int 21h; q" S7 }9 [8 n# {% w" k+ X
enter / v- q$ t# i6 Q. D6 {9 h0 S3 B f
ret
3 x2 m- w; k' y5 \1 E1 B. a$ Z' I4 s" k1 i8 b1 {6 R
prop2: enter
; |0 F+ ?; |$ ?; j% \: j, @ mov dx,offset pro2
4 B( E9 r" V# ~ mov ah,9h( S4 {: P; r; M& E5 q0 _, U
int 21h
1 P7 {0 Y% e* p0 A0 @1 A ret# [: p9 s" H4 c; S
" u6 x& {& q# H$ a7 B2 V6 _5 icode ends! K9 N, r7 Z$ D# F4 D5 ]
end start
) K9 Q2 z. H# L9 C. l. c( c. z3 p* X6 T K0 [" U- ?/ L1 @
9 V; N8 z1 X4 a0 M* P* C2 R |
|