|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧4 p, J6 m# Q1 c" E: {; o' R8 C1 A( d
enter macro
& s/ A( k+ l. A G push dx# i$ u, `0 v( U
push ax) F- |2 b* I5 W: ^5 Y
mov dl,0ah) h, [$ n$ Z& h) O
mov ah,2& h) {2 n( F! w5 |+ j4 g7 l
int 21h4 _7 C- ?, D4 A, o: I$ F2 W$ L
mov dl,0dh
( b' d5 B( c9 Y3 O mov ah,27 y, P# ]) @# j* f0 e; h$ I
int 21h
1 w$ u0 V& e& v! }9 T/ |( D8 d pop ax x' {/ E6 V9 Q
pop dx
9 c# L' V" h7 ]8 Nendm/ C5 U: d: _2 G( Q0 s& h+ [
6 I' w0 Z& ^4 Z) l. _5 G3 k J! l2 z
assume cs:code,ds:data
6 b$ W2 {5 @ K% jdata segment
$ D2 p5 c7 Y9 c# L2 m6 J' Ntable db 300 dup(0)& a; L1 e& Y* s* b
pro1 db 13,10,'_________________________________________________',13,10
2 t# d5 z8 `- p# \9 I db 'no more than 20 characters English name.',13,10
. O' d8 h0 J* ] db 'For example:',0ah,0dh,'liang xin hui',13,10; {$ @9 }2 ^( G2 X
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10 {; ?8 R$ ^# Q$ h0 e6 R& q
db '.................................................',13,10
, [' c4 B' c( o0 A) M7 d; b, @' Q db 'Please input:',13,10,'$'2 f; n: V1 @( K Z' f+ M3 i
pro2 db '.................................................',13,10
( W! S9 q/ B9 w5 C8 _" o db 'The results are as follows:','$'
+ n9 `1 \2 H3 x9 ]4 `3 G# Q& L0 g( x) U+ i9 p* o9 @3 J4 Y
cont db '________________________________________________',13,10
! A2 Q/ ^1 ?8 d% C8 A db 'Can You Continue(Y/N):','$'& i; W+ @& v" E: [4 X: O) F% S( A
! v% C3 F8 e! D; I4 r4 l
cp dd 50 dup(0)
6 X8 z. z9 d* P1 j* r: @data ends8 y5 D* q- C: q# o
& l0 k" L! r3 y3 icode segment2 l/ i$ F7 Q' ]0 n5 ~
start : mov ax,data
0 B; z5 {' U! K1 z8 K mov ds,ax3 O6 n# `3 Y& s3 k* i0 z& @8 k: e
call prop13 \, Y1 A6 V7 _! E4 u
mov bx,offset table/ ?& x, @! R* E d
mov si,08 I8 H, Y3 M" ]
mov di,05 a' j5 H0 c' B& j0 ~2 z
9 a) b+ ^/ L* s0 u0 r! _
- o' c# F' [/ K) k1 D* ?0 y6 L
call enterchar
, P& Y( k1 \3 `; h. X* w. }perp: ' u- P+ B, J7 m. P6 g
dec si
4 N5 y7 j2 d$ d) y* H4 I2 j# t mov dx,si- g' P4 h. l6 l( ~* ^/ R% t5 h
inc si 3 z! D7 Z( G) j* ? y2 T
mov cx,si: M5 w) |! K8 x
call arrange
+ L7 Y3 e5 U% b4 ` call prop2/ P. q: P n# {4 u% h( |
call putchar
: q @6 L+ p# k5 Z& Bliang:
\9 b* }# w% K ?+ [& u7 q call Continue
9 M' I* S' \# s+ U call judge
b# F3 J# t8 f$ `! P mov ax,4c00h) `1 M. S) F, l/ q* }4 S
int 21h
9 a( f! c' o" \" D9 [; @& ^
( z9 ]# n: o1 d
6 }) s5 G ^& C _" _" }- o8 X& lContinue: enter9 V. t; P' O ]$ u& d. V5 I9 H
mov dx,offset cont0 t9 g0 S7 |2 b2 m9 c
mov ah,9h
' y. G# I) O# r- y& m+ a4 V7 b( c int 21h3 z1 L4 j% |( u( f
ret ! {+ e+ T0 O1 T
, J0 Z6 V7 q* S/ w* Y7 @: x; ]3 [6 e8 sjudge: mov ah,1
6 V* P7 m: N) D# `$ ^0 i7 M' A int 21h0 Z! f9 o% y8 O
or al,100000b9 v A9 q, G+ ]( t R: x/ M9 G
cmp al,79h V: v- M" n$ c* [6 s1 Q
je clear& T3 b% B# g/ A; P- d; j& ]8 [+ a
cmp al,6eh
$ Q/ M2 ]% r6 ^: p* ^3 b/ L1 ]2 T je endj
2 g0 G4 k+ E6 ]- O( ?8 O9 t jmp liang
4 A" W) ^& G! {- E2 j5 v" fendj: ret - R- w& c, D$ c' C
0 ^& G: W1 K* e
clear: mov bx,offset table C% F4 W' Q, w) x) V$ |2 g
mov cx,300
3 n! O8 n6 q0 z# j4 gzero: mov byte ptr [bx],0
" p% k* l Z. P% N" K0 Z inc bx
# G7 r$ o% Q( X0 T9 M, T loop zero
7 }0 H: @/ n* m- n6 q# q jmp start. G, \0 p; X& s7 `$ D
5 a( {/ F2 Y, D1 q& A: \2 C6 X( t* W6 E# x) _! }1 S. V2 w
enterchar: mov ah,19 C4 P, f0 l! Z* U" S
int 21h3 [: P* {' S8 R) \' N6 r
mov byte ptr [bx],al ( R3 V& i- h6 K$ Z" [. N2 Z
cmp al,13- i% }& |: s3 e$ b
je endchar ! E$ u: ?- a2 a: a X g. g. e* T
mov di,1% E$ h) s) V6 F# @, P
inc bx
' b! O+ H# x9 Y' ?0 S' A4 z; n( r jmp enterchar& U+ N/ d5 f5 Z6 T
, n1 k7 X# w3 a) j7 Dendchar: enter
* V. V# x5 |) V2 t7 ^$ r7 `, h& n mov byte ptr [bx],' '
, a/ z @* N- f$ C cmp di,0
; _. u; X" g. X2 v4 ^9 c% b je perp o" o4 _4 z. z
inc si% r& T9 M' k* X$ k
mov ax,si
3 W+ A$ Z, X7 ? mov dx,21* g: Z# M6 u; ]
mul dx! @$ s* V- r4 o
mov di,0! }, V2 Z. k6 F N7 C2 ^
mov bx,ax
) [+ d4 d( w5 S b" o jmp enterchar3 T6 L/ p& x! |" s* t( M) O; V; u
: ?+ b+ ^4 B" G8 }
arrange: push si
$ m9 m' v8 j' y; s' d( H# m. s push cx % @; C! U& \6 g. F0 j+ b8 c
mov cx,dx
" J9 ~; Y' @+ f1 t mov si,0+ Q2 X% x( O' F% t: N! O6 {
mov di,21
+ r# l. b( U- {1 W
3 H: i6 e% A$ m' P+ M0 p) B, \% Hs1: push cx
& D: T: Q# u! f. r mov bx,0: d! [# d; D1 B$ Y
mov cx,20
& a0 B2 F2 Y" |& q# E0 lss1: mov al,table[si+bx]
. U( i* R! f' [8 _* }0 \) D) W# x8 t cmp al, table[di+bx]
9 D& m; B% n |# z ~4 M8 j( e ja jiao
" e8 _$ p' \; j3 t8 z1 w jb s21 _2 v' ?7 d8 d7 ~; f6 Q
inc bx7 W; E! f. F0 e* \6 C0 V+ H# L
loop ss1$ q0 p0 z5 S# \7 G& t7 |
jmp s2
/ ^7 p, r5 |* X0 n- E
5 a" R5 `2 L8 U; |5 p" Rjiao: mov bx,0: O+ Z5 v/ \8 R
mov cx,20
6 E, A4 g' J7 sjiao1: mov al,table[si+bx]
* _- K5 \( l0 Y/ H5 s3 e9 G xchg al,table[di+bx]
3 C# Y$ Z3 H& s/ k9 }& f) Z mov table[si+bx],al
" f; g- K3 j# C3 m( F/ E inc bx
- o) W* q3 x$ t+ \1 r& R loop jiao15 x9 O) n- a& B0 G- ?
8 E2 f+ ~6 ~- S
s2: add si,21
! R4 K; w+ ?3 B. j6 ]6 V, w add di,21 e* w7 ?# ~' l) h2 p4 g3 S9 t
pop cx
' h/ }& M+ c0 H \" x% N loop s1
3 U/ M# Q% _% K0 @: F x: h" I; X6 r+ [; a% @2 T8 k! x$ |2 S
pop cx9 z' N$ Y2 r9 l& Q: X. ]
pop si; l. p# { O; w+ ~
loop arrange
+ T% |. x: ^) g4 S0 b3 I ret# Z0 x, g5 b3 o7 ]2 r) B1 R# K' U
4 M0 a5 E- ^6 o4 i" U: |* l( uputchar: mov bx,0# P# E; L! M+ t- l/ b* N
mov di,1. Y$ l! i/ t0 s: N* u. ?0 b5 o
4 w- Q+ p% X' S; Y. c) ~& S
$ p$ J* O1 B% o4 L" C0 {/ P
mov cx,si
6 s* E9 [2 w' q; pput1: push cx
# G- U* T; b( V" z push bx
0 e" g8 K5 q1 L& _' l/ W% x . R& I5 ?6 H. N, x! G7 V& G" f% w
enter/ \( h3 M; ?& U: m7 O. }+ ?, R
/ P, t6 G+ @; ?$ a& x
mov bl,10
5 J* \- I, a5 I$ M5 K | mov ax,di0 p2 E) ?2 N; h8 p/ m
div bl( K/ \" n- q4 h# U8 C4 w M
mov bh,ah
% Q o+ u! _. {1 O add bh,30h
7 x& i2 x4 `/ Y- P. H add al,30h
- c: h0 G/ _! w( s: ? 5 f& x5 o: @; k# J1 i; H
mov dl,al
9 K) ]1 p# q) L i mov ah,20 c* A7 \4 o- n* W+ y& K
int 21h B9 o5 p7 _ ]; t: c
mov dl,bh9 V9 ]% w0 T: H0 l
mov ah,2- A3 D% @0 j& K7 I
int 21h
+ s2 V% j4 J4 m mov dl,3ah0 ]! {. D1 l0 c2 O4 r$ e
mov ah,2
8 s) @0 \" X5 ~+ W' a/ X0 Z9 f int 21h
5 M6 X' i* C3 m J8 a( q, J pop bx
7 [. i0 F3 f2 J; i! k mov cx,204 w( A1 Q0 k x* \8 ?- i0 Y Q
push bx
{8 U6 Z2 O/ ?3 a* n) lput2: 4 m: O$ }, z! q2 P6 l' h
mov dl,table[bx]4 Q7 g- g& h1 [: i! A
mov ah,2h9 I1 W2 ~6 A$ j* h
int 21h: I" K# ?* c2 O i1 |- o
0 R, G" M# g( E, u/ ?4 {5 f5 R inc bx2 q# r, v) Z" o8 E2 c6 u
loop put2, @2 y' M/ z& Z- `1 g
inc di
6 \7 f5 ^3 L( K6 Y! m( t pop bx' V1 W) S! z8 j
add bx,21
% ] O3 ~/ U; x! { pop cx& d9 k8 F7 P! ]% Q3 A0 i+ D
: c7 S" F& _7 ?& a9 d8 x% Z loop put1
i9 B3 \1 S/ G& t; [2 }* J5 u ret# n0 Q+ n% l: @ q
& }, o8 W0 ~3 @7 ~% T/ ?( W2 \; wprop1: ) i* A6 j; Q2 ?
mov dx,offset pro1
5 A: y4 g# F; |8 A mov ah,9h
. w+ R% I: s+ \ int 21h
9 G6 q# Y# |) R6 D5 f W8 O2 X# V enter ' c: {1 y: c/ h) {! j$ l0 S& z
ret/ z2 U6 W1 T8 p; k9 K
2 p) g; l- ~' z. E
prop2: enter
* S0 Z8 D3 q. D( A# D mov dx,offset pro2) t3 {# O* A9 T9 d% y
mov ah,9h
) a- ?4 m4 d" b$ C$ x( f int 21h6 _/ h1 ^3 t b" j
ret
4 W) s6 r- c* s2 a
, W8 z/ s' I5 |code ends
9 H) K+ l3 d5 `/ u4 e' {7 t+ hend start* ^+ d& v! [0 @: h; W- w9 P
0 j7 }* i K+ r) Z5 F# q& u& R1 A( J% M6 [/ P; E6 K
|
|