|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧: o1 _ P! v) h1 ~; y8 N
enter macro
9 r0 o7 ^( V8 z6 o push dx0 m, ?& ^, Z) O
push ax$ I, m# z; h) t% O$ ?% |
mov dl,0ah$ _+ M- J' ]3 n; `3 Q; G
mov ah,2; G. F7 t- ]- Q6 @, {
int 21h
8 R3 }4 `! U" Q. n& |, U6 q mov dl,0dh
5 W- T7 Q" j+ E5 I; a mov ah,2
. ]8 Y% b+ B: a- V I; o int 21h+ n4 y2 F* [+ ]2 `/ C0 g
pop ax6 w6 d4 D. K$ Z: V
pop dx / K# _0 k0 x2 _- Z! q
endm
6 I- j- L! }. \ h; g5 G
7 m! o; j9 P5 L7 R+ {assume cs:code,ds:data
" w u+ d5 A, n/ B$ h9 Jdata segment) e3 [0 R; @ X/ \% ]4 _
table db 300 dup(0)
/ |7 L$ F( n! b5 v3 g: y1 D8 _pro1 db 13,10,'_________________________________________________',13,105 B" s+ t" h, v6 n, `
db 'no more than 20 characters English name.',13,105 W% G0 ^* u, E$ W; d: Q
db 'For example:',0ah,0dh,'liang xin hui',13,10
7 N, y1 G# e$ U Y db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10: U% w/ O+ D0 U+ q; e
db '.................................................',13,10
4 w% l( S2 r8 U) L7 {8 m4 k/ M db 'Please input:',13,10,'$'8 Z" u: w V) j- I% W, Y
pro2 db '.................................................',13,10
8 f8 m+ F W/ {2 ?" f" v. a db 'The results are as follows:','$'
! @6 C& }# i3 {- q4 n! N
7 {9 d: m q2 bcont db '________________________________________________',13,10
6 L8 f0 ?' c7 j8 F db 'Can You Continue(Y/N):','$' Y' K2 P1 E' X
7 c% g8 y4 V; T4 [; f# ~# I+ scp dd 50 dup(0)" W% j5 B( x0 d* p, D
data ends: ^4 {7 r9 E+ R5 }" F+ } z
+ j, L" o1 S {code segment
# Z# t1 ]9 H4 G1 S$ J( F% Qstart : mov ax,data" f' w6 l$ ?/ n: R
mov ds,ax
6 p; i& R; B% E# \- P0 U call prop1, P8 O Y! K+ T% K7 y
mov bx,offset table
: J1 E) j4 q% p( \ mov si,07 _/ b1 y0 X2 B* [2 {9 r7 ~
mov di,0
) r$ R3 N) V. t* Z6 k- D
- M, w* B% d0 D * t6 X! n5 c4 l
call enterchar, b$ D' F6 @% s7 x! x. _/ w# `( h
perp: 7 f3 l: K2 x1 c; X4 E1 [
dec si
/ A& T9 O+ v3 t mov dx,si
5 b4 ]# G* ^- S' i6 P, l! o* T inc si
- [+ f/ `% O. E$ V2 e mov cx,si
. a& Q J: b# `9 j9 o+ |6 N, h call arrange; W5 T5 }6 M& C( O5 g3 M
call prop2
# y8 T1 ^" [0 b( \ call putchar$ N8 U6 J4 ^ y+ ] \4 }
liang:7 j; D" I- s( Z* c' X6 H0 v% O4 Y
call Continue
* d: t: {+ n: W call judge$ |8 q9 ]! c( ~7 c8 d+ ^
mov ax,4c00h
: M( b5 O8 T) U* T int 21h
9 j$ c% H& d ~0 b, f7 r
( x/ y$ t: [' M; I0 B
8 ]4 q8 _$ Y2 w$ QContinue: enter1 ?& C2 [' ]- ?% }* W- ^1 j3 M) V
mov dx,offset cont
% ~2 {/ L* I) b& L+ {9 ^0 y mov ah,9h; x/ D0 p9 M1 c8 B* ~) n8 O$ A
int 21h
; l' {9 y6 q* l c ret * `6 V% @" t. m
. }0 p9 o2 |, y) N) ~judge: mov ah,1
4 Q8 A6 O, C# E) e1 L( S3 B int 21h* I C+ {/ o( c& _/ _5 x; \; A
or al,100000b. U( ~& i! J' U8 N
cmp al,79h
: f% F' `+ L4 O" E9 s1 E/ Y# n) R N& { je clear
8 W! Q" x/ [/ i5 D5 M$ E' _ cmp al,6eh" I8 I0 l1 L9 ^- f8 ]8 v1 b% G
je endj
2 A! Q' }+ w% q/ S jmp liang
- d# h& ]3 w o: Z6 C6 |. r. rendj: ret
& }2 U+ c4 }, }1 u
- B- q9 b5 x& a/ k$ f* [" zclear: mov bx,offset table
! w; a7 g4 o; S0 o" H. h: j: X, M mov cx,3000 @, O- } a9 O! p& I4 r7 s+ C
zero: mov byte ptr [bx],0; X% X& g2 c; ^" f. J T1 ]& S% }
inc bx6 E5 p4 H/ h K+ C, R
loop zero3 ^" z+ E/ i0 y9 j, p% _
jmp start
' o" p, U q+ Q# u% a7 K, H3 i3 r, Y7 l; G: U( ]; o
; F6 C [# A) ]enterchar: mov ah,1& E/ J$ ]$ H* l7 X7 s. F2 n- O; a
int 21h( g3 Z' s1 ]& R" ^6 I
mov byte ptr [bx],al
: B* T8 Q$ X( P1 D cmp al,137 v& V, g( e" C9 F
je endchar % J4 y5 H( ]2 M6 K4 _
mov di,1" o/ a5 J0 D5 Q7 c$ I$ [% q
inc bx
, J- X w: @7 M: _6 Q jmp enterchar- u0 b: R6 b) x0 ^7 o2 J
& h' a% j" p+ _, F. w; O4 x
endchar: enter ! |2 _0 Q1 P( i
mov byte ptr [bx],' '
/ v, I8 G' `0 z* P cmp di,0
* C' f- X( c( w, J je perp$ f: n6 n( `/ J" B; ~2 C, b
inc si
4 G& O+ [ J4 |( J mov ax,si( K" _7 l. J' D4 d$ r: D0 U
mov dx,21
. X* u" z2 Q2 f, n$ F mul dx/ G3 W: Y6 y1 N# I- G0 }
mov di,0
' H R' N9 Y: F- { Z. o [ mov bx,ax H6 b& ~4 S! e, N
jmp enterchar
3 V: y( ~9 a h/ h+ d7 z% a! B2 J
@6 Y" C( y# h$ Iarrange: push si! T/ W+ t$ N2 y+ S3 }9 h% e& N# C
push cx
3 \6 \, N1 w% h. V mov cx,dx
; U( t! j6 t. E- \7 y# d0 d6 o mov si,0/ a( l; |, k* G0 @* R2 n' L1 T( j/ `
mov di,21
5 j2 R! @2 }% ]" T% y1 a2 y. c; V, A: b# T
s1: push cx7 ?! `! a3 L9 l7 |+ P$ g
mov bx,01 f. {0 `: }9 z2 i @6 l
mov cx,20
+ _; C9 l$ S9 x9 uss1: mov al,table[si+bx]) \. z: H* W6 V- {, z- W" Q0 ~0 _
cmp al, table[di+bx]
8 |7 ]% p" G% }3 M8 F ja jiao
6 L$ m1 c; h& m7 W3 F$ ^) [ jb s2
O# u9 e$ f0 ?5 }6 o inc bx4 h6 }/ N2 A1 d$ q! k6 Y( f- `
loop ss11 b) U% M; ~9 X9 ]: T' `
jmp s2
& P) F1 X# v6 C% k. B0 T9 C+ d/ y, N4 ^! b f
jiao: mov bx,0
& a$ D; E$ C! A9 x |" g mov cx,20
{- G- c, T Z7 }- Pjiao1: mov al,table[si+bx]
9 ?6 b9 n1 ]( ^! t6 v xchg al,table[di+bx]
" O9 e& Z$ V& C! W mov table[si+bx],al, T B8 R5 |$ `6 o N2 ~6 ~5 ?
inc bx
( ?2 M( O! W" k9 U loop jiao1
% Q8 K& O* f8 G7 q' G5 g- `& @* K! V* j4 T3 k. |# M; i5 s$ ~
s2: add si,21
/ u& M4 ?4 r$ i add di,219 q' z8 R+ v, r
pop cx6 C- c4 W7 } j i9 X3 m
loop s12 ~1 [" r5 ]: p* @
& M" P9 g8 r* C, N pop cx7 v: ?7 r- v0 S( e; S/ r+ Y
pop si
4 b- P& p( _' y: ` loop arrange
1 m3 U( T# v+ N4 j% P ret% |$ ~+ S0 v7 Z" Y$ p$ Z8 v
- O4 Z+ o" } yputchar: mov bx,0
5 I8 N! ^( C7 G. [ mov di,1! n, R! ~5 n7 k+ D
7 Z4 n$ m# |5 S
( W/ X) d% H# v: { mov cx,si
* _1 b/ p! \2 a! _put1: push cx/ @' s+ O8 M( N4 w; g, L9 J
push bx3 I t. k' z/ i) f; k! H
( C9 Z }/ _. C: R9 `* y enter
. R/ V5 |1 f; g - B- @8 M* L& g B6 ^. N
mov bl,103 s( H6 a' |) P& |, M, J" C
mov ax,di% Q- h+ g! ]( w( p8 Y. S
div bl2 u% i' F& S4 P) {! a
mov bh,ah3 E; R9 y% `0 I% K! T! y
add bh,30h
1 P! h! ~( L/ n A add al,30h2 d3 p# g! |/ s8 g! P F
5 c# c& H9 e) K7 B) p, k5 c
mov dl,al
! ^. [7 W+ ~+ U4 K# G9 c: ]2 k mov ah,2
% a# T: l; ~3 d$ N int 21h( x& [9 n8 G" _5 U6 G' i
mov dl,bh+ ~9 m! Q4 j* a4 G" Q
mov ah,2* [/ f; @/ a0 [. H
int 21h) ?& M8 W5 Q! m1 i7 M
mov dl,3ah" k7 t+ k1 i" z6 Q6 ^
mov ah,2
6 f! w/ e! F" I- X int 21h
1 }+ ~4 @( A# t$ ]' x( x/ ` pop bx * ~$ F9 w _+ j1 B1 i
mov cx,20$ @# A1 x' H) w& h# {& m* M
push bx1 p: M9 L& J5 P. H) r$ h
put2: 2 U) m% a) Q; [5 U" {' \
mov dl,table[bx]
" o' H; F" l2 U! z; N Z! u mov ah,2h. c, j- G3 r$ a" k0 _8 e( R1 H
int 21h5 B1 J% o- s+ w2 w
0 C3 n- o# Y5 t
inc bx) ^& X d! h$ h, @
loop put2
2 N+ d- y- S: A/ f6 J7 D {" z5 W0 a inc di
: \2 P$ Q0 }$ [" I) L pop bx
. Y6 d. E3 ]0 f5 m | add bx,21% q6 ^& g. s7 {1 c+ T& Y. D
pop cx
- g: `6 U; w' S$ X' D: g" n 5 V" [0 K9 k" F5 F0 H& \. C
loop put1
}0 Z s/ i. ] ret. O! ]0 ^1 h* d& ]- u8 J4 R+ a* S
& f( q0 i3 }) y" w) S$ M% a. j; sprop1:
5 {3 Z' {, \( {5 H; h5 _ mov dx,offset pro12 O: o3 N/ G- F' a. l& T* p5 ?
mov ah,9h
* x5 J; V {0 p0 _- \: {+ h) x int 21h
4 N. O8 ? Y2 h# | enter ! i6 ]: ?. E2 T) K& d: c
ret
% q) C: O# X" Z/ c5 K% r3 v6 h8 G- f( h2 \: V [
prop2: enter
6 S: s4 d7 w0 y$ J mov dx,offset pro2
2 L. Z/ ]6 }* j mov ah,9h
7 t8 j J, k% ]5 b9 V# I int 21h
t9 }( F% W( j ret; \6 v5 z, y: T& x' ?* x
& C8 d* b3 \" r3 E& |1 C r) P
code ends
' s; I2 |+ d. l7 b: }8 g Vend start
- Y6 q8 U8 q( V" [) d- R& }2 P. c. Y! P+ K1 q
- f, `9 J3 I9 J
|
|