|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧+ I$ d: ?, l, h8 ?
enter macro% e4 f P/ r: N0 C3 L
push dx$ O' A$ b2 Z7 ^ N, [2 j- _4 T2 {
push ax* Y: _5 g: k7 F1 O% k3 R
mov dl,0ah7 W9 @2 c/ f% W1 e
mov ah,2
- W2 E1 e$ E$ N; l/ |) o int 21h; S0 z4 T( Y1 r0 M+ p, G, {: Y
mov dl,0dh I/ _2 [$ z7 X/ @
mov ah,2
$ g4 M; f; n' I/ s# h F. q int 21h M2 D Q1 M8 s
pop ax
( W" \: K5 _8 Y pop dx ) d+ F; A: }6 I. |' I, i( C
endm l" S1 _7 d) W( L8 h& H' z( _
. @5 W1 `, l5 E* g0 d% Y/ sassume cs:code,ds:data4 W$ c5 |$ F: v% F4 `* j0 B
data segment/ \6 X% E/ X F( h4 O% Z; O+ C
table db 300 dup(0)9 r6 W9 Y n5 }3 d5 L4 r' l
pro1 db 13,10,'_________________________________________________',13,10! a7 o' j4 B W9 w6 b" B" b
db 'no more than 20 characters English name.',13,10
/ |( R8 I7 v& [! o `2 }3 j/ j- w db 'For example:',0ah,0dh,'liang xin hui',13,10- X1 m8 n/ x" x3 t# W5 v4 q
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,102 W: Q" q x# X1 Y
db '.................................................',13,10
! o a; d/ _* w. A0 K db 'Please input:',13,10,'$'
8 v3 q# @5 x, K3 Z) Fpro2 db '.................................................',13,10
9 Z. p$ @: G9 ~9 Y9 L db 'The results are as follows:','$'
4 u3 [# f9 N1 Q8 ]7 i; ^7 k$ g1 Q M& [) p- e: m& i
cont db '________________________________________________',13,107 o( Z7 C v) |% I$ w' J0 A
db 'Can You Continue(Y/N):','$'
- k& W' y- }3 f! |+ I
, q0 [- U4 j7 e; d! @cp dd 50 dup(0)
- U* ]8 ]4 A1 n' G2 ]9 k6 xdata ends, }) P- \8 ?& }( K) l3 p2 M7 p/ T5 R
" y4 Q4 c+ {& E# Hcode segment" [9 M8 Y2 R2 k
start : mov ax,data
" L. k& W& f1 X: \. H" P mov ds,ax; J7 Z: R% H# Y& d2 d
call prop1
5 I$ D+ [; y! k( `+ t* W" A# W mov bx,offset table
9 U3 a) o3 b: |& P3 e mov si,09 h o: `$ i" _! |8 N
mov di,0 U1 v7 s. e6 o" o: v& J
- G# e" ~! p/ W) Z( y( F ! U" Y* S& k9 y
call enterchar8 ~2 G! H+ P. ?4 o+ m V
perp:
7 q0 n: s+ }8 |4 T0 w. Z. W dec si0 a. O" @! ]% q6 i/ N
mov dx,si
+ W+ y1 h9 z3 [" B3 _+ B inc si + m& ? |& v7 b( v& ~* P, y4 W* }
mov cx,si" W& x2 J0 J3 E0 S
call arrange7 [4 I. j: U- s- j! J: Q" q! ?
call prop28 M0 }" G3 s' Z( e
call putchar! P; ~& Q- U* H. s
liang:
A$ @% Y. V; Z4 ^: t. A! p6 [ J call Continue8 E. n* x5 s( b
call judge
9 B' k/ V/ |( e$ `) q" @' I+ U mov ax,4c00h0 z6 T) z1 Z3 s
int 21h! i0 c' S. Z6 d7 i; e7 T6 z
) z5 R i1 z4 L
m; [7 G* N/ X) xContinue: enter
- j5 O7 `+ o( b, d5 ~* R% r+ `$ m mov dx,offset cont6 t/ |4 h, y0 G
mov ah,9h
7 J8 l* _. I0 E0 p int 21h" X2 ~7 ~, a: n7 d% a
ret 2 x$ U% {) F! b* G
9 p H2 q! d# Z. F0 o
judge: mov ah,14 t* V: J- [% M& `7 D! b
int 21h: Q8 {/ J s# }9 z/ \
or al,100000b
4 ?7 m. r8 K" Q) ? cmp al,79h
# s5 D" G* ]/ U2 D+ V je clear5 w4 x5 @5 M/ U) N% S. e
cmp al,6eh
3 y0 P+ f* D" x7 |. E je endj" |$ v n2 a! \& b! P, r0 I7 l
jmp liang
. k8 j B2 j1 \- c4 Z: b4 M5 x% G7 jendj: ret + A0 B. H; h" c# ], R: J3 u
5 ^ T3 B% T, W/ s
clear: mov bx,offset table
& H) q2 s3 K1 b* ? mov cx,300
* T! M$ J2 F( V! nzero: mov byte ptr [bx],0
. t6 _5 X) y2 h% @- C3 t inc bx. R% X7 v; Y+ x& u- V
loop zero2 d2 J6 P/ f6 l& b0 h
jmp start9 h" |7 R/ Q+ @: }) i9 ^
1 S; b: p+ `3 \
; U5 z* P0 t* f* `- C- D5 y, nenterchar: mov ah,1: x* c' @# C2 V* c1 h
int 21h
4 D3 N. m; _6 V9 t2 G mov byte ptr [bx],al
' M7 G L+ D, Q5 T cmp al,13# {; T; m, e0 s3 n
je endchar
8 k$ Y4 P$ | P mov di,1
# Z0 W% R. C6 T1 i$ I8 R inc bx8 _8 o8 q* b4 [, z; D1 t& ^8 A
jmp enterchar
; O) r- O( e% K) @5 w8 f3 W: ?0 Q: _- v0 y3 b- C. ~/ X
endchar: enter
7 q! O0 a/ a/ J8 k1 |8 R K0 Q mov byte ptr [bx],' '
) K7 }' @: j1 `# I. f) ?" U cmp di,04 T) ~/ n, V' ^. p1 e! m# ~7 g6 r
je perp
% Y% y6 ~; G; ?0 H' ] inc si& [5 d$ J! q/ \$ U) B( O# {
mov ax,si2 x2 H% A/ h3 c G% v
mov dx,21
7 A, p& h2 l9 C" N( s! p( O mul dx
4 R( I6 `0 I7 z; M mov di,0
/ O5 G8 A! b) H, I! S8 M- p mov bx,ax ' D5 ~& X3 B e' z1 f1 ~
jmp enterchar
9 U! \& R! D4 R4 W% f y/ q1 r Z9 q$ N
, K- {, |$ j3 A u6 G' Q! k1 Marrange: push si4 x0 C3 d; t8 h G2 c1 b6 S! o
push cx # o$ ~% w8 Z1 e8 o+ Y
mov cx,dx
: u9 ]/ K5 r) r: j' S3 ~* J3 k mov si,0. N0 c0 d+ V4 a7 ~* x- d
mov di,21
, }" H7 y; j* @1 p. S
2 i5 N3 o$ h5 is1: push cx- I, N: T' v- l" a
mov bx,0
1 Y+ o9 R: y* d7 x: y mov cx,201 L4 h7 ]0 p! V4 D) y: {
ss1: mov al,table[si+bx]7 [" _1 O. R# F/ R
cmp al, table[di+bx]8 z. G3 [6 U" o2 Z! j
ja jiao( K6 [$ s4 [. x7 v7 z! `/ U2 m
jb s2
7 y+ k, `7 @$ [ inc bx5 k; D7 d% C \8 O
loop ss1% z6 K1 |% e# n& ~6 A, V R7 r. t
jmp s2
# a6 k/ o2 J# j' O7 n! R' ]/ J, f( U# n3 V# Z
jiao: mov bx,0
. h5 S- h( w- W' ?" p mov cx,200 f/ W$ [+ I) _
jiao1: mov al,table[si+bx]# i) J/ F% K$ k3 A9 N8 `
xchg al,table[di+bx]
, k, j2 f/ ~( ]; f mov table[si+bx],al
5 [. X# E" b0 z: f% T inc bx0 T5 H$ W2 W0 G5 ^0 K
loop jiao1
4 x9 O4 G8 V) v: C2 e3 E. t* Y+ Y
6 R2 {# n, G$ j% qs2: add si,21
7 M: e1 G+ n- l! N. V2 X; y add di,21% [, r2 \2 j; M: L* N f# I* k
pop cx
2 f1 R3 f, |; \# _ B loop s1
7 M6 ]5 g4 l- Q& k! R- q. |& y: j$ A' n6 R
pop cx r" E4 r* g- n' w4 z
pop si Q: Y& e8 z8 G$ |) A [
loop arrange. h ~% k0 o6 Y: a3 ?4 u2 p
ret
4 I) k0 r& B v# n. L, V* X4 {
) w5 `* o% X4 Z1 x7 Sputchar: mov bx,0
3 H" w9 Z3 _6 M3 Y# F, K mov di,1& P, v& `/ a. }: C2 B0 H
% t }9 ]( n$ O: @, h5 N
: f+ \5 o. {9 y mov cx,si6 u# H3 w' G- p# \& H: H" s8 E7 _
put1: push cx K- I6 U) ?0 F$ D, W0 t
push bx+ ]! M( |- {) b0 V
& `2 U+ K% Q. J) c" M enter
8 h- E+ ]) q/ [8 M! u( C / r, }* q' c$ g0 P! q
mov bl,10. U2 F2 s8 N) H w+ M2 D2 p7 h. I
mov ax,di2 k: E Y' T ~. l
div bl
x$ s7 s& G2 ~1 |$ k3 }- M mov bh,ah- j$ C5 t/ ~" K+ O/ L; `
add bh,30h; ^* r2 c5 c [1 Q" u
add al,30h- V _" I; O! F2 H Q; Z$ X
( Q0 ~# r9 X% A' a
mov dl,al
# g p4 f; v! G$ f$ a- Z mov ah,29 @7 x3 f- ^2 L
int 21h c- T6 b2 J0 Z9 J
mov dl,bh- d' l" W3 W9 x ?: J& R
mov ah,2& S* H& ?4 [% r; c. d3 l
int 21h' h: `' |0 e7 Y2 }! @+ C( u
mov dl,3ah
5 [& X0 J* ^- {/ r/ ] mov ah,2& b4 t$ q: l7 y4 L3 e" c% S
int 21h
$ g; ~; T& @/ ?3 g" S/ v pop bx 8 U. y9 ]! @- Q( `& S" T2 a7 Y K
mov cx,20
2 l6 f" {/ ]: P4 C2 p' L d; s( x push bx+ }: W" G% j8 |! d& P1 s
put2: : i5 b' O5 h/ o/ X
mov dl,table[bx] K+ p7 L$ g& e, W' v
mov ah,2h# v8 X0 B1 O w9 L) n# i
int 21h9 \. F& p) x! e+ ^9 ~. T8 \5 b
1 S. w. E6 G+ b2 \% c, n
inc bx4 V8 v3 s' u' I- m1 g1 S O
loop put2; w% N, y; o8 t, ?% D$ X$ ]3 }) B
inc di
' A9 U/ i+ \/ s s9 A; S% }/ Z pop bx {# R0 M8 O" D5 D( G$ P0 r4 `0 U
add bx,214 R d, m% \3 n9 x5 _0 v& V" u
pop cx
' @' s7 d0 J! a9 ], d8 q * E; D/ v/ M1 J- B2 s! O. b5 T* \
loop put1
. t1 U0 q i0 z ret
6 o- ~: l. a/ z3 Y
: d3 L; d: {5 Qprop1:
4 }0 u* r$ r5 E+ |- P3 `3 E mov dx,offset pro1
; D( I0 C. g* W mov ah,9h
1 W ?/ Y5 P7 y3 W1 H" n } int 21h
8 h" C% S# Z( l) e* ]" O& \ enter
& j/ t: C- t% _ ret, x0 m! A7 S/ n) v8 S
* U. M, X9 j/ i4 B
prop2: enter
7 M0 D& q7 @- }9 w mov dx,offset pro2* P, q9 E, {$ O( G$ u5 b% c
mov ah,9h
4 ?% w& ~0 q) C. S* ~ int 21h
. p, m% s% ~; d+ S) A+ f ret& d7 q0 C. a' l: x
6 [. q2 N1 v$ Ecode ends r. f& K3 j7 ^7 ?$ F& @
end start5 ]* m0 D0 A. r9 Y( X
1 X* {- ~/ Z& M4 b3 C
9 x; n: ?- {5 b$ ]1 g" t& }: I |
|