|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧" C% t }$ D1 Z1 @- z- F
enter macro
+ D% Y- j0 P& H, ~ l push dx8 c4 e: V' v) C; m" u; z
push ax( c3 x% \( ]$ Q( Z. V- |6 h* A, i
mov dl,0ah" [7 {6 S( a4 a/ b" A r# D
mov ah,2! F0 b$ s4 d4 N/ [1 T
int 21h
6 A: \; \; E3 j7 \+ H mov dl,0dh/ }( W4 U! c* s! B
mov ah,2+ `; g' ^$ {$ X' O6 Z/ r# z
int 21h6 n# K. s. a+ N5 L ^
pop ax: Z5 ~2 e4 L5 b6 L
pop dx ( K# n8 F# Q7 e
endm1 a7 h+ m/ S" T- g* m/ ?
4 O9 h4 f4 Y$ b* Bassume cs:code,ds:data. G" K8 h" ~- m, H/ E, ]( A- B
data segment g& e* Y# A5 |9 E- L
table db 300 dup(0)0 _6 n k8 W7 ]0 o
pro1 db 13,10,'_________________________________________________',13,10
4 n, d7 r5 h% C9 z0 p+ h db 'no more than 20 characters English name.',13,10
3 j& y g1 S w db 'For example:',0ah,0dh,'liang xin hui',13,102 `! w2 p% U( w4 w8 k; W! ?1 i$ ~+ L
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
" a" n6 g, z3 p( e/ X db '.................................................',13,10' J9 Y+ L: _: u4 Z
db 'Please input:',13,10,'$'
- {) X2 s" I& Ipro2 db '.................................................',13,10+ g E; c K) _2 S* ?! m1 M/ }
db 'The results are as follows:','$') y5 ~* C9 ~2 u. n: K- m% Q' D
! T# ~! p. p: |+ }3 D8 ccont db '________________________________________________',13,10) t+ n( U! Z+ g6 J
db 'Can You Continue(Y/N):','$'" a" ~7 t4 H$ i% C' E2 Q
/ p7 e/ M" }! n- |
cp dd 50 dup(0)
' n0 a1 o4 S8 m% n' ^data ends
7 t9 D; c- ~4 {2 n# ] ? o- X5 D5 s1 Q& n# p; L: c
code segment
* K+ \" Z& W* W9 ^5 v& Nstart : mov ax,data
# Z. k( K: K9 ^ mov ds,ax
* G e4 @& C6 ^8 B5 |# ]2 T" r) f k call prop1
9 \9 `. g$ i5 `1 C1 Z mov bx,offset table$ J/ K, u# q+ p+ D9 |5 ?- j8 T
mov si,0
9 g L7 \7 x2 k! Q" O; l mov di,07 o7 m; o/ X% T% m( i
* W7 F' ^3 j+ z& l* S& ]6 ~ ; f4 T1 N# ?9 D7 z3 i: L9 `
call enterchar+ H" x. g4 l P" D* e: C4 d
perp: / _0 C8 J) o% e, u: t }7 r
dec si
) Z7 h' n n* E2 R2 R2 p" {1 R mov dx,si
+ M. d* @+ \' }5 D5 U* _$ A5 C inc si
" D3 C0 S, h/ X, y; L* ? mov cx,si% }3 Q# `2 u, }/ ?
call arrange5 c( Y2 r% a2 z3 C" x6 e5 K9 a' {6 u
call prop24 x% e1 }& T. m% p) r: Q
call putchar0 m- |, n9 @3 d
liang:
$ i, \! k- w: C$ E9 o5 Y call Continue( W, }2 q" U0 i% k9 n
call judge
, Z# a ^5 f% I* p8 m: x mov ax,4c00h
# i+ U5 w5 b7 V1 E; e9 q int 21h% W! T6 w- h7 A7 G4 |5 _. \: D
: Z- v& z# r8 O# I, d; C m
0 ?: ^9 J/ e& |9 dContinue: enter5 L1 ^* E: n, j! S$ s1 d
mov dx,offset cont
. i1 [5 O4 t' P2 E0 D mov ah,9h5 r6 a1 ^2 h0 [" x C5 Y7 G
int 21h
1 D7 J3 i" w; }# h2 \* ? ret + L- J7 m" |( n1 _% C8 L) r
2 |3 B4 b+ r2 b/ d+ T% |9 ^
judge: mov ah,1* i: E8 x9 I+ i0 X3 q
int 21h
' q* r/ F" ^# ^ or al,100000b# H: G9 F) ?- v1 z3 P$ c+ t, M
cmp al,79h
+ e3 D W S6 ` je clear3 O `) V6 C9 B% o- X
cmp al,6eh' A) m+ S6 y4 _/ y" Z
je endj a7 e) d2 ?3 U
jmp liang
( R b) q3 {! g7 W# E/ Tendj: ret : I/ y7 i' h( C n2 I b
: j4 g, \2 o4 P! f* F* N* Xclear: mov bx,offset table' \ G: p1 `1 f: i* V* f: m
mov cx,300
5 g; A3 ^( h2 B2 azero: mov byte ptr [bx],0
" ]1 \' I. s; q* K" N# U inc bx
$ L, P" B. z6 x. x loop zero
/ k! b$ s) I' S. j( [ jmp start
9 ^5 D2 M) I# I# h9 t4 n4 t0 `7 G; _! O$ b% ^8 q0 m
' ]* Z- S2 D! v1 _7 n
enterchar: mov ah,1! D0 c4 c8 u# W z5 `. L
int 21h; F" ?* }0 f+ L( W% z8 C
mov byte ptr [bx],al
' h- l u% h8 g3 ^* j+ x# ] cmp al,13
# H9 X* f: s" N7 C- L. M3 a je endchar ) Y7 y/ U3 o9 z( r
mov di,19 p) L" ]! E8 X4 m
inc bx8 k2 w- Y) N6 Z& ^" v9 `
jmp enterchar0 u# T* q) D6 d5 X0 F/ s! h y( \. F
+ F) i0 v: Y9 X' ` aendchar: enter
+ g4 b% @0 J. V7 m mov byte ptr [bx],' '; [2 I m5 t* x7 _& B( q. g
cmp di,0! r. Y" k) w% B4 C( ?
je perp; u- v: z7 k9 E: g6 v
inc si, A5 V0 U: p4 m" E/ ~
mov ax,si" X. O$ w) G9 r( C
mov dx,21
. }" J0 d0 p. d- i3 d mul dx$ c4 Y5 D) H! K/ W) P( Q* t+ I
mov di,0
- D3 L1 R; t- `- z, O% {" c+ s mov bx,ax : r4 L p) T3 @1 F$ e! d) k8 _4 K+ J
jmp enterchar
0 S# p) c R1 M# E5 W/ J2 L& I2 C$ \3 X; i. v' ?+ u9 J _! E& v1 h
arrange: push si
9 k" l+ x1 C- Z: {5 h2 L2 I- b push cx
: ?' ^6 y5 e! E, f4 l$ s$ c mov cx,dx
& H0 m. T) ~! E4 u2 l% a5 m. \$ Y mov si,0$ i' b& R, \+ k, R
mov di,21- I. W% P- v3 U& d7 T; E9 g
& B2 X# W; w$ g: E
s1: push cx) ?+ p1 N+ H J6 E1 @
mov bx,0& J [8 E; @* O5 m/ Z- R
mov cx,20% b3 ^8 u. z* z2 l% a
ss1: mov al,table[si+bx]0 u7 k; e. D% C6 L) ^2 J: P- g
cmp al, table[di+bx]' A( n+ w' h( E1 H; e& ]
ja jiao
# j3 ]# q/ x- |1 q$ d" G" Z8 L jb s2
" ]2 x) e3 H g5 H inc bx
; z0 j- P& f/ A, \ loop ss1- c4 L- ]% X/ \* u& \# Q# ]1 u
jmp s2
2 _3 u, Z3 e" b
! W# s; f9 Z4 A3 {: ^jiao: mov bx,0
: m8 V' U7 s) i mov cx,20; p% x0 n' P, z6 d6 u
jiao1: mov al,table[si+bx]
* T3 ^' f! A. _3 c xchg al,table[di+bx]) S) f+ @5 T2 y, n
mov table[si+bx],al
) j4 R* c4 j& S1 {7 N inc bx2 p- J, u! z$ P; W7 ?3 ^. Z
loop jiao1 T n7 k9 E, C/ `8 Q
* \, j n/ \: P0 J' @
s2: add si,21- x# u$ c, [+ S e
add di,21
6 T( r/ b' f2 V- [ pop cx+ Y) c5 | V1 p( I2 m3 y4 [
loop s1
* K! G( m) P8 g& G$ p& c$ J+ ]6 e! z9 a( k# G
pop cx- t8 E( G3 H; L8 n
pop si
; L, [1 ]/ c- G- a2 d4 @" h7 g0 k loop arrange# a- |; ]* {9 L) @: q
ret
/ f" S* Q' d$ D
$ b9 k) k; u4 \/ P% K7 ~1 T# k7 T+ pputchar: mov bx,00 x1 v6 U. |0 j5 c- s
mov di,18 C9 l" |8 W1 O, C/ @8 o
' C' @; g t* v+ h! I
# ~9 A8 b3 F. @4 W2 u mov cx,si- x' z6 |3 ?" L( Q4 B) a9 a
put1: push cx& |$ ^6 K# [+ N, ~$ M0 M8 A) X2 G
push bx+ Y3 o# F) A, D1 V4 x; r" J( X
0 P8 N3 n4 G. ?" P+ @& S enter$ B' {0 j; S3 H8 V& ~3 D! T
$ z$ E& ]. k. U |
mov bl,10. G/ c0 E5 S2 w( k4 @3 c' l
mov ax,di
& r3 t/ ~# \8 G2 w" R m% @6 e div bl# O- L# o7 Y% R" H6 e# R
mov bh,ah, I5 q$ W% D9 G/ S8 f
add bh,30h. E, Q: n* L% o2 l ]& P
add al,30h
0 i0 V$ P( g- b9 H& o9 u 0 m: |3 P; P! A: q8 I, z9 P
mov dl,al
( {9 i9 ]. i! v8 p# k mov ah,2. |6 p# ~$ c7 W. }
int 21h& X1 k; m7 N. w0 v" ?& j) o
mov dl,bh! a- t9 G* y. p
mov ah,2( C P' r+ p8 I2 i
int 21h
3 C$ l- N" e: L; L7 y6 w mov dl,3ah
0 G; i7 s; g) |9 h% u6 B' O2 D mov ah,2
1 }" H2 v3 _/ |. b int 21h
% Y- J$ b8 P5 o! t% p pop bx ( M8 ~; o0 B; v+ A
mov cx,20
5 ?" q, {2 W* t! c O push bx" w0 [6 H( P4 H' {$ z5 s
put2:
5 M& g& H4 {" ] mov dl,table[bx]
' m; V' d& M9 R( {" W! a4 w/ Y& | mov ah,2h( h6 l, ?: i+ g3 X
int 21h
: c$ [+ R" `! f
- a' c( S3 L* w+ e! E% b inc bx
/ k& n9 B$ b0 `% `& k2 E4 c+ J loop put2
3 E; ~, T; v1 K2 v( S5 G- J$ l inc di 2 D6 g: W4 g6 g- k4 J4 Q
pop bx
2 c, v/ |' ~: q7 R% c% d" P4 B4 N, T% a add bx,21) E; r# x8 z, F5 R) q" B$ n
pop cx
# b; d7 k8 K* {1 ~2 d ' R; g+ X* b/ d9 K: M6 i+ j
loop put1
; S7 Q, V9 O0 y( D4 `1 ^+ _ ret
3 ` ~. t7 ?* A
8 O: I1 c0 v, _" c) yprop1:
: D6 O& o, t* T9 X: M- P mov dx,offset pro1
) r$ {* u# W: q8 k mov ah,9h8 c# l, r$ T" v: w6 G6 m# P* d# D: Q
int 21h
9 ~& r: m3 h2 R- }2 o( W enter
7 F* J2 s9 Y( s- R5 b' M5 K4 F ret
8 b7 R) m1 g6 s. w' a9 d8 Q
$ S) u: F, G1 j6 e+ }! S8 ]prop2: enter7 f! p G' w$ @, r( t6 ]& L
mov dx,offset pro29 B; Y* ~0 r& T* L
mov ah,9h0 l% k- E% k, K
int 21h# t2 |# U# d8 I6 |
ret" ?5 B" _' R W* ^% B* E. c" Z! c
6 `6 P5 D- [2 X9 z% S1 A: W* Qcode ends
7 X% m8 U' m# m7 cend start% G2 r% y7 J( s$ v8 L) |
1 l, T5 t6 O3 l, g) I) d1 M
/ w1 i; k1 _/ K3 m( C |
|