|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧0 V7 ]: W9 D+ b1 t& X8 i
enter macro- z; C: {) `: F8 q$ H1 T) C
push dx7 `8 Q. f, [3 G V& q4 a
push ax8 P/ h# e/ c; \' ]) H) E
mov dl,0ah! D& D( j N) I+ c; @7 ^
mov ah,24 d; G! l6 i; u' E
int 21h! l% \$ ]5 v8 Z$ z# D& }8 t% W- K
mov dl,0dh1 X& t, H( K& s/ C! r3 ?3 \; I
mov ah,2
" f: I( J; [) v) _! ~% Z% z int 21h
- R6 Q; v, Q: h N pop ax' C6 Q& T6 g, ~' m
pop dx 3 o3 [3 c; _$ p8 q
endm6 f- @9 a' J) J3 Y, |' l# S' p. e
+ O1 k6 i- L; e! x! fassume cs:code,ds:data0 A; L, y' S0 e0 i: O6 X
data segment/ j9 }* b5 p% Q9 F2 c6 {8 f. R
table db 300 dup(0)
( C7 U7 V- a) }0 vpro1 db 13,10,'_________________________________________________',13,10
" N- } X5 Y. W% C, o; l db 'no more than 20 characters English name.',13,100 \9 @. B2 \4 p* H
db 'For example:',0ah,0dh,'liang xin hui',13,10
1 w8 G3 q# L b4 W$ J: X2 ~# k H db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
9 R5 K% x4 {; X4 r2 c db '.................................................',13,101 g. O. q- O2 y% Q( o
db 'Please input:',13,10,'$'
3 `# b0 m i1 k& u3 p; Ppro2 db '.................................................',13,10
# v: _* N. C% @( S$ d db 'The results are as follows:','$'
: @ i# s6 d% t" P; C5 q+ N% F/ O& y, L% F2 a$ q) J+ }: X" V) n+ v
cont db '________________________________________________',13,10
: V0 Z! p1 a# B db 'Can You Continue(Y/N):','$'
/ ~) R2 u9 F, E* ~' {% X* I
5 u9 _. E) p; V1 q8 v. o+ ucp dd 50 dup(0)
, B8 O2 X# J7 |6 A5 M& g7 Zdata ends9 Q* s6 R! H1 E% n* v- X& e4 O) P5 H
4 G: ^ B5 y+ Ycode segment
& }& `- S3 X$ f1 ~start : mov ax,data0 {3 ]0 {; M/ [/ a* _6 z
mov ds,ax- k( ^4 ]/ f& Q
call prop1% u% x |1 H+ @: N$ K) \: Z
mov bx,offset table
@/ Q, g4 q: w0 ]1 ` mov si,02 s+ |9 G, H/ O( p
mov di,0
5 T) M$ T# r4 i) h % l7 G2 w9 v4 }2 u
: @4 w f) m5 w4 k! r& ]. J( y, G6 U call enterchar! i, r7 O8 H7 o( v% l" m5 v' i- ^
perp:
1 z; H$ e% d- C" `# d* k dec si6 K3 U# \( n5 K3 G: K4 d
mov dx,si( Z( v/ F4 G% h
inc si 9 L3 S% `. R7 M* Y
mov cx,si
$ u0 s3 h! N9 B# t8 a; W6 ] call arrange) C* `# Q7 l: i( p. O" U
call prop2
) ]/ j/ w( h- c* _3 n/ { call putchar: N- N; \- `8 y* `7 w. H
liang:
# K+ s. E* ^& t i call Continue6 O, {4 G3 C3 z
call judge
& a4 g% ]9 V9 M- z/ r T7 \ mov ax,4c00h
. F+ T2 e' i8 y1 L ~9 X int 21h
1 P- Z' }4 ~ H* v- @
$ U+ P- s6 S2 T8 J( I. J
2 a( g6 w7 |8 u) ~ t1 h# o- P0 W; q8 UContinue: enter* O1 Y( u( g) g3 [- j
mov dx,offset cont
j; Y# ^& D& Y; g) |3 n2 V, K: b mov ah,9h1 C0 v: j7 e7 c3 g$ \) V
int 21h5 V, b' w- _+ [- y9 ^$ K$ X
ret 8 F+ f% r" C6 g+ [
; s Q' ?- n! M& b+ A: V
judge: mov ah,1
1 D, ?: t" {# z int 21h3 g% J! _& n7 H8 i# M) d7 u8 {
or al,100000b3 d" s) u7 ?- ~. i. J
cmp al,79h
; P, |- e- G4 v$ v je clear+ g/ r# R, |6 a6 P1 R' }
cmp al,6eh
9 w4 D8 S! f( ^6 l/ j; R je endj3 ?5 U3 d( z e( t3 h- _$ p8 f( s
jmp liang
- R c- _: V. W3 A) Hendj: ret / s$ Z% S2 q4 b3 j1 p2 l/ V0 v0 o4 ^
( A; m: U7 p$ E2 u) n2 ]7 P/ D* ?$ }
clear: mov bx,offset table; l" j5 b/ p5 p/ @1 E
mov cx,300/ }- t* P' @/ R) G
zero: mov byte ptr [bx],0
0 ~4 T# d% B( X, E1 ` inc bx
% y0 E: K5 ^9 \7 ]4 { loop zero! d% [% U; s2 H' C
jmp start& p1 D+ J3 ]: W- d7 L8 @6 z/ A) B
) T9 ^$ q, k# s U. t Z, K' W* O
' Q/ b$ d1 M( `/ R$ [, x6 Ienterchar: mov ah,1
+ l- o1 Z" m9 N9 @, y) U int 21h! ]& i: G1 q6 H) x2 p+ k) G
mov byte ptr [bx],al
6 D u n s# p; R: g, X cmp al,13. c; v, V# s. \
je endchar
8 U3 U9 g0 f! B8 Q+ ^/ M3 W% M8 v7 n mov di,1
& P) G1 O! [/ x' h$ N; n6 V w inc bx" w, G' `- n: ?( Q/ z
jmp enterchar
3 i# f O3 P; j# j8 j7 M" N
1 z# R7 `- T' oendchar: enter
. Y6 D: [+ `1 f mov byte ptr [bx],' '. s* p* |+ h- P2 {* H, j1 R
cmp di,0( b- e3 ^/ _) ^9 n' X7 p/ L
je perp
+ z- W- W$ B% f: P' J, l; e inc si+ M6 V3 q% q0 o4 v* d; C+ G
mov ax,si" Q# w, F$ v! ?3 W& r
mov dx,21
" z9 B" ]/ L: b4 i3 o mul dx4 F$ v+ W( _5 m- v3 Z. f/ x1 e
mov di,0
$ n8 D9 W1 ?8 z. G mov bx,ax , J5 }, r; ], }/ W* i; B- E
jmp enterchar( t! }1 P* S3 V! f1 m; k
Z s( @& {/ G2 sarrange: push si
6 T0 |% F+ ^8 e push cx
3 i) ?: r' P' w0 d3 ]( _ mov cx,dx # t5 c3 p0 ~# c+ |8 g' z- d1 p2 I0 g
mov si,0
1 w1 }0 A- A: n8 [8 i mov di,21
3 U4 M& h2 B* ?, Y6 V
8 a' V5 X8 U9 Y( s& X! ? A0 }s1: push cx
* X" V3 F- u; b r; S3 K mov bx,0) _# K/ l: l5 o5 R1 d' q
mov cx,20
! ^( Y% H: l/ T8 l# T Css1: mov al,table[si+bx]
. b, i8 |. k, i* H- K( Y cmp al, table[di+bx]) [$ {" ^8 \1 |
ja jiao
" e4 p4 q& R, F+ I jb s2
5 b6 l5 ~" e/ D6 w$ G; F3 q inc bx( A6 {" ~; V2 Q/ b/ E
loop ss11 b) a- q* P+ R+ D8 w' _
jmp s2
% ]" k1 I; R; M/ i; G, H' O, I4 ^: \8 c' Q; ^2 c
jiao: mov bx,0
2 w. ` f' C& Y% S5 w4 q mov cx,20
: R) O) O0 i. j1 c* y+ Ujiao1: mov al,table[si+bx]; v7 ~$ I# h! A
xchg al,table[di+bx]8 t/ Y7 r# Y) {% f4 o
mov table[si+bx],al* ^3 g* ^# P* K0 n; X0 o
inc bx6 Q$ e! C+ n9 F. q+ _ x3 D- R1 B
loop jiao1
* ^+ h; {3 m% e" T; D3 e5 c; k+ }4 j7 l
s2: add si,21" m2 k- u) d) K# n" `
add di,21
8 Z( q7 n8 L6 ~ pop cx; Q! L& s- }; C6 }% y' U4 E
loop s1
9 H5 S# |& L0 P S- E0 Z; ~
* v& |5 i; r8 E pop cx
# \4 A5 y3 u. H) T pop si4 A8 H7 ?5 g- i3 g+ h6 D V
loop arrange
' B t. k2 F" G6 A1 }! a ret _9 h. f* q( E; o* u0 U
0 [* R/ g7 |# ]9 A3 c* [
putchar: mov bx,0: w8 b4 m( E1 M! ~: D
mov di,1
" l, q3 ?: H' f7 s7 B ' q$ P6 X7 [! Y; n3 @2 J
! B1 P6 N- r& f1 l5 ]
mov cx,si/ x/ V1 G1 X# _. X0 ~0 H% F
put1: push cx4 l7 d' B7 p" W" b6 a
push bx/ n, J- j$ t* r. |6 C: u" a+ M/ e0 _
/ T9 `! V Q7 M \1 O- v Z enter" T: {+ `) t+ h: _* m
- c! f9 s* G% P3 ^* m
mov bl,10
; U. e" h8 [6 T+ i# Z6 r& O mov ax,di
7 o1 Y5 K+ S! e3 L3 E/ \ div bl6 b) H; V2 A* g5 F
mov bh,ah
: O) n; t" e% s add bh,30h
$ y' X# r" h' j" c add al,30h6 {5 i( C9 I# {1 [. y$ J/ }
8 |, B) ~* j: `' y1 H! D+ ^; S. [ mov dl,al
6 j+ y( N5 @% Q4 ~. v8 ~4 v" c mov ah,2
0 ~( x, q$ {2 u" h; J int 21h! D3 v# l1 l6 ]( k
mov dl,bh7 k- {9 Y w8 m0 } f/ j6 |+ V
mov ah,2
7 ^, H7 x, c* X int 21h) T( R- Q! ~8 F: h
mov dl,3ah( n0 H6 r% a% E- e8 {& [: @3 j6 e3 u/ J
mov ah,2, K1 U! K/ t- A- c& c: N2 x0 z6 C7 N
int 21h
! v) R" r4 Y. E9 }. Z( S: j pop bx , R4 i3 E/ N7 g( l" ~: M4 d) R- ^
mov cx,20; H5 H% o- | }) S4 N; d
push bx# `& ~/ N. T, n Y- K
put2: ( U$ M, t' }8 `( Y; j% c
mov dl,table[bx]. ]* Q: o+ l1 l# r$ D
mov ah,2h
7 q2 i4 i6 Y; J8 }) V9 d1 n- d int 21h
9 g3 W9 z: b# Y4 k 1 k) o) ^6 f6 s( R( A% u( Y
inc bx/ h4 E" M3 N+ d& Z, T3 D6 d3 R+ l
loop put2
% g8 N/ d! ~- P: }) x$ P' d inc di
7 N* g& v& |; e5 {! N: D$ j pop bx
" ]8 k9 j- {, m8 l7 F) z add bx,21; D$ I! _! Q. F" ]3 L
pop cx7 t G0 [# F; v- Z) c
2 q& w8 `8 B# C6 \+ [
loop put1
8 R- i; I- n( E/ O: O ret* |4 [ L6 a# _! u" X4 F
' E1 ~% b2 D9 uprop1:
N0 l. c* @5 p mov dx,offset pro1
' S3 ~) }6 z2 Y1 r6 a2 W3 d8 K( E7 e mov ah,9h
9 B7 t7 T3 z, N3 R int 21h4 @5 e$ r4 v9 b+ |
enter
0 H3 ?, w3 G% c5 @ ret
; l, E1 C$ [. L: L# H( k0 [7 i* k* n+ K3 V
prop2: enter; v2 |5 K. o3 L) G6 _8 I( }
mov dx,offset pro2
& H. W9 f* B$ S7 u R! Y4 g+ L9 ] mov ah,9h: I) g- m0 B: C+ F+ M+ X# T
int 21h
% s( ?; j, h2 l. q ret
0 g, o8 L# O2 d" Y7 p( g% h2 Z, m6 m J- J8 q' O5 a6 P' ]
code ends" }8 b% G* V% z E& l# i5 m- Q m
end start
- \: |3 K k: [3 t7 m, Q U
5 v' j$ z- E! h: Q H* c$ K
1 O& j d, r! z: F |
|