|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
8 t+ w! K% |, P1 g& A+ |8 Genter macro
2 d: F5 C* P6 H" ^* k6 a) U push dx
$ _1 f- u/ p# L$ u% i push ax" W( r" ^- e% o4 B5 V& ^. U
mov dl,0ah
+ L% Q2 y+ K u, z/ T mov ah,2
! C' f/ n1 g. ?- D& U" R0 b int 21h
. h1 k7 i2 `3 s0 B3 y mov dl,0dh
: q+ ^2 [3 o) `3 Y4 t mov ah,2
% q1 }: `& X7 v4 L/ x% [) z8 j int 21h
$ o- i+ `' t" e/ z( o2 } pop ax! H; r# V# Q& N
pop dx
" o" n4 u9 b& k$ qendm9 A! p. g$ w& r$ C, g
7 D( g. M: l3 Y8 d
assume cs:code,ds:data
2 H0 z* b! @: \0 n& t" r: O7 Adata segment9 b8 m8 K& C" c8 Z
table db 300 dup(0)
% r q2 Z7 Q7 dpro1 db 13,10,'_________________________________________________',13,104 G! }4 r6 J/ s+ c
db 'no more than 20 characters English name.',13,10# B3 A. u4 {" z8 \
db 'For example:',0ah,0dh,'liang xin hui',13,10
( A7 T, q( y* \' X' ^ db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
7 _. s* e" c% Q4 U" }6 k F db '.................................................',13,101 F6 J- @) s5 Q8 w- t5 s: c8 w3 G
db 'Please input:',13,10,'$'
( f" ?+ c( q# u* Z* {7 Npro2 db '.................................................',13,10
- Q/ M( z( p2 Y8 R7 T$ S0 j db 'The results are as follows:','$'
8 i+ {6 P* V R& |; q8 B" b, B# r' h2 h% R0 m& ]& P8 q
cont db '________________________________________________',13,10
9 p- c* l+ s/ W* Y db 'Can You Continue(Y/N):','$'5 a e2 u+ m* O: A; I
1 A* b, ^( N( Ycp dd 50 dup(0)
7 q. s9 m/ {2 H+ Pdata ends% A( T; P. ?5 `% `' S0 h
- i& E/ e+ |9 u( G
code segment
; M$ n& W+ q& M P$ q1 j0 ]: u6 Jstart : mov ax,data9 O/ G& e- [4 a8 P7 B, ?5 D$ p
mov ds,ax
5 x3 a2 z) m. s9 P# U K3 ~4 S call prop1
7 j& X9 a2 [) Q/ r1 G: ] mov bx,offset table& F& w8 k: y- s
mov si,0
7 R' m' f6 W. o9 `6 L- p mov di,04 J. ^' p0 \5 {4 t e l, h
: }2 f7 v# m6 o0 v/ {0 m0 S5 p # A) {0 }6 k ?" k% Y Y
call enterchar0 Y/ D8 V$ Q# j
perp: % E5 ~4 j1 T" B/ l
dec si9 `1 c8 H5 p: A
mov dx,si/ j4 R; x8 }# |, v c' W
inc si 8 U2 T b( B) l' d+ x& {
mov cx,si
$ C3 c5 u5 r; M0 _3 u0 J call arrange4 A: N) w5 K( e0 y8 ?* ^# O
call prop2
8 P9 c/ `7 `: q* C, S+ d call putchar
8 ~0 s5 X8 ~1 A, M: R6 L% ?liang:
1 {3 a- |" |& r6 x- }4 ~ call Continue' F" u% d$ Q! o6 e
call judge
* w! ?% j8 c1 L9 l' Q B mov ax,4c00h
3 u0 A- N6 d, _( e$ V* k+ x int 21h
, P2 y3 \+ z& N# Z( m' t: q2 i- Y
+ M* b% c6 r8 y4 I0 G, Z5 u* A" d4 y7 c8 i% e
Continue: enter
' k* X) C! J) h( U: H mov dx,offset cont3 M4 q% h5 h! [4 l% W
mov ah,9h9 }% ]' X7 ]: J+ e9 t `
int 21h3 ^$ h( @( x7 t6 a
ret
- I) H* e. k; h4 | R% O! e
* a+ H4 n: n- Q/ wjudge: mov ah,1
# }) N, T( D& v& C. C1 M$ h int 21h
+ l8 M- w6 y* _5 A ?# N or al,100000b! S$ b! V+ r" V
cmp al,79h
& P8 d' \2 D7 o' i je clear
) E4 m" }& V: K6 Y cmp al,6eh5 L% G+ x, f% v$ n- p* _: g
je endj0 Y% P( A- e/ B N+ k. W2 g8 d
jmp liang% z0 h. F5 F+ o
endj: ret ( U8 r+ \! Z6 t+ L/ G3 w2 [4 g1 m
1 t; t$ i7 q7 u5 ]' m; ?4 Oclear: mov bx,offset table4 L6 h: \: \. ]2 x
mov cx,300$ ?' n4 W4 w5 }, k- X& p
zero: mov byte ptr [bx],0
# _1 l/ m2 [7 S inc bx$ ?# R9 [. v& e: ?6 `
loop zero
4 x# E- f- y% S7 g jmp start
9 I& Z- Y" W* f* E, n4 V+ o: s; p3 v6 d. N- g4 u9 e
" E. Y. \! j! venterchar: mov ah,1: r* S0 ?: {* ~/ {! }
int 21h, X! f, A8 |$ K1 S/ |1 c
mov byte ptr [bx],al 8 J% f5 T' I) c1 |7 I3 z/ M5 a
cmp al,133 U! w: n" ^8 K! ]1 v5 F
je endchar 6 {* D6 e2 P2 D1 v( [
mov di,1$ q) X. {7 n3 l$ K- f6 w
inc bx, x# B8 z( C' `+ e5 `
jmp enterchar8 x. R z, J& X. K A
% e5 M. e v3 T8 F5 b) q4 [4 yendchar: enter
- S4 }, p8 t! W! y$ \ mov byte ptr [bx],' '7 y5 ?/ k- {$ {1 g9 {
cmp di,0# {) M" ~+ Z2 l8 K# A" x
je perp
1 S; i2 ? W) [ inc si& B0 x& h4 a& ]# f0 D& C
mov ax,si
, Z! w6 l0 V+ i& I mov dx,21
V2 X' U! u3 z% C8 ? mul dx9 n* w5 r* t- R( \
mov di,0
1 u7 Z% r% L/ A* q: }1 {9 I0 n; X mov bx,ax + v* h( @4 \' P$ q6 }, [1 g
jmp enterchar% l$ A3 l, e, R5 @( J8 }5 x
! l |8 F1 N' harrange: push si0 E2 w u1 O: ]: G2 _& d3 y
push cx
1 h( T" t' t: C$ t- ? mov cx,dx
) T$ F Y& J2 i) i$ q mov si,0
6 y( c# V! Y! G" E mov di,21
" Y! W0 o; ?$ P8 z0 R2 @. |; A( h# C3 t( Q6 U: z- t K8 A
s1: push cx
& d) R8 `4 f8 Z4 a( m mov bx,0$ ^/ @. f- O$ `/ W9 \( W
mov cx,20- U7 I1 T; q& S: _) e* D4 h: X
ss1: mov al,table[si+bx]
4 Y$ K+ f" x$ y# [+ z R, e cmp al, table[di+bx]
" |1 w* `) l! Q# s ja jiao+ t& E6 e% H2 r2 s) d6 {7 F. ^
jb s26 ?) K8 S2 I' O' F6 ]6 K
inc bx
A* ^# `* }* y3 d* b loop ss1
2 W( g7 y% v6 H! L jmp s2- ]: H. g Y* B! e3 y( q
X5 Y( \ z- e/ x- @4 L* ~- ijiao: mov bx,0
' c5 O: G/ Q8 y. G' ^; f mov cx,204 @. }4 H' h! F3 V+ f6 ?3 K& M
jiao1: mov al,table[si+bx], @5 ]& T4 s2 n4 k
xchg al,table[di+bx]+ h* s( r8 X# c; r, v1 _
mov table[si+bx],al8 d. e6 [% s3 p G4 K# D; [4 l
inc bx/ P$ W3 G; R2 Y. }
loop jiao1
# O5 S( F- n5 e R% {+ \; x+ \" L
( q8 Z K5 v& B0 ~s2: add si,210 d/ k: R; q' z! s+ T7 }
add di,21
3 Y; h1 y5 X$ v. T4 z pop cx# j3 Y% R6 ]% d" w* q
loop s16 @: w4 D5 D8 z
$ a; x0 {/ }" s8 M# d% q: w1 N
pop cx; ]( G- x/ w8 [5 y* F8 B8 X
pop si8 u+ M1 L/ n+ x
loop arrange
/ r. P" V; _1 k3 i1 M- S) t ret) f0 S0 j3 o9 s, [" z
9 h' D. B- A9 j0 ]1 A
putchar: mov bx,0
+ T+ h9 p* z8 X mov di,1" A& a& V2 `$ a0 b
" K2 G7 R1 z4 _4 f4 |4 X) A
+ F& j2 |7 h% _2 ?/ _ mov cx,si
2 X4 t. K5 W+ U0 q& fput1: push cx
+ T; ]) [0 v1 ^6 g- h push bx% b% V$ ~( @( v" ?' [
1 R+ } _' ]$ d. N/ @
enter* t1 U' k- p: C8 y# ]/ {% M
1 L& N2 ^! U) X; f5 O" S+ H
mov bl,10
4 y1 l9 z4 ~) s mov ax,di. B. S7 P8 K* y. _6 g6 v# C
div bl
1 T3 A+ ]' ?0 x/ ~& A mov bh,ah
; u7 C$ ?( ?0 N& k add bh,30h, s$ M% M" P% }* N, C
add al,30h1 r! W& I( I4 A$ ~7 Z" N7 K
6 K5 Y1 U! U) B) b, t
mov dl,al! z) M) B1 K# v( f2 y' j3 l( b. c
mov ah,2- R7 R( W0 Y3 [; u. u* n4 u; o
int 21h
$ @1 e7 `2 B7 p5 I+ l& l$ V+ j$ t+ z mov dl,bh
& b F+ j7 o" K mov ah,2! _: b* b0 N# N; \8 W/ S5 d
int 21h
) p F# g$ O" O3 E( Z8 A, y/ K4 u& e mov dl,3ah
1 J) b/ d: d9 d( |, { mov ah,2! z' @! l: \6 u& u4 G7 ~! L! z
int 21h
8 q* T$ v& d8 M6 B. z- d3 t pop bx 7 S1 X5 i( u ~( {' v2 k, ?- h' |
mov cx,20
0 E) U; |6 f9 X# X$ L push bx. x, u/ l; B( t+ |# l9 t- I* R7 O
put2: & Q, v1 k% a! g0 |, y- A; Q5 c+ `% }* ~
mov dl,table[bx]
$ ?- e0 j" M; [/ Q7 i mov ah,2h
5 Z1 E$ O$ c8 e) O4 i int 21h& Z" U: j, P# ^- z! f
9 j8 s7 _4 u- Y- r2 Y: F" r inc bx2 {$ P$ H# ~+ f3 Q! h9 b& _
loop put2
4 o* h& L+ o" l( l9 R2 k7 U inc di + y4 P5 x9 ]" l/ m5 T" x* {
pop bx
' C8 I7 A4 b* a( c- o$ u) I: ? add bx,21
3 K( r: [! f" L/ r7 } ] pop cx
; j1 v% B9 |5 v0 Z ; r- l% L6 d5 d+ z. d2 T; `7 K
loop put19 ?$ E+ x/ X+ ?- K6 q
ret
5 W% s5 O4 Q: z& p1 w
! s- c; I1 T: l" I/ |+ R' {prop1: ' Q3 u" k4 ]& q3 F+ _$ c$ s
mov dx,offset pro1, ~% y. J, `: \% @
mov ah,9h
* ?0 o8 M! x" t! \% i int 21h
7 O3 j6 I) F" `, d5 o& a$ N enter
' [5 n9 U; y0 F4 W ret
: u3 ]5 ]( @; L1 Q2 K' G4 d+ U' e& p: c' b
prop2: enter
7 k& ^- H# o* w( j7 v3 W3 y mov dx,offset pro2
/ G* Y6 s( f6 B6 |+ ~2 n! y mov ah,9h
! r' b" Y0 }& e+ L6 a& E0 l0 a int 21h
) s! E& R' V+ v8 K ret: F$ J" w5 k( Y$ _# J @
9 `: s. I9 _0 g2 R: L u& c) r4 ~2 ecode ends
+ A. E. M1 C$ o+ A7 dend start3 S ~ r) g# T, p: A, ^' g
& e A% x* X* ^$ H/ O
9 W, ^+ a8 B, X3 q |
|