|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧 T: _7 Y* p% l" X$ ?
enter macro- p! m0 A" L$ \
push dx
9 I J+ z* K9 P% c push ax* m0 r( x$ F3 F2 U
mov dl,0ah
5 I+ c3 h6 E0 e% l* i) ?; o mov ah,2
2 l- o1 M- h" i: p" _ P int 21h
: q5 c6 Z2 _* }3 P" W mov dl,0dh
( p$ i5 G5 @3 |9 ^6 \( j, p1 H mov ah,2
! v5 s$ J( e( c& a/ S" j int 21h
" ]: ^" z! q0 t& I1 Q pop ax7 Z: Y! p$ ]' R8 X1 D5 C
pop dx
. b5 l( T' h# M Kendm0 e) b' u/ i; x& R0 I' j9 B. n
2 ^$ D6 Z6 w1 m M T( xassume cs:code,ds:data
; \# n# J: U. n( q3 w* Qdata segment
) E5 i# K5 b, h" f- Vtable db 300 dup(0)
; F$ K3 Q8 X$ ? }- hpro1 db 13,10,'_________________________________________________',13,10
0 Z9 z N7 Z1 B3 \: n8 u9 A8 I db 'no more than 20 characters English name.',13,10; L' ]! @8 {8 s8 g. T
db 'For example:',0ah,0dh,'liang xin hui',13,10
5 p% N) Y) E ] db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10! x4 O! T% c# L) i( j) Z
db '.................................................',13,10
5 |! R7 E: p% A; _8 E+ v( C. y/ V db 'Please input:',13,10,'$'
8 w% [" h: K- V. t! Dpro2 db '.................................................',13,101 Q/ H2 O. T" @5 S
db 'The results are as follows:','$'
' ?! o* x+ U0 B8 l3 ~
& A5 ]9 q! m" a t( ^cont db '________________________________________________',13,10+ X7 R/ M+ ~2 i
db 'Can You Continue(Y/N):','$'8 j$ U5 s( f2 q( {2 W+ J1 H2 [
$ B z( ?8 l; J, `6 Vcp dd 50 dup(0)
; w8 g6 u7 g7 o: [data ends
, a; j6 o4 k1 ^/ v' c$ f, [8 S% {( t3 y& R% F1 E8 L7 x; l1 K; Q* @
code segment
7 c- @. s& ~! u) i( mstart : mov ax,data I& ] C' T3 r8 @0 g4 u
mov ds,ax
& m6 H& Q1 z ?& S% g( K: o call prop17 ~4 b$ B1 d* b* x
mov bx,offset table
8 W/ ?# N% |; _: e. x0 g5 W T mov si,0
& d4 `" U [- C! @; K mov di,0/ R1 R) F& T: B
! [1 S" n C/ Q
4 \8 I: M8 M0 s3 m9 p
call enterchar4 E7 \" U5 ^7 h$ B- }& ?2 j
perp: # G" N9 g# e7 _1 M" ]
dec si' v8 y7 i6 Z0 f1 Q5 }# g6 O
mov dx,si' h8 J$ G. `7 L7 j2 l
inc si
( a& Z! d( r3 w mov cx,si* _& ] M) C9 w
call arrange
+ j+ V* `4 L$ S) T6 j9 I; G call prop2
" v" n+ |9 n: \) ]5 [8 m9 A call putchar' D' V& G6 _1 P/ \
liang:
3 M6 q! l9 [6 P2 b/ U1 \& j4 ]7 p1 n call Continue* L4 b% f* x+ x
call judge" D1 z' s2 V" `5 f
mov ax,4c00h0 n8 |! O( C& G6 S' f3 D
int 21h, E- x6 @& {1 A7 E! A
- f; a1 [; c5 k J( F9 D9 T- K( i
1 R% J: |0 f+ ^$ V& QContinue: enter
- [9 ]1 S" k9 O% s3 B4 _5 V) p mov dx,offset cont0 z9 U5 |. ]2 P }+ ?
mov ah,9h- e. |) w5 d. N; ?7 m9 ^, q
int 21h0 r2 L( j+ r$ }% J1 _2 w8 b9 W
ret 4 y( o: w) P: S6 o/ E: \% T
/ D: F. |; P. [* e! Ajudge: mov ah,1
1 m+ v5 \% Y7 [ int 21h7 @5 X0 {- M3 K6 S9 {
or al,100000b7 ~- f7 F9 q/ v4 w2 V+ l' y
cmp al,79h/ }) O% b X8 _/ b- }* i& X7 p5 m
je clear/ {2 ~5 G6 Q, y: K7 T& J
cmp al,6eh
* {% k0 Q7 k N' G/ v( e je endj+ H* Q- C" A. A+ P E1 V! m
jmp liang
N% w% k$ Q, z( d8 A6 v7 U) Z. Tendj: ret 2 v! b4 p% n( e* k; \6 A- w
3 n: D' s4 L' s' Gclear: mov bx,offset table
% V" ?/ \0 \" [1 t. E mov cx,300
+ Z. g& q5 t9 a! ?+ Jzero: mov byte ptr [bx],0
; q0 ~2 ]7 q( Y& U0 v inc bx
( ^( c/ v! x$ Q3 P8 F1 t) M loop zero
1 a7 T/ D' W9 R. k K jmp start
$ F) p+ w/ ? c: W! h
* t' ~3 a5 J9 h2 O: x1 L
/ R! v2 B: b+ henterchar: mov ah,1
' ?% j# K$ `1 E( b+ y5 J int 21h
) e2 ]$ M, c* G! _5 s* v mov byte ptr [bx],al
: w$ i& N5 U4 Z6 _* g Y2 ^* K cmp al,13+ _! s" W. j. V3 l7 I
je endchar
& B. Q+ u# c- H; A mov di,1
5 I2 E) C7 a3 a. S* [5 b$ d& i inc bx
8 A {8 p# ` i; @: i9 Q5 B jmp enterchar
9 n3 n: r$ M2 }0 a$ m
* j; Q3 z7 ^5 K. b8 V. bendchar: enter
: g" e6 W$ P9 @& K' W$ U& d; c mov byte ptr [bx],' ': S( j6 H/ x0 x
cmp di,0: c4 v# U# x" ]7 ]* r$ P
je perp2 B5 z; ~8 B/ B, C1 B
inc si
( f/ l+ J/ f" B, }* l; w mov ax,si
6 q6 y8 i( H9 a' r1 J mov dx,21
C g7 F" h) `/ L mul dx
. Z! T: q6 p4 q( w4 \' ] mov di,0
% Q% S: C' z; o. m1 H* o. ^2 ^ mov bx,ax ' N' a5 r u q( Y! P7 h5 E
jmp enterchar2 F U A' I+ e) B; h1 U0 v! j
- @* F7 X7 W4 [+ T: a( ~arrange: push si; b+ U& p0 Z0 v: I; \* Q
push cx / T7 q" |$ L( n2 e+ `
mov cx,dx
8 l$ b6 ~2 i2 H S2 G, A mov si,06 A0 p" r: a$ B' u& n
mov di,211 w* R: l2 b5 _
7 b+ S, i# T7 g, M/ ws1: push cx
4 F5 U3 Q6 k4 L7 \ mov bx,0$ d8 R* B1 R9 A: E/ m I
mov cx,20
$ c' {% n; H; \7 P k7 Y7 u* J" x3 Sss1: mov al,table[si+bx]
. I% U1 n1 ^$ `9 A. ?. J cmp al, table[di+bx]
: ~: S0 J+ `( M$ W+ [ ja jiao
4 l3 p1 k6 U1 n- [) S: L$ S# A jb s2
, e% |) i% @) y0 f/ Z inc bx% v) b# T, _$ T F7 p+ b
loop ss1 p! y! I7 \1 E
jmp s2
4 F9 Y, F6 B$ S7 B' f
6 b) z' v' Y- q! V5 qjiao: mov bx,03 I) i3 S5 x3 |& |- j( C" M
mov cx,20. y Z6 l* _/ t9 t. r! |) b% h
jiao1: mov al,table[si+bx]
& z ~! g: s+ [# N7 l8 V xchg al,table[di+bx]
! Y# U5 m9 P" V. }/ o mov table[si+bx],al( A' F: R) c9 E" a3 u3 [; s- r- K
inc bx7 ]3 \+ H1 L1 S1 G) B- d# v
loop jiao18 z1 d* P0 U8 ^# p
C4 \6 g% k8 o2 f7 E$ Ds2: add si,21/ ?6 j/ ~4 N* s9 i* W& Y
add di,21
% y0 C: w1 S% j3 _* N pop cx; g# Q: l4 s5 d" D- I) u
loop s1
9 f6 x. P5 o" B+ f2 M' d4 z& P y. Q! N/ x' ?( Y# |& h% H
pop cx
) w4 @' I% P l) `1 ?, ? pop si
6 t! S% |! S! h loop arrange
5 L. l q9 A0 @4 B, U) z' [/ I ret4 E: O' _/ ?- s( ~7 Q: Y' M; q" g
$ ~! {3 y1 @( y2 ]( |9 X% o9 fputchar: mov bx,0
; }. L+ N% B/ L5 ]$ R mov di,1! C% C6 R; \( w/ V: a! c# y1 ]' Z
+ |4 C- a" O8 s" w
7 ]1 }$ D+ H9 w8 H" i, K8 w! I6 m mov cx,si
# _7 U9 l) q% X! G4 Nput1: push cx
5 C' k# b5 c% [& x! S push bx, p1 `8 O) m$ [: Z) U
. @1 N: p! y* S0 v2 v enter
* a9 j9 U% A9 k- F) V* G
! X% O5 Z' X: h% D1 Q* x mov bl,10* c9 W- ]4 l, ^7 A e, H( @( C
mov ax,di
2 x* I+ g4 `. m' o s/ T div bl
5 E" _! w3 n# ]" d$ e* p2 h mov bh,ah
! w3 Z/ Z/ t' N/ g! p' V5 h add bh,30h0 U j" O5 ~0 T3 w) C: R
add al,30h
8 @1 j' r0 V ?( N# X& n
9 _6 ?, a" U$ M; k mov dl,al) E( p3 c5 @ A
mov ah,23 K3 I6 k' A7 Q2 V# d4 i6 N
int 21h
1 ]1 w+ H2 ~+ I W7 Q; w9 c mov dl,bh5 f% e* U8 j% h0 i8 R
mov ah,2$ D) h3 ? n' ~3 P j+ ? X
int 21h' K, t( A |/ O O
mov dl,3ah
& A9 K. Z9 n! F4 {8 [( i& A% R5 u mov ah,2
, f* p3 X7 X% ^ G int 21h2 A) I9 k; j5 u! H1 o
pop bx
+ T* {6 b; T8 ^) Y9 Z- w mov cx,20
8 L" V! G. ~, h C2 f% O push bx
9 Z3 U4 z1 o& W8 m7 zput2: ) O3 l: b2 v8 C: P; h5 d
mov dl,table[bx]& [# Q5 ~- \" a( O& E1 ^
mov ah,2h
6 Y& O, Y J! m, O6 o0 C( n1 ` int 21h
5 x5 S9 @0 b1 N" f
; S* y& M+ b3 J% l inc bx
; S% T$ Z" p' b loop put2
# E4 Z/ ]" |$ s7 `% t inc di ' S& {/ z& g( D( x0 H; d
pop bx
$ {" `- u3 p* F1 f5 N, ? add bx,214 e5 D+ @9 s3 N3 O1 v
pop cx
8 H9 V r% e% v3 U
( E( _0 n6 F- }+ g/ u) e/ P# J loop put1
' D6 D3 o1 d% u ret" e* k* x% G( y* |6 m! T1 i
0 e1 ^9 _! _3 v3 d' t& L
prop1:
$ b# S$ A' ~* P! j B* w ^ mov dx,offset pro1
$ j" h- O" F0 R5 [ d8 e mov ah,9h
& Z, A7 q; F( @. U int 21h6 v, L D; i8 c/ F A. f
enter - P3 @* V/ b' t+ k. K2 b8 b
ret, z4 V; B( t0 P$ P& s% t) f. ]
: c3 G* M) @) aprop2: enter4 G9 v, L/ d% Z) ]7 {) v& j
mov dx,offset pro2
2 ~& G$ g9 p$ e mov ah,9h
9 e: D$ ]" M! ~( D- I% p* @) {( ` int 21h
3 z* ^3 a4 @9 e1 a0 A% {3 e6 s ret2 u Z) F% o7 y7 V+ X
: a2 I0 t) b5 S m8 k0 \# Y+ {1 Pcode ends
7 P/ I) t) ^1 B' ^end start, s2 q S' B+ p, Q4 ?
# Y& s. [% t8 K/ Y2 k! M
% K( P: K* ~, \" Q% d, M) v
|
|