|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧* x8 z5 P' @( }9 X( u& N+ P, @( Z d; l
enter macro/ U) S; t/ j; x) P# C$ h( f6 w
push dx
5 d B0 b1 I! G+ h$ @ push ax3 {5 W+ {9 r& G' o
mov dl,0ah
3 a* P, q( ^) c7 j4 y/ o2 f0 @ mov ah,2( Y$ i. r: x c; R
int 21h
; Z: |8 w% O& c, I. {3 `9 @0 Q- L mov dl,0dh# K- F U+ |; q1 x+ K, w ]
mov ah,2
* J3 v1 U. _, I, P int 21h
! g) R! `! A/ N# D2 G5 |7 S pop ax1 T( T7 P; ]6 ?$ U7 s# ?; ~
pop dx ( k6 D; J- U( B8 S' M' Q
endm1 Q$ y& S$ p) Z9 T( q
" Y. {& h+ g6 T% s/ Q- v
assume cs:code,ds:data1 `6 W7 A9 |1 c9 u/ x" w
data segment
4 P( [) G) w) d1 w# P Etable db 300 dup(0)
( {9 l6 G% D* E+ n- _pro1 db 13,10,'_________________________________________________',13,100 H, A, b* k9 D7 U( }
db 'no more than 20 characters English name.',13,10 V2 V! i* d+ J# Y& G8 a
db 'For example:',0ah,0dh,'liang xin hui',13,107 z4 ]( n# C/ Y
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
. Y, D- F' g; X: u% m/ Q' \# { db '.................................................',13,108 I% F0 J2 n; u; {! c$ }: f2 r( `4 N {
db 'Please input:',13,10,'$'
9 C, I* d" P# D8 o0 Epro2 db '.................................................',13,10
4 f$ u- u" z j! @& t5 O$ b- D% ~ db 'The results are as follows:','$'. o4 E$ s! |7 w( k1 m7 d
$ D4 U- k: ]& i2 |9 r3 \8 c/ ~
cont db '________________________________________________',13,10! f1 K5 O. v4 A) `& a
db 'Can You Continue(Y/N):','$'
6 y. N. k% N4 B" x/ p8 |9 |- g" h) ^2 B b7 l' P+ t
cp dd 50 dup(0)# g9 m6 G; K* b9 D9 j
data ends
+ }" X+ s1 q) ?- ]; o+ D& @: q) w) k
code segment4 Z5 J- c& d0 W
start : mov ax,data
$ X3 G, f0 c; `0 f9 s mov ds,ax- b" e; g+ c9 O- W) l3 f' h
call prop1# x/ v& `7 [, C
mov bx,offset table1 T9 I, _. x9 ^/ }
mov si,0% ]8 Z$ O4 x, X
mov di,0
, T3 \/ J q( L" P! ]' M9 R 1 Z3 r! e) f# z6 m y
" y( f% _' ?3 T9 a4 E! J5 A call enterchar; j V1 f3 b" T
perp:
1 ^ _# z# Z% U$ _* ?- o dec si7 r2 w- z7 T( u9 {. q
mov dx,si
8 _6 P# ^* L2 P4 e5 Y7 o8 Q" A: u7 n/ \ inc si
3 o0 I- _. C& ?' F( x mov cx,si
7 P7 g9 `1 [ _ call arrange: C0 ^) M# h7 l# P8 N6 b
call prop2
; G$ `4 m; Q8 X4 { call putchar
* N; o7 @( Q" n/ u( D$ W" e: _/ Bliang:- a5 Y7 E6 w2 y3 ~
call Continue0 L4 i. M- k+ |
call judge
9 E: `: C8 R" O6 h' x mov ax,4c00h7 ~- `7 ~3 O: c& Y) ^
int 21h- @( o. k4 B$ o! f+ O/ O) B
9 A; w, G. D' }) T" N
; a1 u. u- O& \0 F
Continue: enter
% _% M: g! N5 i& Q Q mov dx,offset cont
, b3 p2 m' d" J( x8 h/ O% U mov ah,9h
( ~, I0 g- h" s int 21h
( @, L2 ?( x" F& |4 \- b7 o ret
) m/ {: K$ b( ~5 o5 d
8 I* }. G+ `5 k3 Q* Hjudge: mov ah,1
5 f+ Q) U9 R+ h int 21h
' _3 O6 r- ^* X or al,100000b
' l5 q: y" N$ g2 T Z cmp al,79h
5 @. S, X! T b3 u# @ je clear& @/ }6 q1 j& ? S+ Q1 v, j
cmp al,6eh. S- o" x( ~) z6 I6 U& y- j% O8 t- Q( Y
je endj8 { N4 p- [( e" h+ m
jmp liang
1 K. f3 U. s1 Z R* t+ Qendj: ret 8 G, f6 h7 d# H# A e
+ Y& D7 Q M9 h5 k' N
clear: mov bx,offset table
* l% Z/ e/ ]1 ~7 h4 F mov cx,300* t9 \ _5 _$ A
zero: mov byte ptr [bx],0$ r. ~& {1 g* g- l
inc bx' ^% k1 p0 ~* P
loop zero
# R) p' U! b; ~' P# L jmp start, b2 V. Z/ I; z
" I0 s4 D" r1 P2 [
# I$ c3 W' `5 \$ ^2 s% s
enterchar: mov ah,1
; U2 H1 _1 S9 r7 n* L, \ int 21h2 \/ j( ` O( P1 j
mov byte ptr [bx],al
* R+ U+ k8 o" r1 J ^2 b cmp al,13/ p% Y$ t6 Q+ C) X1 x
je endchar 4 ~, K3 Y5 y, S ?
mov di,1' f3 C$ `9 r: e1 y0 ]5 p
inc bx
3 P9 a& H2 v4 x$ x) p% g8 y jmp enterchar6 ?9 Y6 [3 D2 c
4 m! r0 c7 T/ |/ q8 j8 h- t9 Lendchar: enter / W% c7 P. J* `3 r g( r# Z/ _
mov byte ptr [bx],' '
" _ c7 k) B4 m1 W% u+ d) T8 W/ E cmp di,0( o/ E0 j) ~( `- q. R
je perp' P. a/ L0 x; B0 l
inc si
) v/ G; {5 h# [0 Y4 i1 n3 H( }# w mov ax,si$ d1 \8 ~) ~. ?5 [
mov dx,21: m* t( p' W- f
mul dx
. Y( s! Y& U! X0 f8 c1 S/ ^- _! Z mov di,02 [9 s$ C$ I+ d5 R# l- m. y5 z
mov bx,ax 6 {$ ?! S+ v$ H( U8 J2 z/ r$ m
jmp enterchar8 ~3 Q# F* Q2 q
# C2 i0 q3 s0 A3 m# F! z- G
arrange: push si
: D( t R7 c/ d/ b2 j" j push cx * k' J# k) O( g
mov cx,dx * E1 s% e+ j2 `% s' ^# p- ?2 Y
mov si,0
1 e) [7 r$ v- A( J4 m mov di,21
4 [2 D0 X& `. l" y$ o
$ T7 H q4 C2 z( z; es1: push cx0 T/ V7 B# E/ n
mov bx,0. z) J* A* i2 `# ?0 V1 n* S9 \9 ~
mov cx,202 z/ S5 L/ d9 w ^
ss1: mov al,table[si+bx]
# t" S6 q: R5 P) t, Z! } cmp al, table[di+bx]
$ s& Q; l6 w& o" K' K ja jiao( o: R, y" S/ i" G
jb s29 a1 \- O# |7 ^2 z }
inc bx
' L, I# V5 ^2 H. T7 o loop ss12 D& D4 e' { X; o
jmp s2! S' S& W# p8 e! ], K$ w
4 i5 f/ @4 ?3 j, [4 X' [, l ]( o
jiao: mov bx,0
- y* z1 @ v9 c; r2 E. s mov cx,20
; e# z2 j6 c9 J6 b- r: R& |jiao1: mov al,table[si+bx]
; `2 W. k8 w& {. V xchg al,table[di+bx]
5 E/ ^& f* A- a( {3 P mov table[si+bx],al9 O. l4 s: q- {4 t9 h4 r2 I$ M
inc bx2 e. O% b7 r r4 q- Z& U: T
loop jiao1- f. N* s* s3 D3 n$ O3 v( R: I
$ e" F) s' E1 \
s2: add si,210 G& _1 s& m2 c6 O2 j/ l6 D, |
add di,21
' f7 ^' z& l% K; u' v% c pop cx
; z$ {6 L3 i. E4 ^: y5 n6 m$ s& {2 G loop s1; u- L$ j, h. v* a2 K
; G6 e6 P* f: k2 ?0 X+ C
pop cx
2 a% d( P0 ?" a& ~/ T( |( n2 {. B pop si( ~+ ?2 ]; O. T8 {4 I% b
loop arrange/ r; {: N/ f' A, E$ ]
ret
) @, G! L! ]' n2 U+ |+ Z; M) l/ N1 f4 C) U" O. E7 K0 j) t5 |
putchar: mov bx,0" `- H j. W& t% B
mov di,1
/ ^9 L- S3 q b
- R$ `8 E& X! I, g
% @ E- J6 I- Q6 c3 e! F1 ] C mov cx,si
j, R4 Y: Y; o$ Hput1: push cx! ?' X6 y3 [1 u2 a6 x" x# q/ k
push bx% Y1 d, B- w+ j% H+ J
/ r& |0 `2 C9 X+ {6 ]* s enter" w$ }. a5 `+ t0 N
( t3 W( |( e- J8 e* ] o4 w
mov bl,100 g! q) n+ s+ G
mov ax,di
" c! k' R( p( O! r7 d7 X div bl
0 [/ |2 y' t3 K- c mov bh,ah. ^9 x+ P3 h+ ^/ G# _
add bh,30h
3 e% a- g4 Q% \ add al,30h
1 f/ t% V. m# F) ?' U * _ | Y& @7 }' v* C6 c) G
mov dl,al, d! Z0 S' q7 Q8 v& w( @5 k
mov ah,2
1 x2 z6 f0 b! g, X+ l, D int 21h0 i5 w3 X$ ^3 c0 A# H
mov dl,bh1 A3 B: S# Q4 l. b) B5 q
mov ah,2
- ]% a3 r5 `& v: W9 I int 21h
* g3 J/ M6 h/ M1 e3 ~ mov dl,3ah1 U6 Q! w/ K* g: W2 O4 l
mov ah,27 G" q. N; ^3 s) K
int 21h
+ T2 j) M- f7 Y" k/ | pop bx . p O4 R- R5 b6 |/ v4 y
mov cx,20
" B+ I, J# R7 ?0 C2 T! e/ e2 a- c( s push bx( y# o- k% b) i( h( O
put2: , @- h. ]/ n" F- W; t
mov dl,table[bx]7 a' {+ A4 i* I, R
mov ah,2h
6 _3 {& j5 B& d* Z- h int 21h
* y6 d* }) j$ x2 d
8 L% f0 j! G7 ?" h _ inc bx L. j$ m m2 y
loop put29 d0 ]; O$ D+ _0 M/ w
inc di E- c8 l6 w: c: B4 b3 `
pop bx
5 g, ~( }9 |5 Q6 w# y( E add bx,21
9 U) v1 S9 d6 [( |0 _6 R pop cx
# V: f( W5 G3 F& Q; j* s ! Q$ e W B* f( t6 ]
loop put1
; [2 p2 e9 k9 U# k9 A ret
0 o/ v5 N4 `+ Y! y( l' I' j$ O' ^$ ]# e) ]3 u4 P% I: ?& N
prop1:
" i6 D/ H* [9 i: P: C w [. e mov dx,offset pro1# K; D3 k+ i/ m0 t$ _8 q# \
mov ah,9h
: I/ t; f& s$ Q0 b9 r% y6 C. j7 ? int 21h
- \* V. g1 |6 \! A/ e: |4 R enter
7 c7 b3 b$ ?) t0 R/ A o ret
R- T' m8 i7 y! i. b4 l0 D& M" G* [( z6 U' A8 T* O
prop2: enter
, N7 H) g8 k+ H0 D. L4 q* v* w7 ~7 v mov dx,offset pro2
6 j9 z6 J1 L4 u. u3 R5 h: j9 i mov ah,9h
/ B7 R+ p, m& I; W a int 21h
+ K, J. h6 E+ A ret
: B: e$ S$ u8 y
0 b' G/ P/ ^; qcode ends
: d$ @4 Z( ~+ Z5 Cend start. a; I8 t3 ^. C5 p* h
" y* v! l- d1 D
2 W- v: l" m8 w0 D& t0 Z4 \8 Y% h
|
|