|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧 _3 y$ u: v2 Z5 j U& j
enter macro
- ?3 c, t( j& S$ ^. e, C1 _$ w push dx
5 |3 u+ f8 K8 x2 L! B7 c: z push ax
. \9 l0 w! Q8 K9 P( v2 Q4 {/ {5 N mov dl,0ah
1 I! u# l4 z0 d1 m2 f q5 D mov ah,2
6 I' g; V) f( g: I P9 w, ?! e int 21h
! j& T7 U# T3 N/ s3 v Q mov dl,0dh8 c" {/ s( y$ i% S; x
mov ah,2; v3 Y4 T) a' c0 S
int 21h
* T8 e4 ^4 @" v: d* A+ M& U6 M0 i pop ax
! ^) h7 q1 i+ n6 Q pop dx
3 [' c" n( L9 c* \- ^5 U% yendm
7 z2 ^8 U3 {+ {" f% F P# w- u/ q0 }
assume cs:code,ds:data" @1 z1 k& h, a3 L! U; C
data segment+ V7 _, X" ?2 `
table db 300 dup(0)
8 h7 `% f6 ~5 y- E* a$ Zpro1 db 13,10,'_________________________________________________',13,10
* g' U) M) [- _$ t1 E db 'no more than 20 characters English name.',13,10
1 ?0 N4 h8 [) w& k1 U9 t2 o7 c- Z db 'For example:',0ah,0dh,'liang xin hui',13,10
( i, a1 y/ q3 H- [+ X" N: B; [ db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
0 f/ Y. H1 p/ n4 H p h, p db '.................................................',13,10
& ^5 t* T* P! E' `3 b db 'Please input:',13,10,'$'
* T. l, I a$ I& f: W# y9 cpro2 db '.................................................',13,106 b6 \, p" }, Q- [' d, j4 ^+ R
db 'The results are as follows:','$') O9 N# J% F" L; P" H) v, H" T2 ]
* I" r% ]1 E5 Z/ s( C% n
cont db '________________________________________________',13,10* ]+ P3 u9 t4 G
db 'Can You Continue(Y/N):','$'/ Z ^# A$ }1 N1 y5 m
# `) O7 O; t' _9 T( d
cp dd 50 dup(0)- Q: U# W! \6 |+ e i* s
data ends
. I' A, y: |: N* t
2 C5 U; c5 A$ C) d# vcode segment
! Q! C+ P( p8 Gstart : mov ax,data* i/ H0 @: q) T1 U$ w- U
mov ds,ax
5 X1 o, [7 o. O: l* l: b call prop1 T. C9 S% I7 B2 p" t3 B! c6 z* L
mov bx,offset table
M; s( z9 W* [ I" t- a: p mov si,0' \: B# K: {5 b3 p' S- ?6 |
mov di,0
: N- y# M9 C3 i' Y1 G6 @ # \6 O1 h* b) s; |# U, U" b* `: w0 F1 F
' Y( S1 c: e/ t+ n9 {8 l9 Q2 o& ^
call enterchar( {3 X2 X7 P8 R9 u* S ^2 n7 Y2 z, c
perp:
% K# W; c, A j$ p; K! s2 |1 A dec si' }# `$ p+ m0 f. P/ G+ ^5 i1 d
mov dx,si
4 A* m+ q- [: t0 o% O inc si 6 w2 ~8 w2 y! {2 y
mov cx,si
1 U- Y& H! O& l call arrange+ p# m) I1 C* W. a |+ @0 w# ~! E+ X1 d
call prop2. p9 b G% P }* s0 v/ R
call putchar
3 x3 O. T4 P7 w' N& Wliang:
# P; U: c) A: z' N3 ]$ | call Continue
6 S/ t* `& Q) W* [- E call judge9 _- z: t. s$ G7 ], S: h: S# p
mov ax,4c00h7 u/ g! C5 K$ Q
int 21h4 L* F) C- J* C( b' X
! C! \) n& ]+ @' z0 e0 W( o, W) e
( {. L! a- X3 HContinue: enter
( c* f! C( o( x. G mov dx,offset cont6 A! \1 q# q( h- D3 g* u+ P8 _
mov ah,9h
, p, H% l2 H' o+ s' s8 p: K p) N int 21h
a, w" n. r+ A6 a6 w ret
2 {! X9 C+ S* b l3 L& ?6 P0 t. q6 L8 B; ^, e H! s
judge: mov ah,15 ]3 y# q6 E* c9 Q2 t5 [
int 21h
& S3 L5 p, z0 x$ I( `! a! O or al,100000b- |# H: [. b! ^: x
cmp al,79h
4 X+ ^+ |: M. |; ^2 N$ A je clear
q! X! H' e- I' P3 I; i cmp al,6eh
1 l- X& m4 [7 A N" r' Y# g6 k je endj6 G1 f2 C2 X; [7 \: k$ ~
jmp liang
4 c: {8 L5 B. G" Dendj: ret . ~8 Q6 G5 H' B5 h; i
% `) `/ V+ H% g" e) g; V( Mclear: mov bx,offset table
8 L% L4 k/ g1 H" A5 i( b7 H9 L5 c mov cx,300, {, i! h( K4 @" C/ [
zero: mov byte ptr [bx],0
- i1 [' }0 S7 @1 S) ^2 H inc bx, p5 J) C+ X' U# A
loop zero
9 }9 M1 u8 ?3 q. A1 X6 V2 s jmp start
) }6 t! T0 u p7 W& H: c: x# S. I0 K3 K" G& y9 ?9 a! R: z( K( z
, Q! J' ?- o" Menterchar: mov ah,1: p/ V! k" G5 \$ F6 a
int 21h
7 O8 w0 J% T, e5 a8 U4 C mov byte ptr [bx],al
$ [, e* x3 U t& T. r0 o8 f- ] cmp al,13
$ V% i, v4 a3 M- I0 R3 {8 s9 d je endchar ( W$ `1 y$ D2 d7 @: l P
mov di,15 ^( x: I) d: ^. V) A6 u
inc bx
. p8 ^7 F& s) N# S jmp enterchar
Y1 p, O" u8 I1 G2 x1 e
[( B) D; H5 |! U$ W1 nendchar: enter 9 y- B0 } C1 n+ g" |) u3 x- {- t
mov byte ptr [bx],' '7 N( P8 k* z1 |% L/ l, c
cmp di,0
# o$ M3 s8 ^) @% X je perp1 @5 v5 b9 R d- w% J4 ]# F
inc si
" i: r- E' }. x mov ax,si% k: y$ }" \5 f0 N. N
mov dx,21, b& ~1 ^& H% l' \
mul dx
9 v* s* N7 S' a) V mov di,0
2 H, u8 `* V4 \/ I mov bx,ax
0 d; L% f! S# W) d v jmp enterchar9 Y- ?7 B0 h" l) H& {
0 c# m9 n% r9 o# b4 h8 d' U5 Z6 Xarrange: push si U3 j m9 ]& D
push cx
6 @- A% T% s c: G, \9 {" K mov cx,dx
2 [1 Y6 ?/ I: G( m& o) ]6 K& R# R1 }4 T mov si,0+ V) g, }3 M0 n: g! Q9 _& F
mov di,21
8 f- G C! @2 F; X* d: l6 Z0 X- f! s. c) `; `9 k, X @$ D
s1: push cx: ~9 @" L+ S" V
mov bx,0
+ W! s4 f+ ?9 F# Y mov cx,20
$ N# I$ |! P% y. y2 ]ss1: mov al,table[si+bx]$ m( O8 U+ w0 l2 S9 `# r) ^4 O2 B
cmp al, table[di+bx]
* } {4 H3 U; ~; F+ ]# n; J ja jiao
. o' m' n7 W& A9 f jb s2
6 a+ n* E$ h( F- x* s7 p) O inc bx$ E$ B5 E. I9 s" y- T
loop ss1
2 O1 Q j, t) S9 I8 j jmp s2- H; x: L8 {3 W7 B4 v" G
# [ m8 H, p/ J( `8 djiao: mov bx,0( y5 E" j4 ]" [( @
mov cx,206 Y& o% @) d5 p0 v
jiao1: mov al,table[si+bx]- E5 M1 N0 z1 a9 I
xchg al,table[di+bx]. ~- L# y Z4 L; c7 O! `9 S% x
mov table[si+bx],al
# d! w% k0 y# `% H9 t inc bx
9 z, i2 |! O5 Z8 M/ | loop jiao1( E% Y; M/ j! ?8 Q+ I
7 h1 i% w& r k6 P% q* c/ Gs2: add si,21, J. O* u$ h- R' \
add di,217 K7 B/ v1 f- R$ @" Y
pop cx3 P0 h$ V0 N2 o' }% r2 o a
loop s1
' C6 h0 s9 I/ d9 V: [- C) O0 u3 r! p, m) N9 ~* [
pop cx
4 s" Y: E8 g' u' ]0 L { pop si5 g) n8 a. M5 B4 B
loop arrange
6 c# b3 p. F/ O+ ~% U T ret
4 L) j; ?5 O# w* u1 g- l: [/ d/ n3 G/ `2 e7 y' s
putchar: mov bx,0+ W' c3 a/ k4 x1 d# L
mov di,1
8 I$ j% y7 v: Z- s8 C 6 k4 Z/ @/ V0 {/ M2 s6 T
- k% f8 I6 X, d0 o9 M" J! I2 z3 e/ o* \
mov cx,si3 A; C2 K& `* C) x! D K
put1: push cx1 }/ t2 ~9 C7 G* R1 L5 t
push bx# \( V$ I# n9 _' ]
' n: f3 f# E$ }# S5 H1 W enter
6 e# m; P6 s' h8 ~
8 ~1 ?6 `. L$ L- `: ~7 M! \, ? mov bl,10' w. _ D! ~# Y% _: ?! M
mov ax,di3 Y7 j E5 e4 _& A
div bl
5 H g$ ~7 e& } mov bh,ah
% k7 s$ F ^& j; c* b; z+ y5 V add bh,30h
9 g* \8 L& v) J1 ]1 ] add al,30h
8 q' F: N& K k: ?# p
! q( P: J3 { R! [" P) l+ q mov dl,al
2 x& t. q6 B2 B2 L) o mov ah,2
0 [9 S0 W5 Q3 F int 21h' s) `( f$ r* Y/ h! R8 z$ K2 [$ E
mov dl,bh5 A+ i6 R$ U9 Y& O: ^! X+ C
mov ah,2/ Y/ ^0 O, G3 c( W
int 21h
7 c# l+ L2 Q6 m mov dl,3ah
$ e9 R4 j( A3 c mov ah,2' O/ w1 D) v8 \& _
int 21h
/ ]# ?/ T4 N1 M$ O2 E( O pop bx
7 F8 N1 k9 u: N: ~# P mov cx,20) k2 R3 z( o9 ~: j P! K
push bx" O3 ?" n# F9 a* V) m
put2:
: [# u5 b5 f3 W4 f3 K mov dl,table[bx]
/ L% p/ I1 z" h5 r% f: ~ mov ah,2h6 c4 T9 f: A! T8 J
int 21h \+ N# @. X! F* f4 K8 q# x4 t5 Q
. [2 v2 Q( P, p2 G. F inc bx
0 ]8 E$ v3 Y2 _ loop put2
( j/ U, `) P+ x/ R0 L* j& l4 `# { inc di
; M# D0 l& x; x3 M B# C/ P6 P" }9 y pop bx3 k5 [. V5 N+ E' F4 B9 X
add bx,21- M- }8 a0 z" r. N
pop cx% T2 D+ F9 m, V" X- B
8 Q, q" c; G- O+ H' m! J/ s
loop put1
3 J' k! w, l$ T: o ret
) l4 o$ o% |: u" g
* E3 C# R" V) B; T. fprop1: $ z1 ^0 A0 S4 @, _5 k/ ~
mov dx,offset pro1; u8 K9 l I- N
mov ah,9h9 p1 f+ Z, i4 k5 z! S8 c! t
int 21h; b. ~$ c4 b$ K: U% |, I3 R
enter $ d$ C3 O0 G% B* E
ret% ~- ^9 e1 B7 W, |4 y
3 Z2 x& b: H# b1 w
prop2: enter! _% @8 D K! p& Q7 Y
mov dx,offset pro2% M) _& I7 ^, K# X |
mov ah,9h
' M/ X; U: m; J! ? int 21h, d6 g3 K8 f- B! z( [
ret1 y k& ]% s& ^1 y1 j" V- R
: m* I' {% Y4 h7 Icode ends# N( @4 J: q5 \' ?. G
end start
' ]8 _' ?4 W8 I- r1 J+ l
5 A8 u, n5 b& o% x3 A4 @6 R) R( S* ?: g D' g5 U' O2 X5 I0 p3 P
|
|