|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
4 f0 M9 m7 J, I0 g" I: V; wenter macro
4 N7 M( y0 e( A6 w& e push dx
# v0 O4 _& T( `% }, |/ w push ax, _6 _6 M d/ l! V" S& Q9 q
mov dl,0ah
; I2 x2 M. u/ u4 K: e0 d mov ah,2
5 ^* H1 L$ |" w" g2 \ int 21h" m! X, i( q, \) G- U
mov dl,0dh" i0 G- j* H& T/ Q, C; X9 b+ T! a# W
mov ah,2- T( Q0 ~0 H: a) A1 T9 Z: U* I
int 21h8 B8 _9 Z* b7 f. M, [
pop ax
* h4 h" D0 _ f" l6 n pop dx ' M- v" w& ^* Y4 f8 ^: Y2 W
endm
* {( H+ p! c) K) D3 @$ T' w F1 @8 J8 y* y( ~0 Y, w
assume cs:code,ds:data$ u2 f. U# @/ }6 ?9 R4 s4 z0 R
data segment
& v9 X: [) ~* y3 A2 ]" {table db 300 dup(0)
8 R. h% n" y- K0 _. W5 c, O( zpro1 db 13,10,'_________________________________________________',13,10
9 e: ]: U; }) Z, A8 B db 'no more than 20 characters English name.',13,10
- s3 L% O: E; `' f db 'For example:',0ah,0dh,'liang xin hui',13,108 ]; A# w# p3 X% Q" a9 O
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10: {2 \6 W% K* \) `
db '.................................................',13,10: D+ @7 D. w8 I$ w9 j5 `, x: s
db 'Please input:',13,10,'$'2 N( o& m; L/ n
pro2 db '.................................................',13,10
! L; e$ c f% P( k, x% U8 |, K) O! Q db 'The results are as follows:','$'+ T* H5 _; b: h1 [& E
7 h) @: U3 o6 p8 J! L
cont db '________________________________________________',13,10
( V! K2 r/ k: p+ o0 _, P2 r& Q db 'Can You Continue(Y/N):','$', ~1 \+ N# y7 C
6 C+ p0 x( m; w( V8 p4 F: Ucp dd 50 dup(0)( L) J. i) }% ^' t3 I2 O
data ends: z4 U* r: Y9 u9 o0 K
8 D5 c) Y `5 D' o' \" b% G/ c; xcode segment9 @9 t H" Y) E. ~1 V
start : mov ax,data) P# G, |& H7 R! f
mov ds,ax2 f2 z' |- @8 v3 C
call prop1
# F* S8 ^, t2 `' V$ J mov bx,offset table: L8 S. |. L1 t/ {+ Q2 s. {
mov si,0
0 P+ F5 x6 R4 j* W mov di,0
) C8 z v* A, ~6 @
0 H) H3 P9 _2 T9 F. n6 C) W& N
, Q3 W p- S! y G3 ~9 e* p7 @' K call enterchar$ s1 Q1 [2 w G
perp:
# z9 R' ^+ a/ y- P7 _+ z V dec si$ ]- l$ ^0 i" O
mov dx,si; C+ X' @+ A5 D+ f
inc si
- y" I' g U: |2 P3 d% l+ }( U mov cx,si% ?3 j5 j" [9 m) U+ O: ^
call arrange
; V, e1 F* ]- o* ]0 B call prop2
2 ] B; ?9 v5 v, p7 ? call putchar
2 [! j. O1 V5 U& Vliang:
" O- o- Z- {3 j- a7 g$ F call Continue
' h* ^4 B8 c$ u) H1 w call judge
3 n& h4 Y/ u9 x" N% {9 g mov ax,4c00h' V$ S2 p. v, Y
int 21h
^) c7 q5 l& c3 u- ~6 q; W2 u
3 g1 }1 ^0 ~9 Z5 E8 ]
9 D) [5 m. @& H) U4 M, F* N% h4 nContinue: enter
9 I! v; H4 h/ `+ K mov dx,offset cont
- ?( B: P1 l. C6 |6 m mov ah,9h w9 N- r: V" L! x" ^" O
int 21h) W# `& o* g0 X3 I: f' p9 @! J! H* O) \
ret ; t/ T7 c3 L8 i/ O P4 S
# t0 v I- w% {judge: mov ah,1; e/ o/ P/ X/ ]$ N* K& G, q
int 21h, a! y- k |$ f8 u5 n
or al,100000b, X" h# p) f! y- O, v0 N
cmp al,79h
7 [* q) [4 A/ s. [9 g9 x: Q je clear
4 F. f$ |- d- T cmp al,6eh, z' S1 M; k# t# ^9 V1 J
je endj; V" G3 \* U2 z. A+ n
jmp liang
3 v9 l4 N' }' A0 e+ Z5 e8 aendj: ret
+ Y& G5 y: g5 P
% ?, d2 \" m, e P4 w- ]/ dclear: mov bx,offset table; [! H& f7 R, r: E9 C
mov cx,300& g( d* h5 o& e# ]' E
zero: mov byte ptr [bx],08 c' ~; U7 @2 S1 p2 Y/ \7 j
inc bx: N1 [6 t4 |% }% w' g: n: B
loop zero
) B' v g9 l; j2 h. F% a) `7 S3 N' f- E jmp start
9 e+ l3 L' i0 c% q/ f: w# K9 g8 h" N( H, m" I1 e- M, `9 _
" c* e& ?! j; L/ Y
enterchar: mov ah,1
3 D6 d3 y9 W! R) n* S% S) p+ ^ int 21h J2 e3 P8 x* f' j. o
mov byte ptr [bx],al
0 {* F% o. U( T, v2 h: B" } x, K cmp al,13, `2 P' r8 I' |/ a9 Z4 n7 F- K
je endchar a; M r7 d% d
mov di,1
& ?( T5 n( {+ D, D+ b inc bx
* P4 h; n( V2 Q; b' r jmp enterchar1 b5 l) V# M/ U& D5 `3 N' _, J; T
1 K2 e( K7 U( m, j( a! x' ]
endchar: enter
% b; M# v' T) V mov byte ptr [bx],' '
% c5 P" ^, H6 c& B$ m4 E cmp di,0
% M T2 X7 l: t4 M je perp! d8 a3 c% o% ?' S( l! B# W
inc si: {6 v0 S/ b! T& N
mov ax,si
. s5 u4 l9 J. n- m! k! O mov dx,21" j/ H+ U: K* W Q
mul dx1 \' u" P$ b. i( D: x7 b% D
mov di,07 _" P( L5 g2 A9 H2 |9 n% ?9 ]3 _0 k
mov bx,ax ; q3 O! D; ]: m0 x& ~+ L
jmp enterchar* s3 C( p0 h5 t1 P' A4 }
, c E! @ Q' U8 [7 ^arrange: push si
; c% r& k" v$ K push cx : L) O2 }/ o4 D5 F6 k" O2 a4 c
mov cx,dx % r' \$ Z4 z* {3 l; o w
mov si,02 E' d& t- ?+ Q2 g" { s7 g, s3 Q" B
mov di,21
) \- P* m; d$ \9 a; @# s3 p: Y" ?9 ~& J2 b* H9 ~" G: c
s1: push cx
, r! \3 }) b, U1 R: D( O mov bx,0
9 _! A* T: s; x mov cx,20
4 ?) w/ {! H4 E2 {$ [3 z' a& `ss1: mov al,table[si+bx]( E, X+ ^ a2 h7 @
cmp al, table[di+bx]
3 a. V i0 f: m# @5 v4 o ja jiao7 ]" ~7 |+ I; i7 {: N G- v
jb s2
4 a* N- I' V! e' | inc bx! i/ ?( D! A. D
loop ss15 m$ g# T4 A# c7 \1 K0 O, b' |: D; g
jmp s2& H! k/ [+ l% ?1 ?# v. O. s( p! ]
; O4 t" Z7 ^7 fjiao: mov bx,0
4 f( q: y# H% [* n mov cx,20# l1 P: ?# h8 L1 t3 A2 ^+ {
jiao1: mov al,table[si+bx]8 N" I+ I: j* J* {- R X
xchg al,table[di+bx]% ?+ Q- E, K: B, t+ K
mov table[si+bx],al
! u# }. j' ]) O' O, P' | inc bx
* U$ V# v F6 M9 H7 u1 |1 [, M loop jiao1 m R# m; D6 _4 v. d9 N* D) |. R
% }+ N' r* `. I, Q: @. l. {
s2: add si,21! J+ K- a' w( G" S p) N4 e# B o
add di,21
5 J$ ~- B$ F* [! |* u pop cx8 E- e: c! c7 R) V/ o4 D
loop s1
5 x! R' o1 _. \) L4 B( f- l6 n! M* x" B$ e
pop cx. |- C, J5 I5 ?9 a. @- c- b
pop si5 Q' z7 e9 P6 r: p$ E8 |8 K: v# t+ n
loop arrange* F4 F' _# z0 y
ret
# W- H* I' f+ }' R+ o$ F K9 h8 `) `8 J8 A; o
putchar: mov bx,0
3 @8 u6 c! Q8 N* g9 ^- V) P mov di,15 K/ U B- V- c ~7 u, D( g- Q
6 f+ s, C3 B( [ ' P: |1 u' y {! N- y: v; r) n
mov cx,si) s1 o" N$ g) i5 v
put1: push cx
' Q& I. p1 P0 ^; y2 f push bx
( Q& m7 v. d& R3 P( p* N, U4 N' P, V
1 }0 s9 ?/ J# D6 f1 z enter6 M$ V5 d9 l$ }1 i8 l- Q. C. [ v" I
W" O& ^* q, l9 a& i
mov bl,10
, v7 s( C1 L* R% f mov ax,di0 o! v9 ?6 ?4 E
div bl
7 g: R, U' L2 R4 {+ K mov bh,ah
8 R$ E$ p: a0 ^) R, W: L add bh,30h
* n9 e8 b+ ]6 b x$ [* F add al,30h
2 {0 ^) B! r) l& B# j: C/ R0 U
6 T7 c+ v# Y: X mov dl,al
) E. Y* x1 S+ L7 e8 b mov ah,2
% O7 N( [ p, o+ U l int 21h( z9 b% ~1 z9 t, y5 r0 @
mov dl,bh
7 m: D8 d4 L6 S ~. f4 l, [4 k% i2 I mov ah,2
- A- j# H( ?2 M* T: l+ u* G int 21h3 S1 X, l$ f' I3 A; a4 N; g
mov dl,3ah
0 H8 J3 C' c7 n5 ?: P' J mov ah,2
6 |* T: E" \' u5 E( z* _ int 21h9 `: g' J+ _5 m* s
pop bx
. k' `- S" [) D I mov cx,20& H- @/ y5 c s( V4 O) w
push bx
7 Z% e; m4 K: @+ V# M$ @, ?put2:
- C. f' F' c3 p) u3 c) s mov dl,table[bx]
. z) D' s/ n/ r7 l. v1 r mov ah,2h
8 a# E x1 [7 Z; E. e8 A int 21h
/ ?( q; b6 \& R6 D) G" @# z : j" i4 H- K- d5 a$ _9 v
inc bx
8 w5 l; ?3 J6 j1 k/ Z loop put2; J' O: f$ J5 [" {
inc di
6 a- S3 S, w+ _3 |4 ~ pop bx
{; ]5 E- a& p add bx,21
' q+ W4 {" ~2 R, D% r& V pop cx
# ^; R$ P% B$ |! r# V; V
9 r+ {( r- d8 _: Y3 n2 S loop put1% ~2 R1 N( ?4 ^4 w3 W( J
ret
' z- M7 T7 W8 K% y4 _
* h( k H3 c; X- Y8 zprop1:
8 f/ m' ]1 M7 E: O$ M mov dx,offset pro11 [6 k. [+ t o/ \% Z" h
mov ah,9h
2 u$ D) p! g+ o, {% @. Z! e. B+ ]) W int 21h
( }9 h+ I5 ]: K. V, ` enter ( h t9 _' i. p+ V. b f* g
ret
8 N g$ d4 \0 }' I; S/ ]) y: @2 d, U9 ~
prop2: enter7 l) n, C8 B% Y
mov dx,offset pro27 I# o t1 P& b* M- p) l& E/ V; A
mov ah,9h8 m9 K7 g! K0 L6 A3 V' V1 r: b; }
int 21h. l- |# t! P) s9 @: P/ @9 E0 b1 u
ret
" J2 _1 j" L- M! M' u I' x- D8 N$ ^0 s* i% C1 T2 X: B! R$ e! f
code ends
, h2 S" U8 i- k3 h+ Eend start
( V! S; F+ r, \% H; F2 g7 a
) {4 q2 ~" J. A( x( d
; o+ ^: H' X2 c7 x$ \ |
|