|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
" Q0 ^8 W0 B& \3 D; S% B( Kenter macro
5 @# Q# @3 b }* o5 } push dx
6 t/ @8 D4 _8 N( s0 h- T push ax' M0 m$ X4 l0 t4 w _7 G2 @
mov dl,0ah* l9 Z& p% I, `+ G: z% }
mov ah,2
9 o [- y/ J" j5 |5 `1 M int 21h
9 y) |1 [: l0 r. q5 Q9 O( r mov dl,0dh
2 |: \) s/ S6 d0 K. N mov ah,2! f$ V; }9 f+ P7 f, k4 Y
int 21h
8 h6 r7 H: d! ]/ @ pop ax7 T" W% N; Y1 B4 q, m( L
pop dx
( T" [% |5 ] s% Qendm
* Z+ F. }: ?" F' Z
- ?$ @3 x6 N4 _5 t" massume cs:code,ds:data
6 N/ k, z7 y4 H' M Ldata segment9 J7 \8 |( j- s& i6 B- p- g9 J: p3 l
table db 300 dup(0)# d( {9 f' E# x" V6 N4 s
pro1 db 13,10,'_________________________________________________',13,104 x8 d* p! {; F3 J5 P( C# G
db 'no more than 20 characters English name.',13,10- M# M' Q* n$ r3 _2 Z9 k' n
db 'For example:',0ah,0dh,'liang xin hui',13,10
2 _* c' t: R9 |( f7 C db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10/ Q: I- A. P" T/ a% d# ^4 n
db '.................................................',13,109 F0 A, H6 O/ R3 P& @$ j
db 'Please input:',13,10,'$'
% f4 W6 A" x3 o. _pro2 db '.................................................',13,10
9 @2 C9 H" P. E6 L db 'The results are as follows:','$'+ v5 [, R8 i0 ?' x: t# e% `
( m& h _# }1 x; ~8 Icont db '________________________________________________',13,105 a" i- T: k: J/ W
db 'Can You Continue(Y/N):','$', ?; h S2 s! Z! i
2 V R: C: g1 @9 T: V% ~2 `0 ~
cp dd 50 dup(0)& F# }; f7 v6 K/ ]+ t
data ends
* W4 x5 ]$ x; e( N/ ]+ H2 z. G0 t! r4 U$ I: q
code segment
/ Z V& ~6 n9 U* F' N. f- Y+ _start : mov ax,data
9 x* s U5 f8 V mov ds,ax: ^8 b2 g$ j1 k5 R0 x4 ~$ R) V
call prop1
2 Z3 Y' p! ]! B; O mov bx,offset table
% K$ u2 {9 d" ]# P+ W# x' [5 M. @) i mov si,0
5 a. t; F. Y. |' |% V mov di,04 N( {+ ?0 o* n$ D9 u# q$ z2 D
: m1 ^. b5 t3 j' K! `$ ^4 ]
T4 G5 c& g" z* ?/ H; Q3 X4 L
call enterchar
5 c4 V: a) c8 I# c/ W2 e# Rperp:
* f6 H+ g" u* H dec si* b; K: g8 \; @
mov dx,si; L9 a7 i2 Y8 k) N$ d- w
inc si - G S I, ?! ` s0 |
mov cx,si3 Y9 c0 ?) |+ F- E; V1 p
call arrange
6 l0 F& J) o' Z4 q1 U& K; C call prop2
. M1 J- v1 y1 s8 K7 i& V call putchar
2 `# ~" F# g1 V- @# n; gliang:
, j4 z/ ?5 ?9 Y$ i D1 X call Continue
: \- i! w4 C' {& F, h1 N call judge
9 x- Y$ \& H1 [' |+ ?) X+ n mov ax,4c00h
+ I4 O# N8 d- C/ W) i7 D int 21h; D5 r9 K; o! ?) V
; w8 h* s. }; Z- E( {) I- x
3 x. r- I1 r4 H, d6 X; V
Continue: enter P! n1 b& i+ t2 e* u- @) Z5 d8 q& E
mov dx,offset cont. g2 d) W6 p' R" o" f, \1 d- X Y
mov ah,9h
* B8 i8 M6 K8 |7 ^ X0 E/ V int 21h, ~1 ?) Y5 y" q. E# B3 o! S3 r
ret
- Y& k! x7 I% c3 S, H: Y) a- k( ?) I4 S# m( }0 R/ M ]7 R
judge: mov ah,1
' z5 S2 C) p& {& p) b int 21h
3 T1 p: ~. o/ I or al,100000b* Q6 n4 i7 G$ \5 P! K) d: T
cmp al,79h5 u* o2 G( g' U* t9 [
je clear
. p% B# ^1 H- E! [7 f5 |) Z cmp al,6eh V( M2 `; _6 w q! M1 r
je endj
% l4 K. I, Y$ P2 l$ P jmp liang# d$ G) I5 q, U, Z
endj: ret $ j* `5 d \! X/ D; N
9 Q, I' E4 p7 D# mclear: mov bx,offset table; u$ |; j- i+ i! ^3 l, o) g
mov cx,300
7 y; r, e/ ~5 Bzero: mov byte ptr [bx],0
" i) G* I( L3 ^ inc bx
9 O b" b7 S( q4 [" W! _+ d# n loop zero
! a& M! H& V# s8 p9 v jmp start( t1 b0 N( H6 u# z
* G) U3 o5 H0 Y( B! p8 }+ u
! M+ ^6 C+ d' O) `; B( }. V
enterchar: mov ah,1
3 g! @: I' m) t; A: ^ int 21h
. Z( }; ~. D8 {( r3 q7 @ mov byte ptr [bx],al ; F! p L3 Z7 c* } y# @+ ]
cmp al,13 P x/ f3 l* u/ `7 E
je endchar 0 b5 d8 Y% M _9 F4 \
mov di,18 Y0 G' P2 l5 P) v$ R2 @' G& f4 x
inc bx: P# ~7 T8 y/ @
jmp enterchar
9 s$ c% W' M7 d# R( q% c& m7 R$ o! k4 [0 V2 E2 ]1 U+ R- l
endchar: enter ! z% z. O! s8 E3 ]
mov byte ptr [bx],' '* p8 j+ i. Y6 |+ |9 q
cmp di,0
/ V# }% H! W% Y9 o" U$ L7 T je perp6 N: p+ y/ |; Q0 @ g
inc si
, q& J" v+ ^; P/ S1 N* Q6 ^% N2 `( t mov ax,si
$ s8 H$ r r3 x( F- V$ r' [ mov dx,218 n: h; _' Y" D$ z$ |! q
mul dx
9 r# Q2 n3 s D& T mov di,0
! _2 w8 r. g! x9 @ mov bx,ax 5 e6 i- L8 } R' f+ a8 a& i1 S, }
jmp enterchar
- V4 q) U# K* V: J! H" e* j7 w0 X% }
arrange: push si
3 _4 R4 K' {8 }! | push cx
; c" l1 y# l& o0 `& J( H3 a# n& M mov cx,dx 0 a, Z" D; U, S e8 H: f
mov si,05 X& q d, D% u7 ^# c+ l* x+ ~8 i8 N
mov di,21/ c+ I2 y% V' l* |2 l
" M4 S) Q# h; c8 Y) A. as1: push cx
% K+ h/ S. a+ } C. \2 Y mov bx,0
$ {3 t# C& I# E; ^- R# |/ z mov cx,20
4 p+ }; w& {& Y) c# i, e% `7 ^ss1: mov al,table[si+bx]
. L0 O/ b; a5 R cmp al, table[di+bx]( {0 B( c6 E4 ]! W X1 d6 T
ja jiao
6 P5 I2 Z7 }: d9 {1 b) t% W jb s2
7 l ^+ E" B* P- o5 W3 t inc bx+ R5 w7 T( @+ S/ \' E6 m
loop ss1: r3 A: S$ ~9 _ C7 t; U; L! t
jmp s2, l0 L0 q; z, J, g; I% r: F, W& a
; `- K( j0 h: y4 r S0 v
jiao: mov bx,0" Y/ i& O" o8 j2 z: a& y' U- j
mov cx,20/ U# L- @, y8 {' W; m
jiao1: mov al,table[si+bx]
& O3 a I# W \6 Y8 Z xchg al,table[di+bx]
8 A2 }' u& a2 S mov table[si+bx],al p) k* n& y( Z; s6 z( @
inc bx
9 h) n' K2 y$ H- Y" P/ V loop jiao1
* R. H+ p, ~( U! ?- `, H, `; R5 Y& \$ u, { O0 H3 O9 g/ C% |
s2: add si,21
" [" g0 M2 Y8 g4 Z* d! _ add di,210 B6 X- \# T9 Q3 |
pop cx9 ~) S1 |- n/ C0 \ Q1 {. T
loop s13 y' Z2 A# Q( `- L& V* g& Z
, F0 A' g3 Y) Y3 @" \5 M
pop cx
- Q8 G) \/ e# J pop si" |. ^( C0 P+ D8 p: ]6 _; I% G, G4 T
loop arrange
" n5 i/ ^, T/ @4 a7 C. x ret
) U' G1 R8 ?& G. ?3 b( ^
: U% R5 S" u# L( E1 Nputchar: mov bx,0
+ y6 `; Y0 T7 R6 T. ]! {( Y: } mov di,1, y# E ~1 O t* V Q9 M: K
0 r! l1 b+ `/ \1 R# L; q7 Y V& t3 F
+ P, L* n, U( G
mov cx,si, E& |& @& p- z9 p* [; w
put1: push cx
( j% [) z4 D& a push bx
4 K5 j ]8 A+ k4 w- w* j8 X * ~/ F6 j0 R9 \2 L) w' H
enter* ~! N- H3 G- @
5 \3 ?5 u* G5 I5 {9 N! L, M$ `+ R+ u mov bl,10
N0 C3 x% S! J- n0 J2 f4 q- Z8 E mov ax,di
: B; j% V: F, T. v( O* G( Y H div bl( O( u; s+ ?1 a: L
mov bh,ah6 I/ V ?& K" X4 p
add bh,30h
8 I0 Q0 v5 M) c# a! y7 f add al,30h2 e S* |( F4 P* O5 e' A! M0 N! E
8 Y+ ?1 \* {6 M+ j/ a" N& M
mov dl,al/ s8 o* x0 _2 t( W
mov ah,20 W+ a Z. }. O. S* A3 `
int 21h" u& g4 Q3 F7 H
mov dl,bh
& r$ d- I! j( {, @7 ^ mov ah,23 V) v5 c4 B+ ~+ c% t/ p p
int 21h& X r. b) Y; ]/ T( a _/ b* N
mov dl,3ah
# y: Q: W6 b+ ^1 f7 T mov ah,2
$ m' g' V7 m N6 `. x, {5 t int 21h
. I% f0 H% P0 `/ O pop bx 9 N! t$ d) i* V* W8 K6 q# i/ U/ }3 }
mov cx,201 G8 `9 C' j; r& e7 v% Y) W4 |. o
push bx: X; l) n/ k) W' ]' u/ S" |
put2: 4 T& t: b/ W% J* a, Q
mov dl,table[bx]
4 Y6 `* c* B' b, u. d0 x mov ah,2h
; g- _/ h& c" q- Y0 x4 H int 21h
1 R% b1 ?! G9 ]5 h 1 s+ z, Q& M3 ^' ^' P/ i
inc bx' d6 ^$ M% d+ J
loop put2/ [- ^ _/ N8 F
inc di
+ i* c9 b1 E9 H, o4 w pop bx
9 \1 {6 O7 X( e4 V6 F9 ^: n add bx,21
! E9 e- M3 p( s2 E1 S# @) [; L pop cx, g+ @9 P+ R6 l" h: f
/ j! n s6 I" r+ @& D* `7 n) m" W loop put1
' @7 A4 M8 c2 b5 D% H ret
; l% z7 k( j/ i2 O. C
1 S9 |! }) L, \+ D% O) v0 _prop1: $ g8 ^8 D0 K8 c' b& V4 e1 J0 g5 {
mov dx,offset pro1
8 i# s. `1 j+ o+ N mov ah,9h
- V# M2 l! {: j) e1 h. u* K int 21h" z7 L2 u3 h; C9 V3 c% \. ]4 ?
enter
: u8 {2 Q9 p, } ret" `! q1 z0 Z+ |
2 j& l! ]# b0 R! e! Z4 n, Rprop2: enter
- f; ` I5 u4 @0 N1 A& [0 C6 e% @ mov dx,offset pro2" x$ S( @# d% L3 b8 Y
mov ah,9h
, U; h0 u+ i& q8 m0 B: M int 21h
9 V& q. f9 n" y: T/ Y ret' w* @0 I N# C3 U% D
" l# Z5 ?) R6 L( Q: G$ Q2 G# u3 S
code ends# P, ]6 E* K% g, x4 C
end start
1 m1 b5 O# l9 z- W* P
2 b! t' O( b- M7 \
* n( z1 _; @3 [! S3 U9 W1 U |
|