|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧* E! a% R" F ?
enter macro
+ |7 w+ Q; [6 s, `6 c3 [ push dx
" G7 T# r: M5 d% i4 U$ a/ q9 t7 c push ax. e4 @: x) I" P
mov dl,0ah
- [. H8 @; O; |$ D, Y' O- ~ mov ah,2
+ P/ N9 Z! x8 c9 N2 f* _$ W) [ int 21h- i! n+ t1 @: U" q: c* ~
mov dl,0dh5 g g$ u3 |+ z. ? O
mov ah,2
0 u9 I0 p% F& ~4 t, g int 21h
2 k* |) ~3 `) R* l pop ax* v" G5 b0 L$ Z% U [
pop dx
- b6 w8 F/ o- Q/ Y. V+ |# hendm( l6 M& g! |; ~. t' G1 f7 Z2 N
6 e9 G9 o, ?% O) I7 @+ vassume cs:code,ds:data3 g4 M& V; d( X! u( g. s4 ~5 Z
data segment
; ~+ p* \& s( {/ T6 S0 ctable db 300 dup(0)
+ y0 g$ |5 x+ ^# Jpro1 db 13,10,'_________________________________________________',13,10/ s% H6 Z) `) r$ B" m
db 'no more than 20 characters English name.',13,106 }0 H2 ?3 Q; s" l: K# C
db 'For example:',0ah,0dh,'liang xin hui',13,10# i8 y7 |- m! e( E
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
9 Z. [! d& I( g db '.................................................',13,100 S9 _- l% n+ Z: m3 |) I
db 'Please input:',13,10,'$'1 k2 t0 K5 [% O8 d" ?" O
pro2 db '.................................................',13,10: r1 X- ~9 A* e% x
db 'The results are as follows:','$'
' u9 J% m2 {$ _ ^$ Z# [0 i; Z0 ?: |8 O9 r* a3 H
cont db '________________________________________________',13,10
5 d2 E0 A W- Z: v, ` db 'Can You Continue(Y/N):','$'
& }4 Q- U4 U- N E3 ^" |6 k% y' e H- f3 ?; @# d5 |9 U
cp dd 50 dup(0)
; v/ @" l6 F7 |' E7 ~data ends& Z; _% a+ H- {; `
7 c- v) T+ n; V _7 Y0 ]code segment
# z; N5 ]3 ~6 h0 M5 Nstart : mov ax,data
& s4 Y4 B4 c3 z8 r# o7 m. O mov ds,ax
$ H$ {, u! ^7 g. f call prop1% T1 t* {( k2 M" h$ t1 l9 ]
mov bx,offset table
7 | a+ d, t5 R1 D; Q1 q mov si,0
1 p1 P | w' e P6 X! c mov di,09 B/ I7 `/ m$ W+ `6 m" i, n) t! a
$ H% f8 a' i/ Z2 W0 I! [
% ?. H9 R9 V4 J& T: Y call enterchar! L& t5 A9 q. q
perp:
1 E6 M8 K: e" p. G8 m* D dec si
! p; ]% |6 b1 Y# ^/ q/ f8 X h% w mov dx,si# N, G/ N: |# i- A+ {
inc si
9 h; y2 F: e7 b+ y0 g) [% P9 S mov cx,si
5 L6 J" R$ o& }+ w- J call arrange
. p+ Y# J8 [: C1 X call prop2
2 \! {5 X8 A0 w) C1 z T( C# ] call putchar
' y# X5 w# F6 w% ~& H" a- sliang:
# w; f1 j# ~5 f. _) S R0 Z call Continue
, b# k; p/ q& E; w9 y# ], u$ j( A; z9 g% v call judge( `) Y0 m3 F; @# q
mov ax,4c00h# C3 F2 W- S( d/ L. L4 [* i8 |
int 21h1 f/ D U' ^- o5 b
( h( R1 U9 k$ U: Q. Q( W* j* p2 I4 |
! B3 m5 l. E2 E5 {$ h/ ?Continue: enter
$ R! `* d/ O3 i% [ mov dx,offset cont
, h' V3 X8 l* N) A z! W: m9 g2 N6 l mov ah,9h
" I) ~& ~% O. x% } int 21h
* ^2 `$ t/ x$ ^2 f. T" n, ? ret
/ C! { ~4 M% `4 R6 Z! ~* X r- O
judge: mov ah,1
$ `8 V4 s3 r$ f% d( G( i int 21h
. {1 y( k/ j9 b or al,100000b
( V1 w; n) p( ~ cmp al,79h
" K) E* J5 X0 G3 @ je clear9 k% @0 Q m( w9 {( g& @# c
cmp al,6eh4 `& g6 O+ @0 e! P1 k! A& v
je endj
- _0 t+ g# I5 r, p8 ~ jmp liang6 v5 K2 m* J6 T
endj: ret
- t9 Q) f8 O T8 M1 o 8 a( |+ E6 l) ]
clear: mov bx,offset table
" |9 _( N/ @, F mov cx,3006 |6 [- C; U) N
zero: mov byte ptr [bx],09 @7 d7 S- y+ z3 e
inc bx* ^6 {& K3 k0 S9 X, N
loop zero2 }* X# i6 X& {# H5 O
jmp start
6 i$ X$ d+ V) ?/ C- e% P0 B
! g& X b* G5 h& c5 F m" H
; G! c' x$ s2 B0 q% A1 b! @enterchar: mov ah,11 m6 ?; w1 s: _7 A
int 21h
$ m" F' V7 j$ @/ c Z. I i mov byte ptr [bx],al
9 F& Q; t# W, q+ p: O cmp al,132 S, f# m* c6 x1 L& a
je endchar " K$ B) X" ]' W0 ?, P, C
mov di,1
4 q# T* ~; R4 g2 \2 z+ x% J( ~ inc bx
$ z* d2 B. [9 H8 L jmp enterchar+ M6 d9 T( f- w9 l* S
1 q2 j/ c. j( W+ T6 }endchar: enter
) W# K, Z6 v( I: y6 p) Y mov byte ptr [bx],' '
; m) U4 j' B1 t9 r) W, r( n& Y cmp di,0. o5 Z+ r5 C$ h7 O8 f0 P
je perp
/ f) r* l6 Q5 g6 x' i- o inc si. w' Z2 R. \6 Q% `% S# W+ _/ Q# O
mov ax,si
) ~0 |# v' G" _- w0 Y mov dx,21
- N+ I+ E' c7 D! {- I0 ^ mul dx
z- _& E+ _! J! `0 S5 b mov di,0 [/ p& l. p5 t' A" G
mov bx,ax . u% z- a( Y$ J" m! c* l/ E
jmp enterchar' Z6 d2 Q" @) a7 t% V
8 Q6 a$ j! D1 |( K" R& Jarrange: push si
7 I0 K8 S6 P4 M( B% Q& q ]4 J push cx
2 B+ d4 ]: B9 o! j+ P mov cx,dx ; ~/ g W1 a7 n# V
mov si,0
0 q' S- {: t/ W) f% l mov di,21! O7 k: |" S8 G3 z
, z) d" s, f. c/ S9 u+ v: D
s1: push cx3 E- S9 Z( n2 Q
mov bx,0
" \0 O+ ~+ [1 p/ X( E; \4 i7 t mov cx,20& R- k1 r5 ^$ N3 P1 f0 f
ss1: mov al,table[si+bx], z$ _8 U+ m* D
cmp al, table[di+bx]
$ r+ z( W# S/ {2 V+ Y3 A ja jiao
/ _' l* b* t1 V! W jb s23 r9 Q W1 l/ ~) x2 ^1 G
inc bx
! m$ q- w4 @$ N( B loop ss1) O/ M" o& p0 {
jmp s2
1 O5 [- Q& v: ?% w3 B( z0 }* p3 `/ J: ]2 g2 Y
jiao: mov bx,0
8 N4 @% e2 C, m+ a& M5 ` mov cx,20
6 B7 ?; V- `# s1 P( ojiao1: mov al,table[si+bx]
0 L; m& _ e% L/ k$ J xchg al,table[di+bx]
* H, @; L; S' [8 x5 X mov table[si+bx],al5 O+ e" Z5 z! I1 l1 d- r, ^2 h
inc bx0 \ ?8 h e* f% N3 Y
loop jiao1/ g E6 w* i1 k# W
! u0 J! y% F. k9 q8 ns2: add si,21& ^9 l* X+ P# o2 n
add di,21
, w% z; A0 x* E1 ?* R pop cx4 d2 s: O4 E* T, N9 z& T1 E
loop s1
$ t/ L* j3 w6 `. o$ B6 b- u% A0 Z% S) s8 g
pop cx
* @$ @, a9 {* a* d) D, o9 y pop si: x3 k0 |+ P0 ~$ k( g
loop arrange
3 [8 B! s* S/ J& Q4 a ret" Q' A U0 V. d' {- N& M; ~
0 x8 L( w8 ?: t w* p! A
putchar: mov bx,0
4 `$ a# `9 Z1 b mov di,12 Q0 G w5 {* a
9 ?( j6 {+ \) b# j
4 e4 _4 q2 j8 J' U7 O. Q
mov cx,si) Z8 j, T3 J8 g( H
put1: push cx
2 O3 x( U' d3 |; `2 G7 { push bx
6 }6 o: T! Y! O5 Z. M
9 V, {, Y; `# H2 n2 E" i& i enter
{0 t- P7 }; S6 W# P7 H
) l4 B+ ]# R* G& G5 @/ d. X mov bl,10 _4 z' r! a" j" B# i
mov ax,di
6 S! `/ `; Q/ k2 y( t div bl
+ n& H& ^- K4 l7 V/ p mov bh,ah
3 E. R/ y* ?7 j( n/ t+ R% j add bh,30h3 T# y* |. E6 f* H2 I+ a
add al,30h
. t: N _( Q% W' {
; A! O7 O/ ?) M1 {0 W mov dl,al
$ A2 p3 c' m" V$ P) Y9 T mov ah,2
' [2 u" u. m; S. O# p# @: C int 21h# `7 M( L W4 Z, j$ i6 M
mov dl,bh7 E$ K% m+ I d
mov ah,2+ t9 F, N+ H5 s0 j2 S: S7 r
int 21h8 v2 G7 O/ A" f( u% b; j
mov dl,3ah
, [9 D3 q- V4 w. j& G) C mov ah,2
1 k/ h8 ?' X1 P7 {* d B3 r: T int 21h
$ K' l5 @+ S' h) f2 t8 @3 l pop bx 1 f3 W" B* f! {
mov cx,20
1 m. P+ e( u7 e8 f9 l push bx& A, U/ W4 M7 T2 m
put2:
b* M7 K9 m J" B8 J B# m3 D mov dl,table[bx]/ z7 b0 z' ^0 L# }5 b
mov ah,2h5 ]. b/ V, E, ~8 _1 X$ r5 E' }7 J
int 21h
4 X& [7 \0 ^: J+ W 2 _0 Q0 f! d* q! e! S
inc bx
0 k x, v. Z5 s; e+ ~ loop put2# ]7 A7 H( b% i% R5 Y$ g
inc di
+ s; H! j3 a% e7 N9 o& }( A pop bx+ N6 C+ d: H. Y- @% i5 N: L: i) k8 n
add bx,21
) F R" a B7 x% N pop cx$ ]# V5 L: F% O# l, D, p
/ K1 l. ~" H4 b0 w$ ]1 s: Q6 x( C
loop put1
- y5 A7 w$ ]3 P! M- X6 ` ret7 Z7 h4 }2 {( L5 k* Z
% T3 R7 ~& l& T' G% j8 wprop1:
8 h5 ?% O; G; m' D. W3 j mov dx,offset pro1; b! s6 D7 ~ r( W! T
mov ah,9h, \# D' L! r* Q
int 21h
" i6 K5 O6 B9 \; E enter [. H& J" \% b; G$ S
ret
* d2 S" x2 ]; c" Z+ [. n& d4 V, D. H+ B
prop2: enter
2 m& M4 P5 C! \: R5 b2 Z mov dx,offset pro2, d' W: V/ ?1 ?9 J" E2 O1 S
mov ah,9h
( }) l, g. G9 O7 }2 U int 21h6 ~9 |# W+ g) |1 S+ P4 |
ret1 H1 ]3 w4 f' o4 Q! @
+ [" Z) _3 M# P5 vcode ends
4 W5 @8 g" G5 k% s% R% Wend start2 p$ Z; D2 m8 b; \# P
5 H. z$ X5 X8 m5 G. o
$ M+ y5 p5 R7 D7 | |
|