|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
! L& q, H, t0 D3 y& w7 H% j& Fenter macro
' c, o) E* ]5 W$ a push dx
4 z- N5 t3 F# w- l- B push ax
, S7 b, P1 u! i, E0 k mov dl,0ah" l. j0 K2 z& W0 b- A" t1 P m4 s
mov ah,2
" w8 c" I: R3 ` m& h2 Z7 N: b3 o int 21h" v& E3 O! E5 X' R6 I [4 P# Q
mov dl,0dh9 ]' L9 M& ^( i$ }& f6 |% a) m
mov ah,23 C0 V! z& i* f2 @( i5 s
int 21h
, l4 l h% x0 U; F z S pop ax
$ a9 w! T. g* j# p) } pop dx 5 d; u$ x) d, M' x
endm
# `6 d. i+ e, W. ?2 z4 ?+ _, D N# ^' k1 I
assume cs:code,ds:data/ b8 X3 O n7 ^1 }- F& @
data segment
( k3 o+ ]7 P: o- T! L0 |0 H% ftable db 300 dup(0)2 v$ g% Z; D& c' @4 U. p9 d
pro1 db 13,10,'_________________________________________________',13,10
; o; u6 ]8 D6 k db 'no more than 20 characters English name.',13,10: q3 D* z& L9 W( H2 ]
db 'For example:',0ah,0dh,'liang xin hui',13,100 H0 T" v9 z+ p& D2 D
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
( |/ c0 P: I" h! T3 Y/ D& Y db '.................................................',13,10' Q$ p, z1 g, P) m
db 'Please input:',13,10,'$'! L+ @% |5 M, Y5 r6 p1 L
pro2 db '.................................................',13,10( c0 \$ \2 f' ?# H( Q% T5 v
db 'The results are as follows:','$'
6 w( f3 d* ?+ T2 R- X: e6 n
! S5 J" X; w% D i- g, Tcont db '________________________________________________',13,10
- }( a @! o) | db 'Can You Continue(Y/N):','$'
% H7 r% C1 e0 l+ ? P
8 A" E9 G0 G. g! \/ Acp dd 50 dup(0)
6 {( c* G2 N7 F* u$ c/ u; v' Odata ends
' q4 w$ j5 i" w0 B0 O/ H
5 Q0 {5 @/ O6 f+ O6 Acode segment0 G* Q, C1 |! D( ?1 f
start : mov ax,data7 @# v% Q$ h7 U* y# i) F/ Y
mov ds,ax
* F7 n4 O0 x: d* @ call prop1
0 S8 d" x7 l$ w1 u mov bx,offset table/ h( }, D/ E3 l
mov si,0
J) c' d4 p* e6 G2 f9 X mov di,0
! i( Q6 I; a! r
2 n" s5 T0 k3 J/ | 7 j( ]* ^# ?8 w9 V6 ~/ d
call enterchar1 h% k% o% }9 I! {3 r
perp: ) C/ |7 K8 l! @
dec si8 i5 J3 x* `) K
mov dx,si3 P* w$ o# E& B r0 N
inc si
& r7 m E6 R2 Y' O Z& g mov cx,si9 y% v5 \: Q8 q. y
call arrange5 U2 f* j# v+ t' x4 y
call prop2
$ f' z" m6 L6 K6 w) R call putchar
7 ?$ \: ^7 Q9 \" a; m( F- Y: N+ ?liang:
9 C4 f n7 g4 V8 V call Continue
( M4 Y4 @6 Q. ^+ v5 E call judge
+ M8 R. |% n [2 M' a' D% X( y mov ax,4c00h
: O, c& @: N* t2 A: d int 21h6 J4 b! b9 ]# D
1 `9 Y6 x, w) J. f+ l) n$ H2 H
! G8 ^6 o( f: z2 jContinue: enter
3 ]6 c5 Z' |" y! n" r9 v2 E5 p4 ?. h mov dx,offset cont
% P+ o6 V1 ]. y, ?! R2 B2 P mov ah,9h- v6 W2 e* q: b$ l+ y$ f! @
int 21h
5 m4 e) c: Q: ~" P- P5 K- F/ l, _$ [ ret
7 N" ~; ^; t3 o3 l; D- }
. ~- ]( Q0 f9 o6 P' |& ljudge: mov ah,1% B0 R& v' _, ~& r2 T4 d) O5 N, c; u
int 21h$ T/ v) ^3 e1 o7 W. u+ }
or al,100000b- L' \& D" v4 G8 T
cmp al,79h
! t: u$ {7 O! I0 D je clear7 i8 l! e& }7 @
cmp al,6eh( X$ g, c1 p. Z4 S
je endj
3 Z, o6 r: ?3 k$ k4 _ jmp liang! K! I6 i# G1 u6 \; f/ M
endj: ret
$ F; U6 J+ O! r z, q% ` & l7 J2 Q: z4 C6 F! _
clear: mov bx,offset table; N# ]8 i" n1 ]! G; c+ _7 u+ E# R/ h
mov cx,300* `/ R$ S: r1 b1 `2 _
zero: mov byte ptr [bx],0( j) U+ h/ A2 o. M* O% c4 M3 D
inc bx( i( z* q- V/ a) b5 B% Z8 ~
loop zero
. R- r) F2 _2 \: _ jmp start3 N' H% o# C2 m- ]- V5 u$ \: l
* O; k6 P2 ^# F, ^" _7 b( U$ H: Z1 E
enterchar: mov ah,1
; r8 a& v2 ^& @, S; P& U int 21h+ l, c- E+ m; K
mov byte ptr [bx],al
1 }& h3 V% d6 q2 ^ cmp al,137 Z' m% w0 O& `! e2 _9 S- I
je endchar
) K" Z: \9 u, w mov di,1' c7 q. _$ z! I
inc bx
, S. t, T1 Q: o3 {7 C jmp enterchar$ }0 S1 }/ U: _, ]
1 r/ A9 |! n$ @+ i) b6 `endchar: enter
) W, o# ^( B% K8 d5 g2 E% \$ J9 Y mov byte ptr [bx],' '
/ f$ _5 r5 D4 o" O( Q) A1 t; U cmp di,0
5 |9 n" S$ r; T3 J/ w je perp
1 x1 R' w1 H; I/ J4 ?: g {! \0 N% { inc si
2 \7 m5 e+ T6 w* Q mov ax,si
( ?3 |8 W3 l6 Z" Z! x2 U) f mov dx,212 n% ]5 L0 o) ~% r; R
mul dx
+ W. ^% u# @5 H. ~ mov di,0
% p" a: Z& f0 a6 {1 o2 y mov bx,ax 2 Y: ?9 t* {5 X, x- I1 S# \+ R
jmp enterchar
) ?+ E, d. L w: b2 |. d5 l; |" _2 U1 W- J4 G) w3 n
arrange: push si
6 ?1 |9 s* y2 ^( w push cx
! \' k- ~5 c( u8 L mov cx,dx
. p% x2 u1 {; P5 j: C mov si,05 s. Q9 k# O# G) R
mov di,21
. J7 o) x- S& D5 X' @6 _: M( l! S
2 V) n4 D2 j; q) @& W5 Us1: push cx) ? f8 d/ ~0 j0 H
mov bx,0
8 u5 G; ?' i% r9 ` mov cx,20
7 o/ y* V. k0 e: S0 g4 d4 Lss1: mov al,table[si+bx]5 }* {' c! J* x, ^
cmp al, table[di+bx]$ j% D: m& O- C: z6 j$ h
ja jiao
+ Y: b% I# R4 M" J' E' l% m jb s2
9 {- y# a" M3 W" S6 p: B m7 R inc bx
9 [2 |1 ?* g5 b' W8 ^3 ^ loop ss1
+ ]% s5 N4 Z, _ a; _8 w! h8 Z jmp s2
, P9 f, K! h! O4 C% i- V9 ^! Z3 }) a6 _, w
jiao: mov bx,0 y" [1 a* s3 H, P% k$ `
mov cx,20
( `) q/ V& ?" m2 O3 S! m+ Z2 {1 _" H) ?jiao1: mov al,table[si+bx]
. U# e2 r$ b9 S- x xchg al,table[di+bx]2 c; n( q; e5 M, X& U2 a( g4 v
mov table[si+bx],al$ J9 P- f( i8 f& b- t
inc bx6 m/ e, u$ b8 U5 W, F: r
loop jiao1
9 L/ [7 u+ t( [/ E! C3 P' x7 Q: M$ L3 K: k$ A6 \
s2: add si,21
* f9 @% q# c( C2 o, _ add di,21
0 e6 L. q/ V1 q, C1 V; ^' p pop cx
' x! g- F3 x4 d" {; i3 [ loop s1$ o; j N- L2 v8 Y
" a8 }1 a7 M K- `; T' i pop cx$ [3 U! Y- h/ x: U. r) v2 T
pop si
( T/ H L7 v) q) S' c2 @9 {( R loop arrange! Z1 Z! o1 s# u, x$ d, O3 ?& J
ret
6 J% i, s" f" i( M
, B4 Z! m3 U% u+ b, z, _6 _2 Eputchar: mov bx,0
! B2 L2 }! z6 M8 ?- ?8 C: M mov di,1
: u$ ~: |+ z; u, U+ ` 6 [. j" S+ `' n0 J. @( B4 Y2 V
6 p, u. _9 {! Q; E+ I$ ?6 d
mov cx,si8 B' V! y' C( q
put1: push cx" t/ L0 k3 F5 Z+ s; R% o
push bx
$ }. s% |1 ~/ ~* `. |" M* {
+ S. f7 p; l4 z. e" b8 ]8 Y enter" N$ `3 T0 j; K$ |8 {+ R) B1 U
4 d8 N* S0 I: t. A3 A D" h mov bl,10* F, i7 q, S+ V$ } \
mov ax,di
$ ~3 G0 ?0 S6 E K) G8 F+ A- W div bl9 K# M+ u8 {; w6 d! H
mov bh,ah, f# M. S/ b1 c5 N# u4 }# D- [2 @
add bh,30h$ C+ Q# T4 I0 X, }& w
add al,30h
) I7 \( J- |. Q + r$ q/ ]: {) t% J$ W( n
mov dl,al
& l- v7 o Z& g( s' n" D mov ah,29 S; a- r; ]4 L9 _" ^3 X: ]
int 21h
: @* J% Q! J( H* N. ]0 T mov dl,bh
2 d- K$ R: ~; y3 }+ J mov ah,2( g5 D- o' V5 N' V$ m5 }# l
int 21h! O( h( B) `$ _4 G1 S3 `4 r) }3 Z
mov dl,3ah
, z% `7 D9 S9 P" a6 P4 | mov ah,2
' ~; I: Q! N- ~* k- ~. @8 b int 21h+ e- d% T' h% f8 y' }3 k
pop bx ; _3 S# n o `6 \0 u- `0 C2 r
mov cx,202 B& q9 r9 i( D( W; {, G) X6 C, _
push bx" M6 W' y [5 s
put2:
8 ^ D+ ^$ @% N! d7 a5 H( T mov dl,table[bx]6 V- P6 [( ~9 B* n2 ^2 P2 ^
mov ah,2h
1 R) E1 }$ _+ N, f2 m7 {0 T- [ int 21h
4 ?8 h, [( }7 w# X- [$ `; y 2 f! B6 \" X/ C7 {' b& n/ A
inc bx( W f* p( R2 K8 Q4 v
loop put2# t; v4 O1 Y0 q: n0 d9 ~
inc di
1 V& ~+ g! z' e- ^5 L t pop bx7 j% x; ~* ~. m; A( g( L, {
add bx,210 x" ]3 {0 O/ I
pop cx- h9 ^/ z* X3 {# _- V
9 K1 }" z' }1 F) S" ~ loop put10 Y4 k, n$ ^' w b7 |; O# a$ r
ret
( P. Q9 q3 c! G/ s& g( j
6 X5 ]& X( z: H2 U! b' vprop1:
5 \0 U+ O8 t0 l+ |; F' g mov dx,offset pro1
$ v/ Q: _" ]3 d! @ mov ah,9h
% m/ p- h# d" D int 21h
9 ?6 m; Q" o- S6 U" u2 \( m( T6 j8 p enter 8 b8 t' W, D/ q- N- ]+ o+ M: u
ret
* s) w. M! P: W7 d% G; M- }! F+ R# D$ k
prop2: enter
3 B0 W7 W. {9 J, D$ X1 Z mov dx,offset pro2" P5 B4 J, D: J: H9 Y
mov ah,9h6 v/ \7 U5 x+ ]" l
int 21h: n) F6 y. `# w2 B
ret
( f+ v0 w. h% `, _+ V- ]# {9 [8 _! ^2 b/ S6 i3 f& [
code ends
1 c/ J1 _4 {! _. j* ?( ^end start9 q3 { S" C2 \8 V' e( b
u# Z) | t8 X
9 Y8 a" |/ D' t$ \ |
|