|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
) }: q3 ^- ]& l7 w8 y/ _! {- @, R& Y2 ]enter macro
2 m$ L! X% V" a6 p- V) |' P$ ` push dx2 k V4 [' x, c7 |1 c) s+ ^" x
push ax3 U1 d2 j4 I( l3 f- S
mov dl,0ah0 l* @3 {9 M5 H/ l0 T+ t
mov ah,25 e; I) J" O$ |8 t' K
int 21h
6 O p9 \4 |; N& L mov dl,0dh. @8 M- o* }6 e! V. }
mov ah,2
" |6 k& I$ E6 Z7 g8 \8 `* [: x( L( q: c int 21h
, b" P+ p6 @/ g+ S4 a' G pop ax
6 q! p5 u3 Z' l6 {& l pop dx + k# e5 P2 p& L& {' c' D/ j
endm
$ q5 j/ h( s/ i7 y, Q$ B3 k8 ^! J4 P
* y w% z; j/ i5 R/ e/ lassume cs:code,ds:data3 H5 y8 L3 m2 \+ {/ n+ ^# a# ?
data segment$ l, v" p: ]! z
table db 300 dup(0) r. b& [3 Z% O U/ i+ q( m5 L
pro1 db 13,10,'_________________________________________________',13,10+ g7 k& u! j$ ?3 D# }
db 'no more than 20 characters English name.',13,10
( B4 M! v; S+ @7 y db 'For example:',0ah,0dh,'liang xin hui',13,10; g e2 f5 v8 [7 C' t- W4 Z* i
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
2 D: J8 I7 r* B# P" k% f8 | db '.................................................',13,10
. t3 V) `/ K3 S& T* @ db 'Please input:',13,10,'$'1 P' j, A' f, B8 L+ N
pro2 db '.................................................',13,10
& u0 S# X! q3 Y! b db 'The results are as follows:','$'$ C$ @* \* f- K) }0 L. o
6 a+ m. d& b( @3 _( A) I% {* ~
cont db '________________________________________________',13,10
7 |, Z4 e: W% m) n1 P' U/ E! S2 I db 'Can You Continue(Y/N):','$'
5 A' T0 A# J" T* @) E- Y2 ]
8 L1 C/ P( {/ N( Y4 L2 W/ jcp dd 50 dup(0)2 q2 V- H% Q- z& u6 D; _6 u
data ends* B9 z+ Z2 X* |1 R- D& e
/ D( y4 d' ~) k3 Y. K
code segment
6 e" L6 o1 c% Z3 |; n2 wstart : mov ax,data
* E; \( v: Z9 x* L" e- R6 R. c( w mov ds,ax
% r. B4 A8 M# `% A: v8 \" G call prop18 c% m! G% j* o- k( t4 Q/ Q+ ~
mov bx,offset table: `% ~0 R, N! D8 z7 ~
mov si,0' Z( `/ E& K1 A( D1 [9 Y
mov di,0' S* ~9 N. W t
, E7 |) w4 H; K C
) F" b- z3 F3 F( B5 o, c1 c+ F call enterchar+ W- _4 G7 R p. I4 {2 M) z o
perp: # U. b) w8 Q- a3 S
dec si
7 C; r1 }4 u* w; V; E mov dx,si4 g7 `. }2 @: s: ^( X5 B: h
inc si 1 u5 `4 R& h9 S9 {6 @4 X" S; Q
mov cx,si: r. i0 t0 Y# z
call arrange
& f& E) w0 @$ X% b8 A* b% f call prop2
& m D/ T, Z3 ^' I+ Y call putchar. q) X! w# j5 F' Y& S
liang:: Z- v& e+ X- D( C9 n9 J
call Continue9 a* k8 L7 `4 g: v
call judge
0 S( X5 [0 ~9 i j mov ax,4c00h
/ t! i! q) V4 q' p% F* `, R( @+ P int 21h5 L/ h/ ?) K4 \+ E) j: T1 @
' W" P" l3 m8 o+ l4 T% P2 X
1 J& i; `8 t5 |7 h Y) z0 q
Continue: enter
# p! M# q. I7 O mov dx,offset cont
, s! v; r( _8 {1 Q mov ah,9h
& [8 ?" a3 ]1 t( p int 21h, [( L- y+ o1 o
ret
- L$ w% Z( X! Q& t; g4 f1 ?/ l% S4 X# e: x9 v, k2 T
judge: mov ah,1! a! E* a I. t' F% S# m( L7 ~
int 21h
4 p! S1 e$ H/ F- T* b( j9 _! f or al,100000b" Y( F/ F6 W) v+ _; K2 Z* _
cmp al,79h O' T/ Q! G2 }& v+ V
je clear r- n( k% I" J. {# F% S% x, {
cmp al,6eh$ u+ y. M; W$ z' ^
je endj
2 Y2 D* X/ x4 ~* a6 ] jmp liang
7 q7 X5 o5 I) n: ]endj: ret ' b( Q* l4 c2 f
' P# u& U: g( d6 U. Mclear: mov bx,offset table( G& o- D- E G# L+ K) U
mov cx,300
1 ?# N: T0 B: D6 K4 qzero: mov byte ptr [bx],0
( }( E1 ^! `& u' |$ R$ m1 X, G inc bx- \' p; P- w2 J- O5 O' L" o1 f2 {2 Q
loop zero0 `& b4 X! D. z8 P0 N( Y9 Y
jmp start
3 r) q# [+ s9 z( r
& K" }0 ~# F2 S# L: |" Q
* N0 k- Z' E: b7 @/ |enterchar: mov ah,19 `. l/ d8 l u. a2 n! B& w% P+ ^
int 21h# v: @5 C# d# y( a( N1 v5 _
mov byte ptr [bx],al
9 ~3 I- w- ~/ z' B cmp al,13
0 \ k# s' Z3 C8 r' ^ je endchar
2 H3 W$ k5 c1 T mov di,1
6 I/ r% s+ [) x$ s$ g inc bx
- _- }; \ _! u/ y: D: C jmp enterchar, {+ @) ]' v1 M1 h2 i; p6 }
9 B& O" [, {- `+ M
endchar: enter / Y" Q2 Q# ?5 H( D( X
mov byte ptr [bx],' '
# J. c8 H5 {. O; f( I2 H cmp di,0
) `4 N+ u9 w+ D/ H je perp& `2 W1 X5 u4 X1 W
inc si: t3 Y* ~$ ^" y- _
mov ax,si; S9 q' [. c1 U' T
mov dx,21
0 L: P" S. g9 b4 U7 ?: q" } mul dx
5 Y& d3 R- j' Z9 \: M( l. f! ^ mov di,0/ \/ k9 u7 n; u I
mov bx,ax & q. V: Y/ D2 ^6 Q8 O+ \
jmp enterchar
3 J) r7 {, D1 A N7 U; h: T9 D5 Z
/ G7 N' Y2 }& Y' C: ?$ x0 z) Farrange: push si
/ H, ?/ K, }5 d# C push cx
% }7 M4 x2 z3 j mov cx,dx 1 D8 f: p m1 H- p
mov si,0) s/ o2 E# w/ |) M1 b
mov di,21) U) z- J) H% u& K% k4 f
) g i$ X3 g. b x. D$ ?s1: push cx
; @% j* z/ w. e" O; E mov bx,0
8 @0 [/ ~# Q5 |: { mov cx,206 `, l& Z4 J/ b! U( }& ]0 i
ss1: mov al,table[si+bx]
3 e+ ~$ {$ u$ K o cmp al, table[di+bx]
" K# |' S- X) F' L5 t; Q/ _; B2 D ja jiao' J; F; o: n* l* b: s
jb s2
- r, Z$ L- \' d/ H$ B( s inc bx
2 A& z2 r, M& d1 g3 M$ d loop ss1. K2 p' V4 D# L I; W) d; e# D
jmp s2
) s" H# G1 r8 V+ B. C# p
# W/ g' h! S+ W1 | ejiao: mov bx,0
' _6 i% ~2 K0 g+ ~6 O, ]( } mov cx,20, C; @! h4 b5 z$ L. K& i
jiao1: mov al,table[si+bx]
* R! V+ a; I9 R r xchg al,table[di+bx]+ T0 ^8 z8 M% A
mov table[si+bx],al
3 c" z( {1 Q& I# L/ X+ ]9 L inc bx$ B3 V* C# @3 P. W, B k& S: \
loop jiao18 S2 K$ i2 P2 _& G2 R
" @1 C) x8 ] G% O+ J3 fs2: add si,216 T( Y" ~0 X y1 n9 X; ^
add di,21
. v/ C. E( \* | pop cx
& C8 |' |# U) p& |" a$ [+ F loop s1: K+ e: P; }/ m9 P5 p& |5 v4 }! m% Z* c
) r; S4 q! `4 s pop cx
3 j) l9 \) H6 [ F5 `2 ~ pop si% Q( A; M4 e: M
loop arrange
* O" K. ` | l, E- a ret5 O% O" P2 l$ [: c! b
# Y+ A Z# O- V& o. y/ h
putchar: mov bx,0
2 b+ C2 T: k! [4 ?" Z8 m9 x mov di,1
- m) ?' B9 @7 t3 S7 B0 k$ v0 Q, P
0 x9 z5 A! }( T, E) l+ @ . d# T1 f# Y! r0 [( Z, s
mov cx,si1 z, s' V* e; Y0 w, \3 _
put1: push cx7 R. F2 f5 t9 v% V' | q
push bx
4 p/ s5 i' l' v' C2 s% d* u
' m; J/ S/ J* O# K, l, S enter4 j) W. |9 T3 C- B' z3 }( F
p) t2 v* y8 q5 B0 @. X
mov bl,10* r( g( G. }) m/ O0 A1 Q
mov ax,di
. b: Z9 g2 n0 y3 i div bl
4 I! A7 ^* m Y6 E; | mov bh,ah
0 D% u% W; j9 j" L+ m( s add bh,30h
5 x; E0 P, u, T8 O6 T+ @ add al,30h9 k. c/ B9 U- _' N, p- I* } T! M7 j
4 h6 q* p6 l* j3 i6 Q+ ]6 K mov dl,al
; z8 R# ?4 j. N1 e mov ah,2
2 t6 h! @1 f% U* z! _, `( A& R" | int 21h j) c2 n3 U% ?! ]( ?
mov dl,bh7 [: E3 {: v4 m e9 n! L
mov ah,27 z/ W# @( Q# ?% }9 v f
int 21h- V. ^! T1 l. { N. D1 ~
mov dl,3ah
8 w, a5 D! h) X. c9 o# [ mov ah,2# I% V$ ~7 Q X; e+ }" D7 ~
int 21h% W1 O4 h8 M0 s) U
pop bx 7 |& P# e* D, L+ [) n: q ?
mov cx,20
7 V) Z# u G9 d. c push bx
, A a' F% Y; jput2: % |+ K1 F( @7 b. U# S+ O
mov dl,table[bx]& Z! b3 v& ?9 R: B- p- ~9 s; _, p
mov ah,2h7 n1 G* Y; r" D3 ]) J. `5 W+ y3 O$ v
int 21h
1 t, B+ t$ ~7 l' B1 r& v
6 X6 f0 c- u$ S" c3 j inc bx" }3 R% ]- u& G3 I# W3 f; d. d
loop put2
$ t% V% h( S. s* w- B inc di ; \5 N# z' h. a- b/ \9 ]0 _2 I
pop bx
: R* o, D$ @# ]1 e5 b* |; b. Z add bx,21
( P" X2 i) v2 L$ e/ n7 v, Y pop cx
9 V. B# x+ c. L4 ]3 e- b7 x! Z
0 E! S$ s5 Y6 K2 O2 ^1 e: ]3 o loop put1
A- y# k( [" C" P( h2 ^ ret
' l: X) x. x7 T" A+ k
! z" g3 W+ ^& cprop1: d; R: t4 G7 L8 @: e0 b G5 K, v% A
mov dx,offset pro1- ^& L3 {1 U5 `2 I+ e* p
mov ah,9h
4 a' \$ `; J- X. V" X) q$ A2 ~ int 21h$ z4 ]/ N* O7 U: \
enter # D& q0 M u2 v8 [8 I
ret
: ?5 P; `, H0 m. J6 H' V8 E" k" F' {+ T6 ~# r
prop2: enter
1 K. l+ M' W2 G$ n0 K mov dx,offset pro2
: o" O1 U# k* ^+ \: c- ?8 W mov ah,9h
3 \( c3 T0 I0 j+ Z# R$ k0 I6 @- ? int 21h# ]- N3 a; J$ X+ D) K9 x" s
ret' w( G k$ Z3 \+ c) P
& C8 ?- O+ y9 ^. y) x, dcode ends! d# t- O |8 a1 C$ H0 d& J( u
end start' b, Z$ u' d) C
0 O- m _1 p. t. ?+ V
3 Q7 x0 v4 V2 |( ?& I) i+ C. B |
|