|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
6 Y& n. P. J4 \- }; Y+ v6 l% n: b( Fenter macro
# f' k8 i( ^3 l9 E, ~" i push dx, l# u; h6 I$ z5 H% t/ ~* v; l
push ax
; V% q3 u* C+ O( B& U6 i$ P mov dl,0ah# v: F+ }4 Z1 ]9 N0 S/ C8 O
mov ah,2
; T1 a W$ E! R int 21h- ?2 I3 E0 L- H3 e; }
mov dl,0dh
( Q5 D3 {4 ^: b% p2 ?$ e& I mov ah,2 W, I v& g$ x3 n5 U
int 21h
" k2 q. v8 N& F4 ^ pop ax2 k* V* Q9 B& l y
pop dx
; q5 }) R' p6 s& ]endm8 s# s" K' d4 i
! E7 Q) s/ h+ Wassume cs:code,ds:data
$ F3 W- m- x3 X1 r7 ?! X( m, kdata segment
0 k9 z8 I$ I# g& R9 d3 K$ ytable db 300 dup(0)) l2 u) {; L: J3 |: m
pro1 db 13,10,'_________________________________________________',13,104 {1 X' C# M" F) D( k& k- V
db 'no more than 20 characters English name.',13,10' Q* ?; f( P1 P+ R- u7 z
db 'For example:',0ah,0dh,'liang xin hui',13,10# d% K4 x- V" J5 B& q
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10; m: V8 t* F1 f
db '.................................................',13,10
+ i7 Y; a; r. a1 Y u8 _/ V5 b* u db 'Please input:',13,10,'$'
; P2 L3 v3 [; u9 spro2 db '.................................................',13,10* H- s" M- F# I
db 'The results are as follows:','$'
$ L# F) B8 ]2 ^ j2 F8 k+ k
$ B0 ~( {: q Z' W& H- pcont db '________________________________________________',13,108 n/ q- N' f/ b. J+ f. M- o0 z
db 'Can You Continue(Y/N):','$'
; y( o/ ~9 B$ I9 k o5 B1 l% t$ z) {2 `" q
cp dd 50 dup(0): {2 V! P) M+ c
data ends
' X/ v: M- c5 l/ o5 H: W' i1 x5 M0 i- a" e6 X# [3 K8 ]
code segment
+ L+ i: \- w! Pstart : mov ax,data: Q, k1 f- C* z! t8 T3 F
mov ds,ax; R' s& \; U4 D; l. J P5 H7 i
call prop1+ K& r7 R' w9 U+ [! C7 a: N! D
mov bx,offset table
- w6 c f* D9 l% ~( x mov si,0+ y& h1 E e1 m2 E3 K
mov di,04 _9 z9 J4 Q; s I
' A' Z* n( ]; C& K+ z
) {7 i8 [5 T! a9 U. i( x% t: \
call enterchar0 J2 p+ z5 s- t: }
perp:
7 ~% U+ e( |+ q/ ^5 Z dec si
! n2 J& a, } \0 o& q# A: A& B7 F mov dx,si7 t1 F; J% }+ \8 E; o$ j: u
inc si 7 Q1 C1 w# }% n& L8 r
mov cx,si
) m6 u K3 W; A4 [ call arrange
9 k' [0 H5 A& ]6 ^* v+ v- M call prop2 h m, _3 O$ m! R
call putchar9 y3 L% J9 i& T8 ~/ l: k
liang:# T. l4 E. I2 y/ [% r5 m( J5 q5 I$ E
call Continue+ ^% D5 s* B9 U1 Z
call judge
3 @; W3 q9 v1 C8 e mov ax,4c00h
+ u1 N3 V1 z0 T/ K& q7 q, G: ? int 21h; C, a8 k3 f3 M& ^! f( r& W" m" B
6 E( e! E" l* L9 E/ R" d# N
( i5 |9 l X/ G0 BContinue: enter
0 e) c0 Q/ u" W7 Z0 G, a mov dx,offset cont6 E5 i5 D8 l2 w! L- X. V1 B" q0 ~8 V
mov ah,9h
( n O+ n. |7 {0 l int 21h1 M& [! P9 h; w$ A& W* g0 Z) D/ D
ret
6 Q* J5 r8 w/ I0 u% v2 [* c+ S8 ^( o2 Y; f
judge: mov ah,1
' i/ P+ J F! `6 D8 |' g int 21h
: g2 v6 P& a+ `+ s- b% S or al,100000b% P$ v# ?4 y* {
cmp al,79h
, ?+ f3 ^& z5 ~: W0 r je clear6 x( ?8 \5 c, ] v4 q
cmp al,6eh
3 I- O/ Y2 s; w/ R. C je endj- c4 J& I: M3 |. [5 T+ F0 s$ b7 J
jmp liang* j; a( @) C6 N( E( c: Q5 f6 L
endj: ret ' j P9 }. n3 @; n9 n
, |5 h* |- a6 g' H5 Lclear: mov bx,offset table
) `6 [/ r3 u( d) }+ J mov cx,300
, {1 c. x: Q4 J' g" E* | bzero: mov byte ptr [bx],0% @! m- g' J' q$ z [/ Q
inc bx
3 i: Q- A! U" b9 O loop zero
& B! Q! |! T9 r- B% m0 d jmp start+ t6 x' J5 m: R2 [$ O* m0 q
; h, M% m/ v; |$ M; i6 o
% O8 W$ t9 n3 |
enterchar: mov ah,16 G$ j! A7 V; R- y1 |7 B5 d+ i
int 21h
+ { u* k& D2 `) E1 Q mov byte ptr [bx],al ) O1 P% h8 N8 f* M( ^
cmp al,13
+ S+ B ?' A+ z je endchar " ?' f! Q" _1 A- f/ M2 f1 [
mov di,1
' V$ Q7 m. o" O2 M inc bx
7 r5 A+ ?3 [# R% t3 X jmp enterchar
7 d* \$ z; u% ]3 ^4 U. x ?2 t8 J+ A+ N, N
endchar: enter
L X1 C4 W& U- k9 _/ }, _. I& | mov byte ptr [bx],' '6 U0 s; a. ?3 z) K
cmp di,0
+ Q+ Q9 N9 a) E4 f- L) a0 J; n- r4 i je perp
5 \1 J& l2 p3 e7 ` inc si/ c! S( j: |5 H2 ^" a
mov ax,si5 u; h+ M# o/ c7 _
mov dx,21
; R9 G, s$ g$ y mul dx
' U4 J# l+ P t" _ mov di,0 k# v' k4 a# q$ W: c- H: F7 W4 I
mov bx,ax
0 ^; G* G* L x jmp enterchar
% q! h' x# z3 c! B1 P3 o* I/ R, v5 Z% t
arrange: push si3 r* u$ {! N. |5 }' Z" z( [% @
push cx
' f% E+ z; g: A4 t ^0 ?2 t0 Z mov cx,dx ( f4 l* O6 C6 }" {1 @5 ]
mov si,0! s: X3 V; S% a. @8 Q! k
mov di,21
: }) l+ _! m, c! w0 c
7 ~$ f+ k0 Z \$ V; V7 U# Ps1: push cx, L8 B$ }- w3 b' M$ m
mov bx,0+ s# i/ \: j/ @: F
mov cx,208 y. J+ ~. A9 r- j2 t
ss1: mov al,table[si+bx]
7 j# P4 J* ^* w# E cmp al, table[di+bx]
2 s# B6 a. c( E* g ja jiao8 b+ T2 E9 b% }1 i6 }6 H7 B, p: K$ V9 b
jb s2
9 I, I& q% i4 a4 o. Z8 j inc bx+ @/ `" L& R% F2 V, k) _$ w: b8 W
loop ss1* N+ U' x. ^( c( _; f; ^) g) Y
jmp s2
4 }0 [6 n& Y% L
1 l6 l, X% E0 Yjiao: mov bx,0& T1 ~ {8 W$ Q
mov cx,20
# U* q" n1 p" Q O1 i4 Y2 S# w7 I; A, Cjiao1: mov al,table[si+bx]3 k9 d' Y" h$ X7 L! U
xchg al,table[di+bx]. \# X G7 T! Z
mov table[si+bx],al
6 Q7 C: x1 d, _. Q: e o; j* W inc bx' d2 ^" n/ B4 d
loop jiao16 l0 m2 Y$ R. d; M1 |) T
# T6 n6 E: T7 t9 Vs2: add si,21
1 n, w6 s! D; c add di,21' S1 K( W W! \3 w0 y% i
pop cx
2 [* {: @0 [( |) \ loop s1
# F- q% k( V0 S. q7 e5 |0 W% o7 @5 }( B, ?- L
pop cx
8 e d4 G$ B# E$ `( \ I A) T pop si; z( [3 C( V( ]3 p, ^
loop arrange
2 t5 x8 n' d {+ B ret
% O. n( H8 o3 A' h7 y3 R# I) V) r/ C: C! S6 ?: A
putchar: mov bx,0
$ n* D$ F8 r! M- L' r& I( H, C% e' |- p mov di,18 K; P: D4 A( Q7 o$ V" m
1 |& X8 G6 s: `+ N
5 [. {$ ?, [0 P- ? mov cx,si, Q4 x- F% U/ C& f3 R9 ?3 D% E
put1: push cx1 h& N: D5 E* B8 t
push bx
+ u! h8 y; M: K0 Y0 a; U2 y6 D- o) f + F- t( E& u( ^& m9 z1 ~; x6 f1 r
enter% f- w+ S. t% g( _5 _6 e
* F% n1 P5 q2 Y! {
mov bl,109 W0 J( ]+ c/ C+ f& z3 X
mov ax,di6 ~( l; |" U: {# |2 b
div bl
' d2 [; r" o" c. a. ? mov bh,ah! Z- l! n/ K; E7 e! u
add bh,30h& A6 m; u: c5 Z4 p* s
add al,30h
) A( o: f/ w; v& n3 {* s ; _; I" U s& I9 ?* j+ p3 k1 }" X
mov dl,al |+ C3 o6 T) I4 f0 G. p) x
mov ah,2& @& M% C a! c
int 21h
0 k6 z. e2 E$ k; k ^ mov dl,bh+ O( `' j V6 u+ d5 ^
mov ah,2
" p. |$ r7 r& ] int 21h/ @- k* c& F% V8 f t
mov dl,3ah; `9 ^. X; Z, l% Q+ W* L1 G' F
mov ah,2
^7 ^7 n# z) K- q& {# x int 21h
0 ?! c: p& @& Q9 E) j pop bx
5 `" k# x( @. V% ?/ z! {0 o mov cx,20* J) q0 P, _, K9 b. ?+ f& W2 r+ n
push bx" r' Z# j+ T, K; m9 v
put2:
8 _. a6 W( ~9 F6 W) h. B) U mov dl,table[bx]" _5 v; c) R$ N, P1 M
mov ah,2h! j/ p: s3 D2 S# @$ U& X( o8 h. b
int 21h
Z2 y+ R# U! t! X6 p- o - y7 e" p/ A4 i( h9 }" R1 }1 i! A. `
inc bx% [+ C! y2 q6 a' V
loop put2* ~3 o1 s; y* f, B" s
inc di
% P9 i2 J7 N, K$ g' n pop bx
' n& _1 O4 o( N7 }9 y% j6 K add bx,211 `& J R6 Y( z8 V7 L8 i; [0 i
pop cx G- p3 j* @ M" v8 C" J* I; p% F3 I0 `
6 I) P3 Q5 G, B0 y9 C loop put1
3 g a. P: K# T/ D) N ret
E0 N6 O% x6 G: k, d2 H d4 d( X3 W( L& W! C
prop1: ! ?; Q& ]4 C: F' W
mov dx,offset pro1# O, p1 b( G7 q* g3 T0 w# u
mov ah,9h; L* l) G* }; T% E! W7 B6 r
int 21h$ P3 p% V1 \* J% J0 ~. K
enter ( f; S. \: c2 p- s& S# }0 _
ret
' z' p/ B7 X4 x' S% Y7 m1 c3 C8 A% z
; K* ?$ o9 k: q1 nprop2: enter; W8 j* s: ^& Q t+ Z6 x x
mov dx,offset pro2+ @7 i2 H" o4 B0 B8 V5 ~) T
mov ah,9h
7 t# H3 G! a$ r! A9 ~" |/ o int 21h
" O$ [5 D- Q" m6 Y4 a ret
# Y" |% {- v$ V' }: o
0 j3 k" ?- A. o( ?' scode ends$ y0 \- \1 }1 K2 r) q
end start/ W, ^1 P+ ~, p4 {% G. Q7 i W6 T/ W* I
8 w/ F9 V- H) b, M* [" E
' i- E4 Z8 `2 X+ U! H5 Q! r
|
|