|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
9 `6 @9 e0 O$ Genter macro
: P/ m$ R7 g8 k1 q push dx; w2 }/ y0 {' {4 H+ g
push ax
; `% g Y1 x' ~9 o! r# ?) n( g6 R- C mov dl,0ah
, L' K( p; ^% F- q mov ah,2& t, C$ K R# G9 p) w; ~, e% A0 Q
int 21h
0 u1 n0 e w3 ]- X: n% Q mov dl,0dh: [9 c$ Z5 C( f1 x5 Z: e
mov ah,27 V" N+ h) _, G
int 21h
1 \7 W( c+ p2 d9 O U2 n pop ax8 S( i1 A; G! g0 c5 b# ~
pop dx
, w; H$ ~! ~1 s% g. [/ [; sendm7 E- t/ s( k" _+ ?/ \; M
2 i& u4 I+ b" _/ vassume cs:code,ds:data4 j! A6 ^9 N. w2 M
data segment# w5 B0 r2 W e' j- X' J
table db 300 dup(0)
" }/ ]4 K" i' Epro1 db 13,10,'_________________________________________________',13,10. M, T0 O& O: G$ m4 X
db 'no more than 20 characters English name.',13,10
% H8 I6 v9 ^9 J7 s7 r, a db 'For example:',0ah,0dh,'liang xin hui',13,10% Y. e! Q$ u' [' ^% P3 W" a+ Y
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
. I4 {- y% U. x6 d4 y! S: i db '.................................................',13,10
9 \; m0 y, U% R9 Z/ z. R' E) r) m db 'Please input:',13,10,'$': F3 u) k# O4 Q1 V2 @
pro2 db '.................................................',13,107 ^5 ^! c$ V7 o. l2 w9 g" A
db 'The results are as follows:','$'% h: N# @1 z" L* s
7 J7 k U. N: N" Ncont db '________________________________________________',13,10
9 H o9 C. l' ^4 l db 'Can You Continue(Y/N):','$'; {2 p1 k, u6 O; u z1 K
# w! V- M, h5 {1 Q
cp dd 50 dup(0)
' `, x* S- F3 q1 T8 d$ Q1 {data ends
0 U6 } P: R' j3 o
4 _. `# J \# Xcode segment
' n3 A0 u7 g" Y+ w \start : mov ax,data
1 Z; N" h" H5 S+ S& b mov ds,ax% Q9 Q+ P ^, H& O' {6 v2 F( A
call prop16 p# v0 G+ D, Z: T+ G3 V/ `1 V7 ?
mov bx,offset table; G! z/ b: h: x7 z7 L$ }& X F
mov si,0
; ?1 [( X1 N$ p& P( [' p3 ?8 h mov di,0
0 {0 Y. `2 W- U( `! S6 y # ?# e+ J4 |" Q- b q
, D+ w/ m" T' v( S3 G$ p' [4 Q8 i
call enterchar5 K/ _: v. `- x5 `' t, T) |+ s/ k
perp:
9 E$ A9 Z/ O @& a dec si
( Q% R/ u& Y) K) `: d7 }# l! r" Q mov dx,si S. T1 T S1 r4 z" ~
inc si
; \2 c# D: f2 \! }2 i mov cx,si
9 P$ c; J3 b3 @: g: e- m6 K: m& X call arrange
+ ~- V/ O% t4 o call prop24 T1 [& D& X9 z: j! a0 R4 B0 u
call putchar) m. Y( }5 ~7 I7 }/ J
liang:8 t5 k; _/ o" v9 s
call Continue
2 F& Y; O$ [ k9 S& f call judge% D+ S2 r/ b2 h# m F
mov ax,4c00h! ^ f6 v5 J0 ]" D$ H
int 21h
6 k0 Z1 c! k# R: C" O: q. }; j% U% M& O6 k) I
" y/ K$ L8 \$ B) p! X, r; _- `
Continue: enter
' }+ t! U) S: w) B: o, g [ mov dx,offset cont' p3 n6 @/ W* \/ q
mov ah,9h0 R, ?# I1 K) \* K! K
int 21h2 w2 Z8 ? @2 X( ~/ T5 ^
ret
! Y2 ?' S' V# Y; a
/ @4 e# H1 Z& D9 _judge: mov ah,1( E9 j7 b# A y6 a! s: k4 ^
int 21h f- h8 B$ q# c) ^9 r2 |
or al,100000b2 I+ C: t! P1 {( K) Q
cmp al,79h4 a8 H: [+ m, h [, s
je clear0 r7 p" u+ [, k9 L3 {
cmp al,6eh6 i; b) u: Y& q6 q* S) ?
je endj4 y7 c2 x8 l; N1 H! ]. E- G$ H( E
jmp liang" X @. T3 u8 g0 y3 r J. G! M
endj: ret
# k6 |0 v) w% K! w0 m* u
+ a0 F3 d) o$ a% Q( `1 Mclear: mov bx,offset table9 q. s9 |% W" k! m! Q1 h6 p
mov cx,3002 E# b& f6 X& _5 W. Y. n, j
zero: mov byte ptr [bx],03 U ^8 ~# M9 L% K3 c* M/ e4 ` n% g* y
inc bx
4 h0 K' c( V: y9 c T, N( x: ^ loop zero
: ~& X7 u; a) ` jmp start# j" B4 D9 P* e L
Y7 t. p- u Y
. o! m' }2 \1 t0 z; n" I* n" C
enterchar: mov ah,1
7 ~! y% v' \( h( Z6 n4 [ int 21h
) u: R$ e7 Q; F3 p mov byte ptr [bx],al
9 H8 [4 |: B- J z( i q0 g1 \ cmp al,13
$ Q. U2 i" b; \ je endchar
+ l+ y8 J# Q5 P S mov di,11 t( ~+ N$ O' w$ s& E& g
inc bx$ d3 U" x5 f# n: S' X+ N3 G
jmp enterchar+ q; Y F+ \1 l8 ~3 @6 e9 U
" a' M v U3 D ]/ |endchar: enter
' l) `, Q- e7 ^ mov byte ptr [bx],' ', F7 Q* j2 J# j9 M: ~$ b9 V
cmp di,0
6 J0 p3 u$ }( E je perp, G1 N. u5 G# j+ s$ b/ b
inc si1 w; Y) L0 q/ s8 G- U# F5 }- s# O
mov ax,si- D7 N4 }- U( V( a
mov dx,21* {9 r6 }1 }, T! |& ]$ Z- x
mul dx. g( A4 u( S' T$ o+ h+ z
mov di,09 s; q" r3 ?9 B( o$ y' T; H
mov bx,ax
6 \7 W% l3 H$ V6 B. A jmp enterchar
: G% F' A. e6 ?2 ^
R/ r5 g6 C3 P' r. f8 Xarrange: push si
+ A) F/ n5 ~# J8 v% q4 O push cx
/ T Q x; E( x mov cx,dx - O+ n5 m6 J* L( w3 h
mov si,0
5 s9 n2 K$ ~6 R mov di,214 T: z9 G0 \" c7 C4 S9 [
# |$ I0 o. O! S/ h6 es1: push cx& j# N9 S: C6 y* r, k
mov bx,0' j* {2 d# y! C3 F9 q
mov cx,20
1 U/ E( \9 c/ \9 Y% Zss1: mov al,table[si+bx]
* F0 M" ^- g; |9 o6 H% V; f& ^ cmp al, table[di+bx]
3 y/ ?4 A0 Z- J' G7 N3 A ja jiao v, v7 U. m# k0 A, n+ T
jb s2! U3 a% b! l& K* R
inc bx
% u; J, I% U' [- S9 ~) m% ]# m- {3 y loop ss1( b) L: f9 l: r0 f; B
jmp s2/ Y" B# ~ m) g. \/ X
, j- E0 h2 J$ ojiao: mov bx,0
1 |4 H# O3 U' H3 [; G' e mov cx,20/ O: L9 M; a% q) Q% B% c
jiao1: mov al,table[si+bx]
( K. w! E1 ~3 N1 u xchg al,table[di+bx]& L' A4 \: v8 Y5 S6 k
mov table[si+bx],al
& c/ j7 o% B4 n8 E& w) n inc bx8 @, \1 i5 }: G9 j: s, ?
loop jiao1
" {: p/ i9 P* C* c8 o6 b( v
8 g8 T/ Z7 V6 z' Ds2: add si,21. {) i% n! i6 n! k0 K0 r
add di,21
& r }0 e/ G: F8 g9 z pop cx
% Y0 V D2 P$ p9 m3 ~# k% u loop s1
0 w/ t5 ]& ^5 W; r6 ^+ U3 M: C' q* o- A% }' C
pop cx
% N9 D$ v$ s! C2 w" V pop si
+ ^/ P6 I5 A5 X0 ~ loop arrange0 Q- ~! `% k3 G2 W6 y
ret
+ r1 {/ g( l V! T. p) J1 i) n! e0 r3 q) v6 A6 p
putchar: mov bx,0% N9 @5 R5 a+ u' O* A' E
mov di,1
E0 K( _3 h9 f3 z& t' C+ [ ) f4 }7 M: s$ Y) k6 U
* F' I0 x! Q' T( E% t
mov cx,si# S" ^2 }1 J1 ]* O& K- Z
put1: push cx
; a) c3 W5 x$ ~ push bx( S' s4 M& W" K7 Q. g4 b/ H" P$ I
, C u0 W! z I- G3 a' G0 t
enter
: s& N( \ r5 @ 4 j: O* X' b+ m2 a3 z
mov bl,10
) p' e! f% N E: ]3 V1 g mov ax,di
( H: Z0 ]' `* E, z5 ?: M0 y2 b! H div bl a) R; Z" H8 o8 K$ j0 c, R, y
mov bh,ah; _) r& Z+ ]3 D+ S* M" A1 j: x4 z* Z
add bh,30h
3 L, [; y/ R9 x; y7 o( o add al,30h
$ @# i ?. C) Y7 P9 e! r) s 3 ?, p* f7 g: h
mov dl,al% i- |( @2 s8 ?( |+ f0 C1 F6 M9 n; w
mov ah,2# o1 |( x+ h) K% N- y
int 21h
6 Z; T( ]; m' ~0 c( z" m mov dl,bh
) m; \) m9 @$ v' B7 H+ D5 E7 n mov ah,2
& J0 P1 o/ {" r3 d* l6 t( S int 21h
1 V2 B+ y& |6 y9 \# \+ D mov dl,3ah6 J# g% x# c( @
mov ah,28 b% y/ R# t9 T# L. ?/ b: F
int 21h+ o! c( O4 m/ d
pop bx
/ }8 T0 c" B+ J2 q4 k2 T8 { mov cx,20
4 B6 q+ t* c! U2 {/ \ push bx( X9 w, _9 T" {1 ^3 B* x/ C
put2:
, F1 W2 Z" G9 Y- Y; ?1 Q) d2 ^ mov dl,table[bx]
# _9 y/ V. N! e/ |, ~ mov ah,2h# t0 `& E6 ]1 J4 o5 J" t
int 21h
( c5 N- y8 R$ ^; |5 S " l/ l8 {/ o! q& v
inc bx
) t, G! X! l; X0 I5 r loop put2
/ {( @8 V( E+ M: ]0 q/ ~ inc di
; F: o6 V0 u1 `2 n1 x1 B pop bx
7 b' H$ g. F- m1 C) l, z4 Y2 c/ b add bx,21
$ ^# W2 B* e2 K; {& \. n pop cx
" p; K& W' X2 P9 w4 c " p7 F; H1 a5 Z3 ~8 \
loop put17 A/ r4 i: M2 b3 C; B
ret
8 t; c1 { V7 _
/ V. s0 Y7 t, _) q* H8 cprop1: : o: k G8 |+ |, d* ~. e9 ^# W
mov dx,offset pro1 p! N" V9 D6 Z+ E0 p) D
mov ah,9h
7 C8 W. w+ q. R% E/ B int 21h
! k, X7 {, [9 r% i/ M enter ! s) c% ]0 D( @( o, ~1 Y
ret/ ]# R F3 V" Q
1 p" t Q" h, e7 p& m- iprop2: enter
/ E( g8 k2 {9 q7 J) b: [ mov dx,offset pro2
+ Q2 H' T; x; w& M( u mov ah,9h
6 }# m8 x1 y& G: L% J int 21h; B8 l' m/ \) s
ret! m0 J0 ~# ?7 |, H) ~9 D
6 Z3 h% {5 j% H# x! ~7 Z" B7 S- acode ends
4 f; l+ n) `) Jend start
( m& n# c4 P! {9 f1 _% F. x# Q8 y5 ?3 L$ x: i
2 M4 X1 c& o( C+ [8 C! u/ o
|
|