|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
* V( V6 B# A2 E3 n4 l' W8 f% t. oenter macro
$ f2 r+ O, I( |& N5 q' l0 ^ push dx- E4 Z& |7 U0 f" T2 F( \ G
push ax
3 I7 K% }; y. R7 u9 k mov dl,0ah
6 q7 q. E8 r! z$ q& N9 u mov ah,2
6 _$ p/ ^* ~, T- g, [7 ] int 21h
8 L9 ]0 W8 v, r; ]& }3 A1 W- y) G mov dl,0dh
0 d0 }. Z: W9 D0 }2 K5 t0 z mov ah,2
3 e7 h. K# ?4 h$ ^8 O- F! [ int 21h
6 R4 i/ a* k# C" {/ ]" A4 B% L. j pop ax
! O) F1 r' k# `) ` pop dx
& v4 C' j8 y- @& X* c0 q# O! d: Pendm; C8 g1 D4 w" K% k c" d4 `, u7 p
- j8 v2 z; Z( |6 T3 r7 vassume cs:code,ds:data
! B: _1 Q( S n: {data segment
8 C, \) E, I& xtable db 300 dup(0)
8 O# I+ @1 ]5 l/ d( d e) O* upro1 db 13,10,'_________________________________________________',13,104 B+ p; E7 H+ @0 V- u
db 'no more than 20 characters English name.',13,10: q, D) Q X8 d7 V1 |
db 'For example:',0ah,0dh,'liang xin hui',13,10
1 e6 [/ [; T8 Q; R: |0 l$ N/ H db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
" o- r# F; }! b% j$ ? db '.................................................',13,10
' f) r. u* P. Q8 ]6 a db 'Please input:',13,10,'$'8 w6 r3 `" d- q- p3 u+ c
pro2 db '.................................................',13,10
7 h0 H8 ]: i9 O& r2 K( M/ O; [/ c$ T db 'The results are as follows:','$'* ~0 \+ J6 x% f, }
& D' d$ L p' J y" [
cont db '________________________________________________',13,10
& ]3 ^5 v- C9 |% d% i' B& X4 _& B db 'Can You Continue(Y/N):','$'
8 S! R1 _" P& M, I9 y1 G0 U5 r7 U; T9 b
cp dd 50 dup(0)* X, k0 d" J* S% s" O q
data ends7 ^8 l4 [. b( p: k
% [* a. D, ]/ I9 |( [2 Q7 K8 {4 o
code segment4 Z% f! Y8 {( X }$ `2 f4 k
start : mov ax,data; `( h9 M7 V; j- ~. W4 k1 t# M
mov ds,ax7 X) e! L) K7 U
call prop1
7 ~% @# @/ U( O& O6 p' ^ mov bx,offset table6 P* y# P( O4 C6 R$ O+ k
mov si,06 K) J3 V1 T: X, B
mov di,0) c$ ^2 G- j$ R, b: U
- j4 j7 \6 ^- W) q
M' H7 Z9 V G+ w" r& \6 }* k call enterchar
( w5 Z4 e- r: I9 S N0 ~! I( Nperp:
- z$ M, A- F- G2 I dec si
* c# P! n( j, o; x: D) c mov dx,si
. E1 Q5 ^" v+ O, R. t: l inc si
- w: j0 x4 P/ k! v mov cx,si
g4 ?: ^, _' V4 M$ A call arrange. U' e0 Z8 s7 z. O3 [
call prop20 V- y3 n, F9 v% u( ~/ t
call putchar3 B4 a6 v- B. Z$ S6 M+ a
liang:, N0 `( m* V& D" x
call Continue
& V8 _- _& K' G# E- p, t0 b6 M0 n call judge# o. r S6 I1 e2 `( j$ S
mov ax,4c00h& _ M8 K$ c% z8 ]- c/ e" D
int 21h
6 \& \ B3 i5 m3 h% B: ^
+ m( ]* {9 r- R* t1 H0 P- h% n& |" Z3 J3 Z
Continue: enter
& b# j1 e5 g5 f2 ] mov dx,offset cont" H2 |9 I- p* Z9 X7 c
mov ah,9h2 b& F( _+ l1 v7 N# |; A
int 21h
1 U" m0 u1 P. @ ret + u( T9 l5 O) O: E, G
# w3 U1 y" y; v; H1 f0 n4 `/ ojudge: mov ah,1
# @( E9 t. i% {" a int 21h
- |. i- _3 b& f# ] T or al,100000b: T, x7 x) f; G" W# Y1 c2 U
cmp al,79h% N# U1 P, J2 R; g: j
je clear
; @* x; \+ Q# F. X' Y cmp al,6eh# X+ w" h4 D; D% W: _& y
je endj# s# G& u" c. C0 h- `5 t
jmp liang4 a9 q+ {7 ~8 A! P8 G
endj: ret
$ e, r1 A7 u! g, a/ X& T) C4 T1 k# H
/ X# q, Q9 z$ M6 ]' fclear: mov bx,offset table U' R' y% T9 c% p2 i) _
mov cx,300& ?, U# E5 f' P/ U# U* i
zero: mov byte ptr [bx],0
' e, E+ E8 j/ v+ T4 l inc bx( W4 \, }0 \4 f! W
loop zero
6 R: H9 y/ L5 \) [! r( K jmp start; I/ g- W2 X7 `' w" j3 h" V g
$ k4 m) @( h4 Z3 p& J6 O# @" q7 v
i; |9 V4 C$ ~2 ~# U, Z6 o* Menterchar: mov ah,1$ Y* v- y) j7 B. t- w
int 21h
3 c( l- g1 x: [, M' f' r( o mov byte ptr [bx],al 4 U5 ^5 U# g8 ~: {8 P8 Y
cmp al,13
5 w2 V5 ^1 ]/ c% _. x' `2 J je endchar
( f) m: {0 F$ ?: a0 D mov di,1
# x, r1 ^. t8 F3 u6 N& X2 v inc bx& t$ R) R) q& T( e- [
jmp enterchar
( Q- a6 g0 K9 I+ n
) {# [ @( W0 }; N8 ~7 _. yendchar: enter ; z& K7 W2 e/ \% c1 N
mov byte ptr [bx],' '; T! K* n" y' @& h! p7 q
cmp di,0$ J8 N4 i/ S$ w0 }
je perp' c+ @5 g) z& j3 \+ s" P4 v! K8 y7 i
inc si
9 R0 `3 V) A. u7 G2 r mov ax,si
w+ N/ C. K/ l* }# w mov dx,212 t. |5 \" ?+ \! O( b; |
mul dx3 q5 L+ i" ]$ n3 e/ x4 F
mov di,0
4 _" a* l- _3 D7 J mov bx,ax 7 A/ p# i3 A0 O; Q" D; `
jmp enterchar
* g. _7 d8 ~, s/ l& \' E- C1 L# q/ }# X
arrange: push si
4 I5 A" v! x$ \9 B! e. a; C* Q push cx
8 x9 U: h" l5 r& c( W- u) t mov cx,dx 9 f* Z* T9 B' L* c; u# T
mov si,0- A3 b) p( C4 j
mov di,21; o0 [) G6 ?* K5 g7 N
, ^* |6 |, |1 h6 @! `7 \
s1: push cx
7 K1 J' E: @: l; }, ?3 T mov bx,0
! n' m3 {# b0 A0 T6 ~7 l# Q% s4 j mov cx,20
% c4 V* r2 u8 b; I/ Hss1: mov al,table[si+bx]1 ^0 G/ v) C: e& e
cmp al, table[di+bx]
( \5 A+ D% p2 d! @- n ja jiao
. B6 t: v+ V; h/ q& [9 |# q9 f4 a) M jb s26 k. r5 w. i8 H2 j
inc bx
7 O/ D, F7 d3 D' z loop ss1
: V( c+ O* X+ M. I jmp s2! O7 G4 [7 s; K4 ~) t" R+ \4 K1 B i
+ m* z* f, Z0 |4 L( M
jiao: mov bx,0# y+ f1 L) K7 I$ S9 O& G! J( L6 W# l
mov cx,209 k& @' X% d" t1 |' Z
jiao1: mov al,table[si+bx]) t6 ?0 W. j( a0 L# r. d
xchg al,table[di+bx]
; b9 i4 _2 W5 Z4 C* o/ u: e mov table[si+bx],al+ g4 `6 a" h# ^# r! N! \
inc bx
) G3 p1 I3 C- r0 \5 l loop jiao1
, T6 B! z# V+ L; b
" r% [* d$ ]: t' b/ S) m+ Xs2: add si,21 a. O: ^6 K% s! I. K2 E
add di,21
& I* v* d+ D9 d pop cx, ^. Q* U- s* q! @- M% K
loop s1
( Z$ f1 E: ]- t% j2 P5 U0 B# O# |( D; {2 _* T9 V
pop cx" n8 u1 n3 C4 @ h9 S. d3 M
pop si% `3 ~+ t$ U/ a" ]
loop arrange) s% Z. [6 G2 ~; e( p1 J f
ret( \! F& }% J, g: v/ T
+ `1 v5 W; H- r! H0 {: p: t$ Uputchar: mov bx,0
( z9 d3 M: f" y) P9 X mov di,1
4 N* X5 Q3 Y2 [' a+ O6 j
: @2 ?$ K* V6 Q( P; Z& N % v% G5 m0 _1 Z0 ~/ G6 W
mov cx,si& ~6 w1 \. P( P- l; Z* ~
put1: push cx
, ]! D5 _4 ?1 ]" e push bx
$ d3 I8 Z, {( U/ k* L
# r1 @3 Q0 r$ U enter5 l% \( Q; V2 l* s6 N0 J0 S
& F: ], [; C. i0 w% S# y mov bl,10) N; c3 k H' c. L, [
mov ax,di
1 Y# O4 F/ ]4 ] div bl( y; s. [; N% f. e; k& h
mov bh,ah0 e5 m' F) u4 S# @( U$ n2 Z
add bh,30h* ^& T! }. F. j8 W6 {2 O# K" ]
add al,30h
$ D/ C: Q: }5 q& ~& b" n
, x6 W' W! i* @! ~) ~2 S( x: f mov dl,al% ]7 n; R4 R# W9 _; G, l: t
mov ah,2
! I/ F& b. ~8 {! O int 21h, n5 |7 y6 E w3 ^% `! R
mov dl,bh+ m- u0 {* h8 t% k4 \$ |
mov ah,2
4 h7 X" R5 T" v: J1 `/ O! U int 21h' }1 f5 R7 S( W3 f. C
mov dl,3ah3 M; S" B% s+ G1 W. _6 F: o$ [
mov ah,2
! k1 r2 @' |. n- g% ]# z int 21h
. n" c7 W( d U; k( t* S+ a pop bx
' ?; Z% l; @( V- o mov cx,20
' Z! H- \+ ?% n push bx5 f# |( p% y* n. d1 R7 U: F
put2: s+ c+ \' F7 D9 R G g
mov dl,table[bx]
% M; f) j6 {5 z5 V8 M- _! { mov ah,2h
6 K% r" u9 s% N: M1 O int 21h
' ^( e9 d' _- w7 L/ P' l6 r) t " u7 }6 o+ Y6 n" b, D0 S) y1 z
inc bx
4 Z. ^7 o, N& U loop put2
$ F' O e- U; `8 l1 u inc di
( G# b8 |% X, A$ `4 W) ? pop bx# X! D3 o5 k. D. s0 B9 P1 V1 R
add bx,21
+ i, H1 U$ a0 P; _0 |9 h3 } pop cx
- k7 b4 Z: Q8 y/ h1 t% Y& \; S
' s, b" }# o3 y+ O2 v: _' N loop put1: a3 [, H% n/ J
ret6 h: i5 }1 O- b: v6 W. L
$ p F, A: g. r! f# C/ [% v
prop1: $ Y# F- Y" U8 e% U a" J; Q% O! _* O5 n
mov dx,offset pro1 \6 [1 j* K, L2 o3 ^, L! d$ i
mov ah,9h2 o3 B3 N# o" c1 h# ?9 T' ]7 T$ n; D
int 21h
' m/ X# A. J0 m& A' { enter 7 k3 m6 I7 s x& n
ret% Z. m2 K- m7 ]3 |* r4 ]
: A0 h9 v+ O( X6 Y4 h" y1 T7 f
prop2: enter7 [$ l! v$ o |8 w3 H, k
mov dx,offset pro29 M5 I! _; o n h: ?
mov ah,9h
" F& `) k" O( a( ` int 21h3 R& I% c0 P' j( a
ret
, b3 Z; c+ N ]& n* p4 ~; p F+ n/ L
code ends
, U5 T, R$ Z( X0 O; Gend start
1 P7 Z+ w' S$ [( c2 u' c6 K# H* N) D9 H# ^4 H
( D$ p, v/ a3 @7 \- I( p: c |
|