|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧' Q" W& W5 E- V) l1 ]' W0 [) J) v
enter macro
& t ~; k" q9 c5 v1 O( b: b+ C push dx8 `( S' H$ m' g+ l! ^
push ax# s( d- J- U' c, r4 u o5 \
mov dl,0ah
$ `9 f; O' y- C7 J) G8 V- B mov ah,2
1 f T+ E1 V7 X/ q# n8 B/ K int 21h
4 e( N& j0 p @* { mov dl,0dh
) n- v1 m) S7 z( Z mov ah,2
& A- G# [! M O$ ~" E; i7 | int 21h
1 P' A6 G( x" C+ V- I3 z+ i3 a pop ax( T2 ]9 ~" K4 ]6 H' [
pop dx
- ?1 G# `' D& u Y5 ]endm
& J0 c7 ]" F6 L( [3 a2 M; X, ?9 z: S
assume cs:code,ds:data
( Y+ g& j1 k2 Gdata segment: r& H! [+ t& m
table db 300 dup(0)0 `0 }+ ~ p- {" e' W9 s3 @
pro1 db 13,10,'_________________________________________________',13,10
" z' d7 e8 ~1 Z6 Q$ ` db 'no more than 20 characters English name.',13,10
" `. G& g0 V; D$ W db 'For example:',0ah,0dh,'liang xin hui',13,103 U: B/ h; A ~: {% H2 ~4 E, ^8 ]
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,105 Z" z e5 F6 Z, s3 e: r- n8 ~
db '.................................................',13,10
* n; D/ z& A j% ~/ p4 h$ o7 w db 'Please input:',13,10,'$'( j$ i1 J( y; v
pro2 db '.................................................',13,10
0 l6 M4 @4 @4 V5 t db 'The results are as follows:','$'
+ q0 h: J+ h. b+ \- E" g" ?
% n1 g* e+ X6 s2 [/ b( P# B% Tcont db '________________________________________________',13,10- n5 W7 W- e( c7 _
db 'Can You Continue(Y/N):','$'
% X; \& X$ C! |# W& p% k/ ^- t; N& B. K
cp dd 50 dup(0)- j- n6 ?5 k# c O+ E' ]
data ends
1 I" V# b+ Z) h5 @- Q W& q
* S; B5 L; ~9 mcode segment
9 u$ `- d' p( tstart : mov ax,data
; n6 B) V2 M! p) } mov ds,ax' @6 B* M$ B; W! u
call prop1
) l& a! k$ ~" u; c' ]7 m7 s mov bx,offset table1 X; l2 w. N, L7 \8 y& @
mov si,0
' _+ M- B& s, J/ s" z5 a" U3 r; O- W mov di,0
9 D6 t9 d3 {% e, r! e/ p6 v ; _7 }& g- m/ q9 v
) p h* k4 z1 {# c4 O+ Z
call enterchar4 A3 q: [+ }: R, e. z# i. `
perp:
1 F3 X/ r. g1 e5 M9 p0 d( Q dec si
$ [" c. B1 W& q+ ?% ]" f) Y mov dx,si/ i1 l! D( D) ]2 T0 N
inc si ! w' e# n* R2 M9 c1 c" f9 ]& `
mov cx,si, A" }2 X6 r& s! |: Q9 ?
call arrange
0 ~& U# x# ^; f( B3 M call prop2
: y; v* x4 ~8 k. h9 n6 k3 E call putchar u9 J* `2 L r+ D& [
liang:9 f- H# x* W- I0 n3 X9 _
call Continue
4 k/ X8 }5 p' L; o" t call judge
8 Y$ ]4 i" N4 y( V: F$ R mov ax,4c00h$ | W4 r) H" J+ X* d2 y
int 21h# l" V! s5 ~& }" a! v1 s
( r6 y" S+ E5 O' p6 a
1 f/ S' X0 g/ f2 ^8 y% N7 d
Continue: enter
- H( u8 q! [, L6 s3 P1 c mov dx,offset cont
3 u( S% |( Z$ o$ |% _+ }2 A mov ah,9h/ d K$ _3 a! ^" g% ~
int 21h2 l0 n6 U6 E+ M* L/ ^, M
ret 1 u; J7 }6 W9 S
6 i6 J+ G/ R9 X2 O$ {) Y1 f! B4 {judge: mov ah,18 `7 [: A; @3 b4 d. F
int 21h# _* L' p p( x, F! h- g
or al,100000b$ {* I4 F) C5 r N, U% U# L, @
cmp al,79h. t' y2 f& l( f1 v5 T( w, \
je clear; d% D0 z. |! e1 K' i
cmp al,6eh. z& v5 C9 q9 D5 S. U j
je endj1 T9 W. h6 v0 b6 p$ e
jmp liang7 h# Y% G4 c' U6 h9 ~( C0 a+ ]
endj: ret
& ^% U' W% ~: x/ ^+ ?- w
$ f$ n5 w$ L0 ? ] ]1 Oclear: mov bx,offset table
2 m' e( G: f+ H/ f mov cx,300% |) P5 }% C8 l& q9 V0 e9 l
zero: mov byte ptr [bx],0
& V0 Y( n5 a* p( Q0 ~% [ inc bx
3 r3 x8 ^2 R4 @ loop zero
( Z5 x2 _+ q, s. H' U3 @ jmp start
+ J9 W& j5 ?! x6 N3 a; n" c& W- s+ v! Y4 ]
0 d: N$ N0 {( i# d Z& w i0 g, Lenterchar: mov ah,1
. R. t: G6 F- K int 21h8 R p4 \! z$ i! N# w4 {
mov byte ptr [bx],al ( K% S5 E) ]) m+ h. r
cmp al,13
2 n& G1 z& H9 g: ^" _+ r1 {5 J3 ~ je endchar
2 @2 n+ L5 m2 r- | mov di,1
- |5 Z! X ^2 o- X! c inc bx
+ l! E4 V/ l% l/ ]& ~# D5 A jmp enterchar
! l# o M3 f% k# j# L2 G; [& R4 B: s* h
endchar: enter
`0 g" r( L7 A) t mov byte ptr [bx],' '
3 n. O3 p8 [6 n. l/ _ cmp di,03 W2 U( K3 y5 i) L: l4 o0 H$ w: s* U
je perp
- d7 Y" X5 J/ J inc si
- t- W& X7 X6 G( m mov ax,si# S/ A6 }. z, f0 E
mov dx,21
. A, ]6 A5 L% q* C% G6 q, ? mul dx3 T# v; C7 a/ h7 @0 K
mov di,0& m5 _5 N- ^2 n: j( b
mov bx,ax ' a: G& t$ W5 b" V8 d
jmp enterchar& W% M ^. c: _# s1 p( q& F! h
- s. [, I% _, t( F/ garrange: push si9 m3 Z/ ~& A5 i( B
push cx
+ O+ s% A" Z9 c0 F2 v8 { mov cx,dx ! u5 k1 R6 K. d# ^
mov si,0
) O9 s/ ~# e: j! [3 z mov di,21
$ b- M7 Q2 a" \' t; J
+ c3 }2 s9 x7 l7 }s1: push cx8 a3 _" D6 n7 w$ J& I, z( F
mov bx,0
) @% ^) F/ s4 d) O: S0 J; X, F mov cx,20
! W( b, C$ N3 A1 _; yss1: mov al,table[si+bx]0 b- o1 l7 ]! J
cmp al, table[di+bx]
" Y' Y; ?7 X5 R- \ ja jiao
: B. Q! H4 n1 Y& D/ D jb s2
; S$ h: \- S+ X4 d% S inc bx
* G! S2 s" t# N" W+ J loop ss1
+ l& n# P9 X. { jmp s2
& c% S0 p9 c* }5 D
$ b% s! L: M- a* H0 s! ijiao: mov bx,0
! N+ B# J: K! t1 p$ \. ^2 C mov cx,20) D3 a+ K% @8 T' Q$ [, r( k4 J4 h+ o
jiao1: mov al,table[si+bx]
! v1 L* i7 U+ \; T4 z# X/ e) ` xchg al,table[di+bx]
) U% X; t/ C; s& t! N mov table[si+bx],al
9 C- o1 g0 I' `: h inc bx
, X3 s; R8 A9 C/ I' V6 O6 t; } loop jiao1
+ ~0 J( M3 _ i: K" y$ E" _7 Q
4 U$ `; j7 u" n) y4 b/ Qs2: add si,217 g$ n8 _( v, J- i& |8 U
add di,21
- I$ b' D8 y- H) G- {) n. x pop cx
O6 f7 u& P, F! {" o# h loop s1
7 Y# @3 ]6 n2 I$ |
9 u. E4 A$ y' {& y* C pop cx
' @8 @" }- j* S3 i; ?" k- R pop si3 Q* T4 ]' J+ ^/ }* ^
loop arrange
2 h5 R2 k% o6 Q3 R9 M ]+ f( C ret
5 n) w2 e6 k/ B5 _
9 Q3 q( j( o& g) I' C! w' nputchar: mov bx,0' U4 u5 i- T% g& {1 a( p$ X
mov di,1
% s- r. f4 q& i' Z c . d8 w" K9 J0 T9 u
, s% h9 T$ |/ Q5 `1 V3 `
mov cx,si" v) K/ S* p+ _; O* `" _ p" i4 L
put1: push cx9 z3 J5 p( t% c4 ~1 W
push bx
" ^ o+ G7 N- p9 U : m1 J$ b- V* d/ m2 Q# d- n
enter6 |1 {0 `! e# x4 n& Z
+ L5 y+ t* |$ K" N mov bl,10. K9 G+ F: d; Y8 Y
mov ax,di7 j, d! b- C2 u* a1 M
div bl0 u7 N# H# ]8 U9 T" o0 W/ b
mov bh,ah
$ T4 ]# ?; Q5 q; {$ ]: N add bh,30h
d6 Q7 F. V% q" H( @1 a H add al,30h4 o/ T- @* s7 o: x% I3 b/ ]4 T; `
. d% ]3 V9 I& o# o3 r1 R mov dl,al
; k* l$ ~2 V7 w mov ah,2
/ X1 b& L, ?( }" Q7 v int 21h
: B2 {. H0 w, k3 j" H$ a mov dl,bh5 a o6 L4 p: g) j2 e
mov ah,2
) {# F# Q! {& O- e! l( t/ @ int 21h
1 ]: C9 Z+ A2 Z* D5 T! E mov dl,3ah
* W, |0 O: F. w! v; Z: _ mov ah,20 q7 c5 X/ r; D- M7 g6 h* r$ E% J
int 21h
7 j0 b9 T, c4 H$ X$ i pop bx
. J/ ?) K) H( V0 P0 Z mov cx,20
9 X( @' N% A0 a0 i3 [ push bx
6 W4 r* I0 _' q0 y8 s; s6 uput2: . G' T" ~# [" J- Z# Q
mov dl,table[bx]4 J6 q: @0 p* ^: Q9 M" p
mov ah,2h
5 {- U& w! r0 o7 ~, p Y% ~ int 21h2 q, C) \% [* p( c! i/ x
+ E! p: D$ @/ g/ q5 d inc bx0 M: \' e6 K' z0 [. W* V# d! d
loop put2
' l9 W* D1 z' g0 P/ ?" l. T inc di - W: H5 A2 ]1 G+ d( H! s( Z% ^
pop bx
" r" q$ e" _5 G, ^ add bx,21: I/ V \3 }1 a5 }2 a2 p
pop cx
% E3 l0 a, b4 L; r, I) V
3 {+ s" o$ a( k% d2 @ loop put1* D3 K5 x5 {( F3 C7 @+ P
ret/ t+ W' K5 n4 j- ?7 m
& J( j7 ?$ h- w9 E9 ~& S* ^prop1:
" S, t) |8 S. o7 X1 i* l mov dx,offset pro1
1 O+ ?) }8 g" J! a J/ ] mov ah,9h5 ?, Q, Y7 L0 U
int 21h$ K F" \% L! s& Z0 ?4 p
enter 1 P, W/ r) E8 t6 u1 N/ L8 Z, z
ret+ X! e/ v# d/ x7 g
, M8 \( a1 N$ n* y8 Rprop2: enter
8 m- ]: j5 A3 i) z$ w$ A6 M; L9 h mov dx,offset pro2! q: \( B) v- J
mov ah,9h6 r( {6 f+ x" z: C1 W; s6 j1 A
int 21h
, h9 U1 Z, D3 @5 q0 d; E ret' L+ O& W# A% {* c6 T7 k
( n7 J7 c7 f8 m3 [$ |code ends( Y- n( h: G) o( _
end start
4 J( T* t% l# {
0 \. q1 u- W: I7 T$ V& B( i
& }; G8 O% j' d6 z4 {6 K) K( } |
|