|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
" I% ]0 \& i) w" X, yenter macro3 K& g' @' Y7 ]8 C$ e l+ s
push dx
$ C* O1 `+ X2 u push ax
- ~6 z7 Z y; L n mov dl,0ah
9 k" |* ~" y H0 ?2 X5 R5 _' ^) i mov ah,2
$ M% Z( _) {$ L) O6 Y, A0 ^ int 21h+ [8 W9 j9 I5 B5 e+ D) u, q* L
mov dl,0dh* s/ {: ?7 |4 Y
mov ah,2
4 J7 C( z$ y( \* E, _5 ]8 [5 V int 21h: y9 L2 W! ~* _. m3 x
pop ax, F- b9 t- @5 H. q
pop dx ; Q' j" ]9 `, m! i
endm+ u* o% K0 d1 z! q7 n
- Z1 H" l6 }( \) C
assume cs:code,ds:data* a1 N5 { `8 D: L2 @7 V8 n6 S7 ]
data segment$ I& u% U' Q+ H0 x
table db 300 dup(0)
7 ^) J7 w! T# |- n% e1 ^4 K( rpro1 db 13,10,'_________________________________________________',13,10 ~* @9 B8 N1 e! j) t
db 'no more than 20 characters English name.',13,10
* `3 G, O1 A) u- S1 L db 'For example:',0ah,0dh,'liang xin hui',13,10
* k+ [0 V8 J% O) F _2 R$ W db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10 h- R1 q# T7 M' n
db '.................................................',13,10
+ E& A9 t+ h: {) h- | db 'Please input:',13,10,'$'& X* w8 @4 @$ d* Z2 R w& U( h$ U0 B
pro2 db '.................................................',13,10
4 n+ q0 Q4 P) L7 T; |( } db 'The results are as follows:','$'2 t" k, e6 J! G' n* `; P4 a
' g" y# K8 e1 _4 f/ r C( ]9 ucont db '________________________________________________',13,10! s8 T2 x, D [* t1 s
db 'Can You Continue(Y/N):','$'
( F5 U4 o1 W+ ]( a& e
5 M: I- ^; W. }* K8 H) y! Q. e) Icp dd 50 dup(0)# s6 `& x+ b1 h; \$ v
data ends: K7 _1 ^/ z! d/ S
q" Q# A1 _9 I0 t* Vcode segment
' H4 O, Z+ ^ C. v4 T2 w Gstart : mov ax,data2 g; `. R; D! U2 `& y# A
mov ds,ax
6 A8 x8 t h# c, q call prop1
* i R$ U' [& i }) T7 u5 @ mov bx,offset table
' i+ \3 s, e. e9 f" a6 O mov si,0
f( \. O% h, r mov di,0
5 m }2 V5 y7 {, A. r7 _. B : [+ K W( `8 C; c$ _
, Z" h" |9 U( n) W7 [- g
call enterchar H2 i+ g1 u1 B Z
perp: ! A# E9 s* H5 r( y" Q1 d
dec si/ e( X* ?8 ]; i& } U
mov dx,si# F4 x& |; K5 e3 a( o& y: [/ J
inc si
2 v2 D, r4 f, v1 t$ m4 o mov cx,si8 v3 J% D$ ^0 c
call arrange
5 d. H- I2 u y) G& S call prop2* l& L0 ^9 r0 H2 \% r
call putchar
* m/ g' y# n! l$ Aliang:% t* z7 f* Z5 b' j0 X
call Continue
6 V, G6 v( Y2 i7 t; V call judge
; x6 O: ]0 b" j* w d mov ax,4c00h! C' T1 {4 s- y3 U" X
int 21h
4 g' w& `4 X" p: U' R
8 o/ I5 u8 Y. c) V( B- D8 p' f5 e0 |( e% E7 y; @6 z+ T) s
Continue: enter
/ w8 F% Z+ r E2 w" P+ }+ U/ I+ N. a4 @: i mov dx,offset cont
4 R% h7 G+ e& J! h- l0 T6 v mov ah,9h
5 p4 f/ o) ~5 l: T int 21h" N/ U4 r3 }2 u& X% [! O+ u: i
ret
. }2 o8 j+ B0 `, H5 @. j$ R+ W( o; _( z8 t% z
judge: mov ah,1* n4 N% W5 e# i. U
int 21h4 F+ Y1 _) R6 p; T$ M: m
or al,100000b
% c4 E ?% k) @! v cmp al,79h
H d' f" f; W je clear
7 V8 s. o6 e, y r2 G( f cmp al,6eh% r' O5 @& A) |/ ^+ \
je endj9 ~9 V: C7 D. ], m# v0 M( F S
jmp liang6 X( ^5 j8 e% K: E
endj: ret
6 i5 w! D5 L- }- p
; E" q8 A( g# F' Tclear: mov bx,offset table: u3 X$ s" i: I3 e5 x: Y7 U1 ]: x+ `
mov cx,300! e( @" Q2 a1 W9 K% y+ H% ^
zero: mov byte ptr [bx],0; m# H" K/ q& o& {! @
inc bx* k/ J; e1 }9 i9 d0 i U9 @ g- B( a
loop zero
, E% O* p7 c! v& s* P3 p% s jmp start
( w$ D3 O% }4 t9 d
* ?. ]) a. m7 A3 N% v9 X9 J) J! z4 S: s% a
enterchar: mov ah,1! y! l4 ]7 R" c* u
int 21h/ E' s$ c6 H' D. Z+ v8 {
mov byte ptr [bx],al 5 T! b7 z3 J6 J, }/ q% x
cmp al,13
& l. `/ A- ^4 q f# Q$ Y je endchar
1 D x: \: K7 ~& [$ V; ]( S mov di,1, u. {1 T4 J5 R/ a) Y$ @) b
inc bx8 _% S4 o+ z! ^5 R C- s
jmp enterchar& A' B {+ V4 A
- t, O, v3 c0 N- fendchar: enter : \3 w& y, d' D9 i% T4 Q# _$ b0 p
mov byte ptr [bx],' '
9 g) ^5 r5 C7 e) W8 ~( x2 ] cmp di,03 n6 [. o. k' G ]
je perp
. q0 T7 |( g& {! ~ inc si
8 u+ c1 @2 y8 E$ t* v H0 D. P mov ax,si. w, H4 }1 U7 q: J
mov dx,21
3 P7 Z# w& r* ~0 O1 l- x4 l3 b mul dx3 u1 \" y2 l- g! c' m
mov di,0
8 C/ z3 x. D# K% S mov bx,ax 1 e0 e. h2 C/ T0 d
jmp enterchar
% h8 N& T, y H9 ?9 u
1 I) b- n2 D; y% ^arrange: push si: c+ M. {2 m: q& h V$ i
push cx 6 F H$ N! d8 a
mov cx,dx
2 z" F- A+ t% n% Q/ }- B mov si,0
$ S1 d4 T* V- z1 D, I$ F7 k1 Y1 z mov di,21
; N$ D- T; x2 B W. ~; {: c5 W" S- H2 p" O/ j
s1: push cx3 a+ s6 y$ R2 q4 e; k
mov bx,06 F9 @# Q0 n- A4 d" e, h9 p0 n- q
mov cx,202 N7 R8 S" A3 f' _4 g# c
ss1: mov al,table[si+bx]
0 c4 a! a/ ^- P* ]% }5 ?& P cmp al, table[di+bx]& b2 O# o0 x- K4 q2 k
ja jiao0 s+ h E0 @ ~7 [7 \2 y
jb s2* Z3 S j' g" i0 S _
inc bx
% Q( n) } S# k loop ss1
: C/ I0 x s+ H$ j, U8 [* H jmp s2
+ N: p+ A5 ^9 t; k( G6 B8 z
( Q9 M) E/ ~% `# Y# w, z& _- n/ p. ujiao: mov bx,0 V& H8 s% G' c' G2 h7 F
mov cx,20
9 `- ~8 F6 @8 U% E3 {6 F# X6 N) pjiao1: mov al,table[si+bx]
4 z0 c( _1 j3 H$ }6 E7 n xchg al,table[di+bx]
( D4 ?! _0 N6 m% h* o, M% R mov table[si+bx],al
) Y# O( _' i( J# I inc bx! [( ?* A6 y* ~- k
loop jiao1
/ R5 c9 @3 g$ P C
- p7 L$ B3 J R; Q; S* P5 O* Zs2: add si,21; q. |$ k; a9 T. Q# [
add di,21
% l. N4 G" G. X- p pop cx
) D% s$ [ A6 k R3 D! [ loop s1& K8 O& B, c3 w6 s
$ R* u" P5 c$ {/ u6 R' Z' g# g8 q pop cx/ d; Q0 I) l& O6 p: J4 @
pop si
' Y9 }: v& U6 l1 K; L loop arrange
, O2 l' p+ G# `" w$ x ret; ~/ O y" o# x$ ]8 o+ K# K9 M% d
/ X/ L& T) _( U: d, @: h& L
putchar: mov bx,0% Y/ ~* z+ O6 S$ l. x( _
mov di,1
$ k: a" Y1 T" A) y+ X: J4 R. k
) Z' W$ P2 m' T3 @ 0 K% y8 P7 U3 o/ _7 Y' W- N, l
mov cx,si
" o; O% k- u; @: T- D' R( {6 K* \* Gput1: push cx3 W4 ?" j. O3 a! M' Y |
push bx
" |3 r7 W" H4 |2 P( D0 @. [ t; g6 C. E8 v/ v" m& y9 T& T3 T
enter0 g* W6 C$ O ^
4 P' n, y2 M8 G+ X+ G mov bl,10+ J7 b: W9 b) e$ @# i# |
mov ax,di2 f! O) k1 r' C
div bl7 U, p1 Y8 E3 H; s; x* n1 q$ p
mov bh,ah5 \$ W8 j: ~$ n* O% k
add bh,30h
1 E- w; z/ o+ G7 a9 G2 x add al,30h' I9 T/ H- _- Z% U
4 C3 S ^9 l0 v& G* v6 K& p+ C mov dl,al8 X: G% Z% B: q. d0 `3 B
mov ah,2, j( b! R$ m, q
int 21h' W1 L8 M4 X1 L. ^# @
mov dl,bh+ y% |" T- o5 Q
mov ah,2
2 c( p2 ~" z. W int 21h
( Y* l# p3 Z% Q2 ~: d mov dl,3ah
9 O. K4 G! S4 m+ I2 D0 }8 ~8 Q mov ah,2( n4 q6 \8 w$ q, Q
int 21h
7 f% R3 i( W8 |0 ~0 T$ |8 k pop bx ' j% O, e+ W: E4 P8 c" a+ h( i, j
mov cx,200 m/ _6 ^" g3 G) V
push bx/ R- g3 W# |, o- m
put2: " z9 V( d0 S, v# {7 v$ {6 f
mov dl,table[bx]# J u: Y* g6 q2 e1 o
mov ah,2h
. Z H& ^6 u( i int 21h
% A2 K2 x6 m6 K 3 a8 J( r; g0 ^1 M7 J
inc bx* m# U2 Y8 U7 o2 T
loop put2
, O3 p( h# A( p( \' K3 u/ h inc di
1 W7 p; ~0 N5 V% j+ L) G. q1 n pop bx
2 o+ M1 k) d0 f5 N( \. r2 v add bx,21
& y8 n7 q5 d$ m* r9 Y pop cx
- ]7 o( \$ K. K
! H% t3 F: I: P loop put1
" a5 v: V/ K- H3 o6 F ret( y) v: ~) U$ I* t$ m
, _' s+ w% e! f lprop1:
5 i* |: V- y) D4 Q mov dx,offset pro1
% g6 K/ H% _1 ^" g/ k mov ah,9h* ?$ ^1 M3 I( V5 K: W2 t
int 21h+ C+ F6 W! f" T4 y E" e7 l
enter * q& U' L" \: B7 B
ret
# L+ i/ \6 |2 c/ P* e5 D j' A& c/ R, F9 o! m% Y/ Z0 {
prop2: enter- c# t! R) z. E4 Y/ ]9 r; a2 Y
mov dx,offset pro2
$ H2 r2 O6 J ?6 p mov ah,9h, X2 @" Z( k, t6 O8 U" K
int 21h7 T( `( t# [' R6 M9 o4 [( Z8 z" \( E
ret/ F2 Q6 Q" p8 b* S( L- S
8 ?8 O) F6 t" h. v* s! h
code ends2 [9 k7 z2 r+ i. h( l
end start
3 X: c0 v, C9 X* a
( a% {$ z1 d) f3 ~# M) K. v& }. h6 u; D
|
|