|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
9 g& J5 \: u* genter macro
, m5 P# u7 x8 t' p$ Z8 w4 x push dx
/ T$ h$ s+ ]' L- @$ [ push ax, G) Q2 j* w" n" e( T
mov dl,0ah+ _, J: a3 H7 v& e# X
mov ah,25 ?$ l' a7 R- h; k. \. N3 p3 `
int 21h
) b0 W+ R% i* R" y; F: A mov dl,0dh
0 R. x C# }1 P; _+ \( ` mov ah,2
! D- d1 k# ^3 s' u0 ] int 21h
2 O# o( W9 W! t5 J; X7 u pop ax$ N$ \0 r( c( A ?
pop dx
' y2 ?2 g4 y% S2 q5 d7 E& qendm6 a2 \; E- c+ J/ I/ @6 [! U" b
. D" m' |- R8 B6 Sassume cs:code,ds:data
: J1 P3 K8 D0 ?/ B( }. N* M3 Kdata segment7 k9 Y- D% L6 V4 i2 J$ `$ d* Z1 e
table db 300 dup(0)
# V- h3 w" V( U& ?2 j. ?& _pro1 db 13,10,'_________________________________________________',13,10
. N3 {0 W' o% I' E9 _7 f7 ?' x db 'no more than 20 characters English name.',13,10
A( R* \! K$ S O2 g db 'For example:',0ah,0dh,'liang xin hui',13,10
7 u) |$ s+ j/ T1 Z db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
1 |. c x0 C- N1 |4 v( ^- O db '.................................................',13,10 Y2 ~; D9 N% l0 S& s4 O6 ~
db 'Please input:',13,10,'$'
$ }9 Y/ T0 D' J; P$ O7 epro2 db '.................................................',13,10
& t3 q% _3 Z# I* b7 z db 'The results are as follows:','$'4 Z p3 l' y+ B z) l# N! d
0 B% {# D$ T0 \cont db '________________________________________________',13,100 u% C( W" M* K8 l4 e
db 'Can You Continue(Y/N):','$'
: K; e( S0 x4 t( [$ |3 Z4 W9 ~
8 x* ]* m5 A+ T4 u" T- M' Pcp dd 50 dup(0)
9 d' V, e4 U2 M& G; [+ I) bdata ends, O2 e, e1 K/ Y( Y# u
5 g O" M- a* u& g9 o J8 x/ J# ^
code segment; R" m2 F* _) R
start : mov ax,data
1 ]' n/ m& C q/ a& A mov ds,ax
' a# f$ T% k0 {2 B4 K call prop1
/ M5 n$ M7 A7 j9 o mov bx,offset table' j- M/ I& U; e6 l7 h; X
mov si,01 \% S$ c2 k% L0 [. t, N: x
mov di,0
' m! g5 R) Z3 M; b3 @* N) A9 R * @8 P# }3 F( Y" d+ S! n
0 y5 X$ r4 f4 w; j, N* P9 x" {3 C
call enterchar
9 l+ k8 J" w- x$ p- eperp:
$ ^, e) r; V0 {2 L3 ?7 C dec si6 ]8 y W) u3 ~, {& U
mov dx,si. o6 g" o9 l, V/ w% Y
inc si
% [" b2 @4 ~$ S$ l; {4 T mov cx,si
$ r& i& z7 O) J& y6 |) I call arrange) A5 e7 r- l4 a: i3 C) W/ C5 L
call prop2
7 D# }/ b# ]1 e5 O# H/ x call putchar
: ^+ `, c# x& S; b/ {. nliang:2 x, }5 D# ]9 O% K
call Continue( y# D* m1 ^# A8 J# Y2 Z& K% {
call judge
3 a; N4 i$ T3 `+ _" b6 s mov ax,4c00h$ t6 T; z$ y5 w2 \- T
int 21h
% h) w. U, A8 r, }4 j3 G& Q2 Y9 Q5 p" w! f B6 ^
F1 [* N/ l! {+ a% `* h) B$ j" h
Continue: enter* t2 {6 K9 O0 O9 s5 {7 ]0 R; r
mov dx,offset cont/ `& o q! i# I' f v# Z
mov ah,9h, w+ [ @: q7 U! ~3 V6 V4 o
int 21h. g: X0 ]# t8 O2 `5 t0 F( o
ret ! ~5 w6 @* K2 u- j0 T
1 K2 X7 e, v* p. U& a
judge: mov ah,1( f3 h/ U) w2 o3 u* J, Z, y, Z
int 21h
3 l2 `9 s2 O7 v# }7 c! a# \ or al,100000b* O5 H8 j/ A" G) c3 ]
cmp al,79h
0 ?: O' _9 `' F* l+ Z% ^7 e! u' L. s3 C je clear. n o' w$ h/ U5 ]
cmp al,6eh: e/ B) @3 e/ H8 T6 {+ U1 s t
je endj
; \4 e8 R# o+ J- O( c jmp liang4 A b# S: S$ L% R; U0 `9 i$ }
endj: ret
6 w9 }( v4 o; a1 H# U8 C
9 l) r; e; D& A7 w8 R% J' zclear: mov bx,offset table o1 S# ]/ E; }
mov cx,300
1 N# h' i1 f jzero: mov byte ptr [bx],0* C+ r7 J# J% d
inc bx( L9 ~/ V+ \" s+ a
loop zero) ?' L% _1 l: i, S# ~) |
jmp start$ @) q8 j8 t' m* Y9 `6 b
0 T, y8 b3 I: ]! Q) G
8 L! r: y! b0 P" p2 k: l3 O+ yenterchar: mov ah,1- O$ D5 f7 K1 f4 ?
int 21h
; q* z+ a3 H* T/ e mov byte ptr [bx],al
) O; l+ s5 s1 A" A5 H, @ cmp al,13
% S4 t5 B. O/ a5 u je endchar
* Y6 T0 C1 k) _, D6 _, e mov di,16 W* J2 L4 }4 l$ U
inc bx8 _* R3 a1 _0 Y% i
jmp enterchar* F: h* D, g& a/ _. u
# K! v4 d, R- s: {# M3 ]2 y
endchar: enter
9 |2 }* ^: w9 G i mov byte ptr [bx],' '
2 L$ r+ ]' q) H# ]( Z6 p cmp di,0* D6 ?# Q' i5 J
je perp
) K: j8 Z7 C/ l1 f, w @ inc si
3 T Y# I6 {8 R/ @ mov ax,si3 m, r5 `/ i- d n2 ?% H
mov dx,21
% c2 v$ f; J! k3 q* n mul dx- a( U2 b1 ?+ }( x+ z0 I' _
mov di,02 t7 |, E, [. _; @0 i! v) E6 s
mov bx,ax ( y2 M2 i* R; A& V+ L6 e
jmp enterchar
1 j! ?4 ~0 z- G3 n8 p6 t6 H; @# z* ]7 `9 e
arrange: push si7 s v) v$ T% k
push cx + o% [! I" n4 `! G* C' @
mov cx,dx
8 M4 h1 s' M( K6 K# C3 i mov si,0
1 b) u9 S2 s# p% a Q mov di,21; x' T1 t- J0 z5 A
2 Y0 R# S( g; H9 [
s1: push cx m4 j, B8 ~ F! l$ V
mov bx,0% j; h5 @! B4 _
mov cx,20( u; a' M8 x; l- c" I/ u
ss1: mov al,table[si+bx]
" i2 U$ d7 d' T& P3 a cmp al, table[di+bx]8 @% N$ M1 u' B: B( t5 \3 F
ja jiao: N' t9 r' Y- M( y8 W5 D( z
jb s2
$ \. v( I8 Y+ d5 x# r( K inc bx
" l. ~2 c2 U3 |7 E& h6 X loop ss1
& q* y" v, t% l x( M jmp s2 E( z: `3 s$ b
# d7 m, j7 q' T. E) D- ^0 b, S! Fjiao: mov bx,0
8 L( J: c6 c8 c+ d0 G- H+ b mov cx,20
1 Z- `# S: _; v( _2 g, f7 D: X+ [jiao1: mov al,table[si+bx]9 \1 m7 S6 b5 w+ V0 t" f9 k( r
xchg al,table[di+bx]
5 w# e5 n# {, D( O: J2 Q5 ? mov table[si+bx],al
4 g+ D. k: `6 { inc bx
% S+ H4 A6 z) z. w/ O loop jiao18 l* r) Z: Q, i& b# U4 Q7 o, T
/ }; X# [$ Z r$ ]" G) d! {) cs2: add si,21) Z" J6 ?2 a, t2 I: C" w
add di,21
# ? \; {3 U9 h4 k5 e pop cx' C+ L( v1 [" |1 X
loop s1/ D9 g. w+ l7 D# x4 Q: y' d
2 i: a3 h* |& ~. p: H, z
pop cx
3 D/ e7 i q8 B( }. D/ G( \" C/ U pop si
" `) _6 l6 I/ z: i( | loop arrange1 f# {. i- L! T4 X( a: B
ret
. \; c% P( j1 x+ o, V9 K" ~
# N) i7 Q# J& X1 S Xputchar: mov bx,0% V# t {0 F7 o2 e j
mov di,1! ^# W5 \" [' x6 P
5 S2 z- c$ Y0 m- V
' p4 n0 k" e2 T% V5 K mov cx,si. s5 \5 n8 A. G* E
put1: push cx8 Y# V/ z& \ a, {$ ^+ o; j( `9 w
push bx
, B8 y) Y# b) _2 ]9 I + m- D# B6 C4 I- ~
enter
* S5 _- K, W$ |! b+ e9 H9 O0 v & M7 k+ a+ {0 z' j9 K: a5 L
mov bl,10! \6 f$ N/ n; R& |8 X2 Q2 X
mov ax,di0 A6 \0 y( [- `0 ]- l
div bl9 d% [8 W# c. U5 V
mov bh,ah
% w7 H! F1 Z* \/ H) p add bh,30h
- q ]* ? E( ]0 S/ u7 \ q add al,30h+ q% ]: h5 J1 |% }3 [4 \! E
: v% d; x# ^, G! Z; P+ ~( V mov dl,al
" n9 d0 z' v! S/ ]$ C* S mov ah,2
1 ?4 h. K* |7 G int 21h: c: z! w3 d/ Q4 t' n- e
mov dl,bh
6 ]* X& f5 }/ b7 ~ mov ah,2
/ f j0 c0 G5 ?& s int 21h; n' K! L2 m5 B( t& y1 n
mov dl,3ah
$ Y3 [- j; u- l" H' X7 u mov ah,2" \6 E% V( G$ A' S; p' x- w
int 21h2 @- C0 X* [ l/ G9 N% s
pop bx
; ?, _/ \/ j6 r! A mov cx,20
/ Q5 [, D7 M$ @3 j% D3 D& B push bx1 _( ~! d' x/ y [
put2: ( ]& e7 l/ O% B/ K" o% _
mov dl,table[bx]
# } Z. F C0 F$ L4 B6 }6 q; d9 C mov ah,2h+ U }# L$ W5 d- Q4 ]* N- L5 a! {
int 21h# L/ d3 _" }. Y/ d8 V) {
% M: f; p7 n0 z O% r! \
inc bx, X6 j: g s+ D9 k9 o" Y
loop put20 Y" r9 H# N; Z$ j C# {) C
inc di
: N9 b. D; i" Y4 f1 l pop bx. N& X/ I7 y8 |1 v* \
add bx,216 r: H# l" C( `
pop cx/ w# Z5 ` ?# E. P8 q
" p# D4 d7 p8 v4 n5 a# R
loop put1
% w% z7 [6 A. ~2 n: } ret3 r8 w8 ]- q! M! Z+ F
- T2 O. D! v$ N, ^ O. V( R& L
prop1: - m4 K9 @, g5 Q$ y$ ~/ ?
mov dx,offset pro1
) a9 c9 d, m. s( s: o) t- Y mov ah,9h% o3 C4 Z) c3 S
int 21h
3 \' M3 [, B! Z: R/ U% V9 @, l( f enter
/ @! c" Z3 p+ x. `$ [7 \ ret
% n1 p7 Z1 J9 @6 s! x |1 A- d1 ^, L* q
prop2: enter
) ?+ K" Q. o! U0 z8 P9 h! |" F mov dx,offset pro25 [6 b/ Q) K5 i$ b5 g) @: w% V
mov ah,9h
+ ~ _: f0 j% S$ n5 Z int 21h `8 K; E7 d- ^2 @+ p# Q. `5 v \
ret
0 Z7 l8 O' v* U- g
% ]- r* p. W& _# `$ @8 g# Hcode ends
3 X5 N/ q8 Z" @: Fend start' Z+ t7 O: c/ k' _' O; S
2 [2 j4 \8 v: e1 p% Y# m
; X6 E( ~9 [* l( h" \+ z F* F |
|