|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧 D6 Q6 N0 M+ Q* ]* B+ C" i: o
enter macro
# f( @5 G: r& G [; c7 O' t6 A push dx
5 F" {) t, A0 C: L push ax/ G. G# N( C- Q$ Z
mov dl,0ah
' E0 [' y# Q2 G/ Q) \; V& G, D mov ah,2
% h7 a0 b& ~: m0 \ int 21h
( m( [ R4 F) l' X7 q mov dl,0dh3 l W6 T# J- g) x6 o5 g
mov ah,2
1 r) j# D+ x h: Y2 {/ _ int 21h/ J0 P: | d2 p
pop ax
( b" t$ R' P, F pop dx 1 `8 T$ b' G8 E
endm
( P* y4 p5 b5 N6 T2 w2 p. A
8 h$ j+ i! v+ C, X% qassume cs:code,ds:data* d! Q5 `! o" Y
data segment( @) l, Y8 p4 ?! S2 n
table db 300 dup(0)) f: \3 t3 h1 ^' ]- n: _
pro1 db 13,10,'_________________________________________________',13,108 X& Y/ j/ W& E/ Z0 i) D
db 'no more than 20 characters English name.',13,10+ D" i2 X& u, t7 k4 x! o4 j! B
db 'For example:',0ah,0dh,'liang xin hui',13,10: O" G- t( ?1 z: u
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
; [1 V% Y9 s8 b# S% _3 t db '.................................................',13,10
" U# k! a: X/ q/ J6 p, u6 c% [ db 'Please input:',13,10,'$'
& |8 Q7 m# A5 ~! M) g! w8 Q/ M8 jpro2 db '.................................................',13,10
L) F6 X( N" \1 ] db 'The results are as follows:','$'
6 r! p% U. P& r- L% @8 T; e. ~- b
cont db '________________________________________________',13,10
9 A' M0 j+ M2 N; Y db 'Can You Continue(Y/N):','$'
' z1 a- g- M1 P; d
$ y- @+ Q7 F% A) @, `/ {$ Qcp dd 50 dup(0)
/ L) l4 N; D! G3 Zdata ends
% y# d6 ]- L0 x! B" ~: F: }) Q0 Q/ ]4 a( p' O
code segment5 _9 w( d) f' d6 C9 x! C* ~
start : mov ax,data
0 B0 R: Q* K2 C$ O7 ]# a) J2 w mov ds,ax V0 a. t* {" ~$ p$ l g
call prop1
/ u3 i4 \6 w- C; ] mov bx,offset table8 n- j! x2 ]5 p, }% ^
mov si,0 r# T/ E$ b: E" [0 u
mov di,0" `4 r. i5 Q0 o' X9 B8 s
! ~7 g) d2 T3 f4 `3 F
8 \: X" K3 }) j( e+ |) k
call enterchar/ p$ k: S9 g8 u
perp: % z9 y- D2 g; q" S6 |% z
dec si
! e6 Z( H( B" Z- z- ?; r. i mov dx,si7 p9 I2 p9 p' L. a: f2 `- J
inc si p) }; n7 N) S
mov cx,si+ F U$ p e1 A6 F* U
call arrange0 V/ b2 S0 F, }
call prop2
$ ` e" C# Z+ }, S( }$ d5 R" ? call putchar1 T+ x* U6 p& {
liang:5 q; P* K0 _& @( n3 X, `
call Continue# h' [* E/ ?+ [1 B$ ?$ r' u
call judge
6 k& B+ D' A; q% W S/ {' q mov ax,4c00h2 s. J% {0 _( t ], `
int 21h
; [- A/ k' [ k$ V2 H0 U& n$ C/ e; T8 M' x
+ z& Y. ?# m9 I1 z0 [
Continue: enter! _; t {& Z+ B; e1 U
mov dx,offset cont- [) q# [# h( s) ?" Z
mov ah,9h
]( O! ]& a( M: z% [ int 21h
8 r; @7 d. R! `0 G/ L& Z4 [ ret
& I2 ?( d4 I/ I0 f( q# ^6 F' A) E! m. X$ ~* h
judge: mov ah,1
/ z+ V1 f# z, y) x3 d int 21h1 u0 @. W* O* L' n H% f4 o" Q6 f
or al,100000b) q) Y L i5 O7 c/ N5 d$ {( \
cmp al,79h
+ U' W) A# V) Y. r je clear
: o' j1 H8 s( L/ W4 N; Y cmp al,6eh4 p( N+ `+ N9 m; {8 _; x+ s' D
je endj8 c: o e$ v$ E/ N0 n9 C9 j6 {
jmp liang' W3 V, v. q3 l6 P: u" A
endj: ret
9 x3 {+ U# I5 E- o9 \ # ]' t" z6 `7 P
clear: mov bx,offset table
6 C$ x6 g- o! q! Q& ? mov cx,300) ^+ h9 x' k* p1 U3 g8 r9 a
zero: mov byte ptr [bx],0: L# A/ z n _2 P7 Y4 w5 j3 M
inc bx; H ]1 t) h8 A$ N5 H% G
loop zero5 M+ I! L! t) H; y& M8 ~
jmp start3 U2 V! Q, l5 h2 a* {
h# y( K# @! ^' S' D- Z. }
& T+ b5 a% \ S# benterchar: mov ah,1
/ n2 ?4 p4 ]' G+ j int 21h, N0 y0 b! W. ^' x% F
mov byte ptr [bx],al ! T @( q! Y" M. Q% q9 u
cmp al,13
2 X; d9 R4 p) ^' U& u je endchar 9 _0 S4 _. y, b' \9 `
mov di,1
! i4 z+ M! b$ u$ [8 r. ? inc bx) ?9 w) ~7 w4 ]# X7 [4 F
jmp enterchar
+ B: O/ k. y( K6 c) r' h8 @6 J- i' M& g. K' M: l' X
endchar: enter " r; E" H- V, J+ Q# ?
mov byte ptr [bx],' '' h. B# e1 E. M, G$ B' d# `
cmp di,0
: B$ H3 h+ |8 D, {/ r H$ j @/ T je perp
9 C+ i f, w% t) D ~ inc si
I7 P- h+ C5 O B mov ax,si
/ a: b. b$ r$ j3 l mov dx,21
' H& E! Y4 u; F2 } mul dx0 L: y! l" f% e( }4 {) N1 ]
mov di,0
8 N* X/ A& i* h! J mov bx,ax . O& P. d- N: z" Y% A! d* B- E
jmp enterchar5 o% G# [( l4 I9 N; U1 R% u
) x6 \5 l' l: k% T ~
arrange: push si& c# w( \( e; E
push cx
. U6 Y* f0 w0 c0 ~6 G8 ]* t mov cx,dx
# p8 r* V+ A; V8 A mov si,0
6 R. G4 S4 ~0 l5 C# X9 {% z mov di,21
# w+ A. C* h! V
+ w% i: J6 R6 y& v: [. B* Vs1: push cx6 C8 L6 R$ q4 J9 f% e
mov bx,00 v& ~" ?+ t, h+ m# ]0 s
mov cx,20 ]0 E2 D& z% z, R
ss1: mov al,table[si+bx]6 \, N0 Z. l- F' k- v0 S# D! |
cmp al, table[di+bx]
1 e/ |8 D5 Y6 y$ P6 | ja jiao
/ A2 o1 x# _! Y1 M( `% l jb s2* N0 K# g5 i5 U5 v
inc bx' Z$ T3 H7 a. ?; O4 f$ u
loop ss12 X- T: _2 Q7 Y
jmp s2
. ~/ y: l6 h1 J9 f& [' F0 \
0 X( Y$ E$ R y' Z: }8 b% {jiao: mov bx,0+ B% h1 |' ?5 h' Q5 E+ Z2 Z& d5 p& W
mov cx,20
% d9 ~6 e! u9 C$ d. m, M5 zjiao1: mov al,table[si+bx]! m z+ |3 }0 k+ i4 m+ V3 p( l
xchg al,table[di+bx]
0 V+ z4 Y& u; N) R) p0 s9 T. g mov table[si+bx],al# {! Z, J( ~7 s% M2 E2 Y) w
inc bx' G# r5 }3 E0 b1 D
loop jiao1
" ]5 B3 W( u# o; s& f+ T/ D7 _2 S. x7 n) {
s2: add si,21' G4 H c0 Y# a b
add di,21) ` D3 j% D5 v; Q
pop cx
. G5 Y2 Z7 n! r. R/ V7 ^ loop s1
- R& x3 }8 t- f+ s( ~6 U1 S! m$ r3 q/ I+ d C8 t1 o1 v
pop cx
+ w" ?9 t" b2 A( {$ R0 R( {& E! O pop si% u& X" i: i8 P9 h4 B
loop arrange: s+ g2 E/ H2 W- s" |( T3 w: m
ret
* H1 z0 l" _, ? Z; K, h
, Q9 I, |1 i. V2 q0 s* I* qputchar: mov bx,0
! I4 N, R, v, j/ s3 ? mov di,1
/ ?1 |& |( Z# i. t' F4 C 1 K% t. x4 E% r
5 O1 Q+ a' W( C. o0 N
mov cx,si: ?+ p6 _! t1 z$ [' C* x9 @* B& y! B2 J
put1: push cx
/ z, I# `! m7 j: P9 |$ u push bx- i( ~0 Y0 Q& q* x; C, U
' z3 i% t+ T3 I% S2 o
enter- z; j' I9 W3 L( Y
- \/ }, M* h0 `: M& u2 g9 [+ Z mov bl,103 i7 `* P( W7 j! A/ J4 W* Z) h
mov ax,di
0 x7 _8 M5 r- r/ c5 j [! M div bl
6 R+ h* n B; M) q, ]' n% S0 r, D mov bh,ah
) Y! b c: l' a# ?6 ^( n# U add bh,30h
3 f. i: F7 i: m( G# e5 Z add al,30h
; E- ^$ G- t+ e) }0 X . n1 y5 D A# t( M# q
mov dl,al
$ x" j, \+ p! d% h: K9 M4 g ] mov ah,2( j3 l g5 s, L; d& y6 i9 I
int 21h# L" z g n) l4 h; Z4 L
mov dl,bh2 E- B2 v V6 ?: h9 ?" y2 S" a: e
mov ah,2& |5 K( I/ P$ g: X$ e9 A' y- R
int 21h
* d/ v7 |2 |! c6 h; y. ]. P$ h mov dl,3ah- I9 D) _: e" l$ J( ]' D; M
mov ah,2/ v2 I- H* R; W' L7 O! H
int 21h. \/ V: d& C: c% p$ R5 [
pop bx $ Y8 A1 N6 R6 H) _" _4 {" u+ S s# _
mov cx,20
/ q3 d" Q0 A1 v% x- ~ push bx
9 z1 ^3 o! u7 r- d& Q3 Kput2:
, Z% n! {' v. S mov dl,table[bx]& n9 K$ { s( @# A
mov ah,2h
# S6 y7 o6 Z( H$ s: H% Y: b int 21h3 t7 E' z, e1 E/ ]7 V
r% j1 J' m" b2 k- F
inc bx
$ G( G- I0 ], ? R' f9 c7 J6 J loop put2- X2 h* E4 X$ a: {; E
inc di
: |+ c/ @: x/ u) y: o; @) D6 d/ ^ pop bx8 R. y$ I( S# R8 n0 O& N
add bx,21
: t1 K, Q/ M( W: X% ?0 y pop cx
- f, y3 i4 U( m: i( i+ A 6 e/ Q. p8 O! o# p
loop put19 \2 H9 S J0 P) @6 A" P ^
ret
: _ Y6 h3 Q- ?
3 R9 X4 b( C3 f0 j' z' q# m) Bprop1: 6 ]4 Q) k' j# R& w- ~" u
mov dx,offset pro1
1 e9 R5 a4 ]2 J9 l# @ mov ah,9h
( o& J( Y0 o4 t1 u int 21h
9 L7 O& e: }. e9 [ enter + B, V$ _% B3 N A2 ]
ret) }( ]( g9 H' q
% x: s, P. M+ rprop2: enter
! i" w% w5 P" f- n$ m mov dx,offset pro27 Y2 d4 U- g; Y% f, i
mov ah,9h. G0 S7 J4 ^, n# e9 c
int 21h
. I1 n5 B% N. p* j8 v ret
2 I, k% l2 J) j: N; E( ~: a3 N; W. G: `: H, |5 H
code ends7 |* {& z; ^! c& p' ~
end start
( n' f! Q3 g2 k6 i. s. ^& C) u
1 U4 t7 {, E% A5 ?9 u7 b' r+ [3 `, `9 d0 f! h' t. K0 n) j
|
|