|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
' u# }( _+ D* P' b0 tenter macro2 r) W, Z3 [) F; D F4 M1 E2 c2 D
push dx
5 C& I# _9 c8 u push ax# h/ C- J6 W2 [6 r! i
mov dl,0ah
9 x. ]6 y1 X( ?" ]3 i: k" u: @4 F7 U2 t; J7 Q mov ah,2
) g f5 M4 ?4 ]4 Z5 ?9 [ int 21h9 B! D) `. F' V( ?
mov dl,0dh& L5 F% ^/ x6 l" H
mov ah,2
. j2 h. O; O* k int 21h
$ W% ^, T* @# f2 o pop ax
! @7 t7 `: H( n* q2 e- @% T pop dx 1 [ R2 w, t }$ {
endm
/ b" |$ i; W% s' k
7 @9 O. R1 L! z; b: }/ yassume cs:code,ds:data
" u9 c) s: o9 L- Vdata segment# H0 \+ j( z7 F/ q4 J, R( n
table db 300 dup(0)% {* S B7 b' T
pro1 db 13,10,'_________________________________________________',13,106 E* t1 @6 Q7 e% S5 ?' ^" }9 {
db 'no more than 20 characters English name.',13,10* j# i1 |4 y( b- O" }$ T# w! w |! Y
db 'For example:',0ah,0dh,'liang xin hui',13,104 n2 T3 t- _, [, J9 ]8 o U% E/ A
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
& }9 j' q3 p$ b7 ~6 ~" E db '.................................................',13,10 n* e6 F% I, _& [
db 'Please input:',13,10,'$'
9 `& y5 D) @1 X) H+ {pro2 db '.................................................',13,10
4 [) Y9 D6 V" i db 'The results are as follows:','$'
& M6 H; _5 ^7 k
9 E' C& o6 v' ~' t- I; N g) ucont db '________________________________________________',13,10: Q8 }9 l; `8 G" i) A- o
db 'Can You Continue(Y/N):','$'
' A7 v: s l# c# u
) u2 y' W f3 O* |5 o4 ?5 @9 e! Kcp dd 50 dup(0)) O& I3 G; u3 T5 }
data ends }; R: v% p6 [
2 O9 V) y n) X3 k a
code segment
) z1 [% J9 E# E. |. Astart : mov ax,data
! \2 \: _. ^6 |! |7 x1 E& v: I mov ds,ax
6 M2 I( q4 c" H- R! o' i4 @+ S call prop1
, n% ]! j6 X+ l mov bx,offset table8 m' X; y& O7 j/ c! A
mov si,0! Y$ I) ~7 Y/ T8 u5 g
mov di,0
1 m/ ?: f# \( J1 ?8 k( z, [ : P o- L" \; J; D* u' z8 R2 H
' k7 ~( V8 v2 V/ o ?; Q$ `: A
call enterchar
' o$ Y3 q! h5 o6 l; Mperp:
" h8 V4 O; U% b6 ?' }0 Y dec si
: ]/ R4 U2 \' y' o1 ~0 B# t7 F' d. V) H mov dx,si
# X1 p4 o" [ q k9 E inc si ; N+ r7 j% j9 n, d3 d# v
mov cx,si
9 j4 y1 T b- p( D call arrange- q/ s5 s8 h. `2 s+ b: H* f# { Z# u
call prop2$ c" `* M$ `5 L0 F% S
call putchar
; }( L# h G; ?0 l+ _4 vliang:
: \, ]) k( u6 w6 O call Continue% V5 A* e* q6 Y: }9 O7 G; H
call judge# ~. B% N) A/ J h
mov ax,4c00h
% q" c3 x! w' B1 W1 d int 21h
& y. m' U6 l8 T1 Z! y# C0 p8 J* w, p3 `
5 U+ V9 I- o& h0 Y# ^5 N
Continue: enter& M1 u3 T$ @7 ]; M0 K0 A2 B
mov dx,offset cont
; f: }% Y- F& D. F% k mov ah,9h
/ D5 v9 _/ ]# _# ] int 21h
1 ]$ z3 Z6 L+ _' v! ~ G7 G ret 5 q$ W; }$ s+ \6 Z7 `8 e! H
2 p/ b2 M _ |; f; ijudge: mov ah,1
% r5 i. \9 Y7 b2 i3 b/ x4 n int 21h+ o7 K e1 Z3 z' t! N% Y
or al,100000b0 o. L) z. b$ Z" l
cmp al,79h
0 p, ^: @# a" m v$ }8 I, F) g" | je clear: b$ J7 p3 r& y4 v
cmp al,6eh
7 ]0 k8 T4 e O je endj
7 C8 s5 K+ w- c- B X jmp liang4 p- ?: Z( n I/ q! G" u
endj: ret
1 L( m, o4 P+ d& S% E : ?7 z6 v- t! W3 B9 O) |
clear: mov bx,offset table: f9 Q0 D$ E6 |
mov cx,300' B. m. W. b- d& B
zero: mov byte ptr [bx],0- t$ ]& G C, P7 Z1 L& P' n
inc bx
% a2 j, X. w8 ~' I( d4 G Z loop zero% t: Z$ q' `& C, C; X% X) e9 H
jmp start
4 U* `$ ?# d. ?* g+ h! W: ~; m- M0 |# I& d, Q' a) A o% \
" { r" f- t! Q) [! centerchar: mov ah,1
5 a1 s5 v# h8 I: F4 H. M/ { int 21h
- R# c ~, c; | mov byte ptr [bx],al 5 w. _/ g+ w* ]( c: ]/ w/ l
cmp al,13
$ D8 \2 [) Z3 ?1 S+ E% L8 H; N" p je endchar
0 T; T& x/ }. D) g l0 H mov di,1
* H1 K F7 e: X, o0 ~' x, ] inc bx6 z! i& j7 ]$ D/ A3 Z x
jmp enterchar
4 [3 A; [% c% P, z' |. p
* o# W M9 Y6 E7 gendchar: enter
% g8 P* \& D) v mov byte ptr [bx],' '& B6 X. i8 b3 V* U* V
cmp di,0
, j/ N) q* a4 L6 w3 }! I7 N je perp
- ^% s4 h! k# h( H& F8 g inc si' u' } N8 N2 p- B# P# V! A" H' n- R% U
mov ax,si( A# X1 l# C7 X3 a5 {
mov dx,21
& m4 ] ]- x0 z/ f {& K% j( H% Z mul dx
+ h' g, P5 m- D; I! m2 [7 C mov di,09 ~9 k% `0 e9 w4 n1 Z! T
mov bx,ax 1 |, }1 f' b( a, q1 { p% N
jmp enterchar
# W/ |5 ~+ D5 O" e6 F7 i# o8 b& e* o+ g! x* O' p
arrange: push si9 B8 O* e* r5 h
push cx
" `4 d' i5 N& c mov cx,dx j% a3 z/ L7 d L* V5 g
mov si,0- u2 ^2 G; o9 q5 p$ [, X4 ^
mov di,21
! F" q6 k, A5 @4 k3 g: j' c7 ?2 H s' Y$ `. o
s1: push cx
9 i9 ~4 B. g; K" |6 M mov bx,0
, @# z2 g, m. A) N! B4 { mov cx,20/ B/ u* s+ U) y. ^* j9 p, u- ~8 P
ss1: mov al,table[si+bx]4 y# N# x* X& k
cmp al, table[di+bx]. O# j; F" x; Q
ja jiao
3 d# N3 G+ Z8 `( x7 W jb s24 y9 ?' ?; O' J5 T
inc bx: {5 _& D- m) i3 \7 I8 Z( Q( o
loop ss1
3 h2 ?1 Y- c1 J jmp s2
* \$ }/ E* C. ~( q$ f3 C+ w: g/ o1 ]# L% f( G1 s$ o9 D- N
jiao: mov bx,0
) E; o& H. T& M1 a3 p mov cx,20$ J, F/ v9 j( I: w- u
jiao1: mov al,table[si+bx]
% _4 a' g" K: `+ R5 Q: ~5 X xchg al,table[di+bx]
, C }1 l! ^7 Z- j mov table[si+bx],al& c9 ^ u7 U: H% u2 ]
inc bx% w) Z+ i2 P/ m+ d
loop jiao1$ I8 `' @5 y- \! [9 i
4 q9 }4 n2 C2 O1 b+ D, w0 ?( C3 Ds2: add si,218 `6 H7 E+ ?! B$ P
add di,21# K+ a3 ]4 r7 T. H$ t, w: |
pop cx0 m& b% A, T$ b
loop s1. Z+ O& W1 F7 S- \2 f9 x2 W
# W0 h0 o9 l, C; j) a7 l pop cx
5 U/ j' [! p3 p# N; F# D. O. A$ O pop si
3 j2 X' j& X) J8 H loop arrange
) l: r; [1 ^1 C9 o. A$ K3 I6 ] ret; t* v8 o& _' V9 A& D2 m# b* j
) U) C; w' E/ u- r. h% {7 M
putchar: mov bx,0' P4 f) \* I$ L7 }0 P; ~4 d6 |
mov di,1: S3 j, q# N8 s" ~3 i1 G7 ` J- U4 `
, {0 _2 Y% ]$ B1 _ }# {: L: E
7 U+ S1 Q$ l. W: e1 t- S mov cx,si! U3 h% L$ G& F0 f8 t2 ]
put1: push cx ?' M4 D* s& A4 f1 e9 T
push bx
8 F$ |' W0 c& e9 p" W0 {
0 U, O" y$ z& ~4 b* U! L3 C5 @ enter5 {* u9 c m' e9 @
% W r- o. E) {* i, B) O) m
mov bl,10
, [, s/ A" ?6 x' s* [- q1 @3 A( B mov ax,di$ J: v. G9 |) j! E8 `' f0 S& r
div bl) u$ n, c% @5 M. F# g) g. V
mov bh,ah! Q! Q0 E. r4 \4 P8 J( j
add bh,30h
1 |, E# ?, _# N k add al,30h
, T: t+ E7 {& b 1 O( d, h7 i3 R* r
mov dl,al
) g# e% Y* ^0 x6 L6 H( m( u, C4 j mov ah,2/ e3 j7 d; E. B( ] d
int 21h* O- \: u/ z( v' v$ X9 i( v r" z
mov dl,bh1 M' k7 ~/ H+ X1 u* W& ~* U; b
mov ah,29 {* j: U( D# N4 ]! g* I% K
int 21h2 U9 m- Z3 p1 B: k5 q: m( z' l
mov dl,3ah
) p/ o2 [( l& f& `$ U6 y, o mov ah,2
5 N# k$ o5 m1 M' r int 21h6 N- G4 B7 j; p- W K7 Z
pop bx o% D9 Q7 i; `$ M8 q" R: f
mov cx,20$ l4 N$ P( ?# h& t
push bx
9 ^2 a6 ~! _1 l l; o" g/ c1 Oput2:
- X0 O. D i3 E- Y. e6 [$ j mov dl,table[bx]6 L3 O& q* H+ f) {, z
mov ah,2h3 U2 b O6 L6 J: y
int 21h5 Y$ ~: S8 i( E
, Y3 |; v) n% V0 U% b% S* U+ ]7 S
inc bx
6 s3 h0 {6 T& F$ x2 n loop put2: Y2 o( R" k, Q! V/ s5 e5 ?
inc di $ o$ n& V) }' \2 j
pop bx
! a C1 g }4 W! X/ R, y% M add bx,21- U7 f* K8 J+ v& g3 w/ W# L
pop cx8 T/ a6 }5 r% m+ u) p
1 `! N* `1 E" o, ^. K. C, }5 G3 S9 R loop put1
9 X6 f: j% t! @2 M ret
8 @# E. m8 q7 c
$ t4 P8 j9 N, n, @prop1: " `; w/ p' M, P1 A- A/ t( L, C; v! t
mov dx,offset pro1
4 i9 j' s% H4 ?6 X. e( J6 F) D mov ah,9h: m8 h& R: l8 g
int 21h
; X1 [1 t; d7 Y/ |9 P enter - D3 t0 [3 g1 d$ ~& z0 J
ret* z2 {3 @4 m* Z8 c
/ j) |/ e' Y- `# ?$ _: \
prop2: enter
. d7 M: G7 Q, S, l mov dx,offset pro26 `- r) `0 X; y$ C1 I
mov ah,9h
4 _; e- X) U5 [ int 21h
U {6 b: g9 Y2 m: ^0 O ret b& \5 x4 G; x- y
: }/ X, i, H$ L( Q* M, I' ^. `$ |
code ends' G+ q" m1 ~1 S: E/ K2 H
end start
1 J1 d' R- f6 ~$ B" D" A# L9 l R4 x' ~ z4 D3 S0 ?
' y% b* h* q# _! X2 C. l- {7 J
|
|