|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧8 [8 v- C \ Y% }- E- W7 s& r
enter macro, x" l1 W+ Z& B& u5 |
push dx" i+ G- Y1 Y! I/ P6 p
push ax. L; S7 W6 `% M. E( e
mov dl,0ah: @- |8 l9 K* G: c3 E6 ?7 `
mov ah,2# u$ u' ?5 G/ u6 |
int 21h+ e$ r+ Q. W7 t8 _9 j/ Y. s
mov dl,0dh
$ \2 Z/ _9 {9 @9 ~3 {# m mov ah,2
. B& v& L5 u: S8 k/ j9 l int 21h: I! M, T' i" r P+ d( W2 q
pop ax7 d7 _0 Z% s' r
pop dx $ Z5 b1 Q" O3 A) g& S8 f2 n
endm0 s- l8 ~6 c7 q; {1 I, c% P
9 _) w- ]6 C; T7 l& Z Q
assume cs:code,ds:data
4 l% @, L6 c& L, C/ g/ A" C# adata segment
# T# o$ f. u: f K; q8 f& @9 Ktable db 300 dup(0)* t5 l( o4 u- D' P3 U
pro1 db 13,10,'_________________________________________________',13,10" z$ n. U' c' l
db 'no more than 20 characters English name.',13,10
' ?4 f" D I D9 M8 k db 'For example:',0ah,0dh,'liang xin hui',13,10
% o+ P$ N. O v2 f" x' A C$ L db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10' C/ _+ T- C! j1 z" N0 l! A% d6 ]
db '.................................................',13,108 x9 w4 Q7 ]% K
db 'Please input:',13,10,'$'& `( S$ K3 Z4 G* \' _! p
pro2 db '.................................................',13,10
* \" u' M' r8 d+ t/ s( h/ P db 'The results are as follows:','$'- r; d$ \ t8 |& R0 P% L
E8 T1 j3 j! G; Y9 _5 v n
cont db '________________________________________________',13,10
# v; F& v8 Z( W# D3 R; r db 'Can You Continue(Y/N):','$'
4 Z, f# v; D. L0 U/ O8 @ Q: f2 u0 d
cp dd 50 dup(0)
" s, m7 N9 ?* h2 O; y; O" {data ends
& s7 }1 D+ m; b, _& ?( R, i5 ^
4 p3 b+ y7 N" `1 r) P' ^code segment
2 l3 @2 b2 ?( o. f1 pstart : mov ax,data
1 Y0 d" a. c) }. {) K mov ds,ax
, x" m5 Z. c/ }2 Z3 R call prop1: b y( ~# A: z& F
mov bx,offset table
1 o- f3 x9 M: n1 R3 P: p7 \/ J$ ? mov si,0
' g( J$ Q$ x. V/ [/ u, r mov di,0
: M1 B/ t5 b: c# D$ j
" i- {# D, c3 T. V# c$ v 7 T# W& k6 I3 n- L: \; w
call enterchar( T6 D- } J2 @0 E8 o* f% b' ~+ ~
perp:
: A( i! m3 j$ C0 f0 I8 ` dec si
6 |5 ^. h3 Q7 S, y0 x d: H- n mov dx,si5 S& b; Q, m, D% ]2 c1 J( h4 j
inc si
' g2 M# _% S4 W mov cx,si6 [* W N& s: v2 _( u
call arrange
0 Y! n3 a; e7 Q' P5 ^) f) u6 u call prop2
& s8 o" R' J7 s& i. R* W# m call putchar
& B- r, B4 B/ ?9 D6 xliang:' w! t/ k3 ], {* S) z
call Continue9 l; D4 `. M* N/ B! G
call judge
; v3 | R0 \, f mov ax,4c00h9 L$ A9 h7 b" m3 {. J, b; F
int 21h. K# ]9 U( H+ ~8 ]! A
0 V8 k9 Q7 a; e) P9 O9 p
# G# D# g! u+ i3 Y! iContinue: enter9 X# I& [2 W7 L+ M# r4 i! @5 o5 P
mov dx,offset cont
* }7 q% o5 N) P" C8 r mov ah,9h
8 i1 I& G1 r7 l. k! X int 21h' w! J# e* N6 t+ T$ B
ret - W* |( ?; O0 A
; q* [' e o4 ] v" a7 n0 V" J% F
judge: mov ah,1
( b, a# C5 X1 E; N7 J# D int 21h
$ ]" [6 _6 \# r+ T$ c5 B: w or al,100000b
' V# d$ q' e0 D1 `3 n cmp al,79h
; P/ S0 I+ H0 x+ Y" }4 b ^0 T- U je clear6 }3 |6 E) T: @+ I% u
cmp al,6eh J2 O) A1 Q- W/ K: ~
je endj
9 q# F) M1 F) r3 {. U( A jmp liang' Y+ I2 W5 {1 X; p$ A% Z
endj: ret * k; G9 s% R( f/ b" v
0 q2 @0 K2 p6 n# ^; A3 {3 [, X
clear: mov bx,offset table6 O$ `, `* L0 r, o) e' k) E
mov cx,3009 M1 }) e, r# Q+ v; p$ M" F
zero: mov byte ptr [bx],0
* p, p$ l3 \' x- @6 n, z inc bx
. l* G O7 E# g) | loop zero$ u* b4 b Z {2 l, J/ _" @
jmp start) ?4 Y0 X1 e2 K3 p% u
! R1 I( g: ^8 r/ }4 q+ k+ W" k/ i$ S. N
( s( i' M* w: \; R1 A. L: u Q
enterchar: mov ah,1
! ?$ `) m: `% p$ r2 F* | int 21h
4 p7 C; {8 a4 H& N- L3 i- q+ i mov byte ptr [bx],al
+ t4 z3 Z* Z# {, |8 p cmp al,13
6 b; T; x5 B3 m je endchar : ~+ V2 M Z/ w! d5 _( N( ]
mov di,1
6 Y) D) w) G; k0 O, ?8 X W inc bx% M) ?) n! ^+ m- `
jmp enterchar
: Y* C7 D& {, E9 A/ u
+ N* @ [1 L+ N& Zendchar: enter : k& P" I3 Z2 F* F: d. B b
mov byte ptr [bx],' '
" B6 T8 t- j/ O7 P* b cmp di,0
[: e1 _0 Q8 Q" B7 G% i9 O( r: z je perp* H4 m$ s# E# B
inc si' b2 }! o) q t
mov ax,si0 V8 N$ F1 K7 T }' O( d1 t
mov dx,214 ~; x) F" Z9 b4 v( n
mul dx
/ ?6 o( J7 v& B2 K* j. z* m mov di,0
6 U6 [) \8 V* p# C6 r+ X1 h mov bx,ax
4 Q9 _0 t3 \& \5 G {/ O8 h B jmp enterchar
0 o# w) u4 j4 U, {7 u- S& r
3 F; x) B; {9 N! U9 yarrange: push si
) v; y1 p+ y& Z; p( A; q2 a. v push cx ; s& H- X2 k9 d5 g- t( Y9 L
mov cx,dx
7 Q/ ]. e% E8 P* A. F mov si,0
- e. {! u! M. w$ y; D mov di,21! h/ { S2 ^3 c' Y8 H
8 {& O% X. l5 i5 E5 cs1: push cx
2 M/ k/ R* a0 j8 X3 c mov bx,0
$ |$ V u8 x8 F* ]2 x5 G mov cx,20
; k' f ~8 u' K5 b: H# G" wss1: mov al,table[si+bx]8 s6 L, D7 h' i# z' e- V9 g8 J
cmp al, table[di+bx]
2 x/ O+ o, {, X/ j; F ja jiao
" C# D+ `; H8 Z5 C jb s2
$ H+ q8 L. ~$ e4 Z5 { inc bx+ r |$ f" b# q. `
loop ss1
& X) U c3 X4 m0 h. W: `2 {4 h jmp s2
: Q+ u% X( S# E, `" Y$ [; B! W6 |9 Z8 A
jiao: mov bx,0& n, r$ f/ Z2 G6 H6 h7 F
mov cx,20' Q6 ]& v! l1 l1 J# @6 F
jiao1: mov al,table[si+bx]6 l' }9 O% p0 P g3 m" Q
xchg al,table[di+bx]
/ h7 ?7 O1 }0 k4 }% g mov table[si+bx],al
2 O, C- o) G8 B5 e) ?6 { inc bx0 q) y+ N' v' W+ ]+ q
loop jiao1( e/ P, ^0 M G; c3 @; Z
+ x. w4 `3 p/ E% T5 x5 \" L8 Rs2: add si,21 ~# ~- S6 X( y% q) q# R
add di,21' u) {7 {' Y P. l, R2 f
pop cx
1 C) D# A% j" M% c$ | loop s1
6 h/ R! L# i6 {2 ?# J% g! Q1 b+ q2 R) D# r% ]2 a
pop cx
! H' t+ I) ]! b/ v" b* Y# s7 X pop si5 P9 C! s; e- [! q. l( k
loop arrange( w) n4 t- d& P7 z E
ret
x1 O! U+ F' H6 L$ ~0 C7 h! r) r! N- s, e
putchar: mov bx,0& w# j# m% J5 d- u" l4 [& ]) P6 l: Y
mov di,1
5 f/ g# l& n3 ?6 }9 m; k& m
- I5 R" p3 a2 g6 N! T2 l+ s# _0 u # U: z, _- C3 o# `* r
mov cx,si
5 J2 S3 R( o5 T% I$ xput1: push cx
V8 p, ~& U7 V5 A push bx8 N/ H$ |: b$ X {
/ r7 d v) Z% M3 }! p9 C enter! `, J( Z) B2 ?# c
2 ~* y! q; W; `3 i
mov bl,10' z8 k7 r7 n! z" G/ y' S/ l" u. Y
mov ax,di3 t5 S G4 Q' I; E( U
div bl' l+ a8 {+ V9 [5 @) [
mov bh,ah
m2 g9 j6 x* M$ f add bh,30h/ R u8 t* U, y
add al,30h
- z, N0 }& v2 v0 Q5 h / \3 H% N1 u+ I# c+ {9 u
mov dl,al
, t( H5 W: l3 j. w# N! |. ^( n4 E1 a mov ah,2
% K1 ]2 \ Z) e" M0 K0 s3 r int 21h
3 W' O- A- m9 K9 c/ b& H, K& |1 T8 G mov dl,bh
2 b( r+ E& K+ A9 o" P9 K mov ah,26 c) Y" {& S+ L: T/ c Y
int 21h
1 }. L+ e8 H5 r& X. { mov dl,3ah
/ H# f" d2 Z2 V( r. b mov ah,2
# a4 H- ]9 K' w int 21h, O4 G* _! \. i# S& i! C
pop bx 2 U' C( A+ b7 K1 X2 E) ^, s: Q$ V
mov cx,20
: V2 \# [6 m) H: t( W; M push bx. t" \9 O" s. q+ U
put2:
% p) d1 f5 y4 X: D# |2 S7 O mov dl,table[bx]/ v5 N$ h/ U4 k% {/ e
mov ah,2h0 q- R2 \- L1 }& x9 G% @
int 21h
$ X6 w9 Z2 g) e& ]2 S 0 E( R8 Z& ?8 ~
inc bx: w% Z) t% J6 e# w0 h
loop put27 v& N- x0 d$ z- J; c. s E
inc di
' Q; D$ `, }2 k! [3 N pop bx
" r3 l; p& y9 W5 l D add bx,21
; G7 ^6 `- y! X. ] pop cx& K, D1 D, F" c7 R4 {9 Z
9 N# R# @+ {$ e( v- | \4 w loop put1
- w! u+ h9 q9 n+ v6 X ret
6 x, f/ i5 t/ V, T6 J' e2 [8 ^ M5 N! T2 |5 z, B: c
prop1:
; ~9 b! t. Z" D- ]2 x/ J8 ~ mov dx,offset pro1
7 u9 B" H, \+ {0 l. q4 K5 J mov ah,9h6 I, `. |- c- m( B3 [1 }
int 21h
( O6 Y9 \4 b- R; V' q enter
1 p3 o4 A. [1 N ret
: b* J& T4 [# p8 U. y. x# _ Z1 y
J) n3 d% ]- O; _" Bprop2: enter
8 |8 l4 ^/ Y8 r q* j B/ @$ Z mov dx,offset pro2
* X: U8 ~" d% X! C9 J+ K( g mov ah,9h* K7 E. L% o' |$ f# ?
int 21h
" C1 Z, G# Q6 c ret
* I. P# f: y3 M2 T, T4 E5 B
% @. D( e. ^8 o. N' bcode ends
# E" ~2 M0 Y, h3 K+ B) Yend start# W" ?& d- h% J; K3 a
4 U. F7 i8 x. X# I6 d
, f- C m6 l4 ]2 l/ b |
|