|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧- M+ [# @" f7 X+ }
enter macro" ~' c) g. c9 s6 [$ g/ s
push dx
$ K5 _$ ^: Z( n, D T. G! D5 O& W push ax% U8 p! P1 K6 `
mov dl,0ah
2 B+ y" A# E8 x, V8 \ mov ah,2
; C5 Y, J1 I) n* S; h+ q i0 b' G int 21h- z: U+ ?2 d: B: M# B' S
mov dl,0dh+ f, A) P; m& R% G" h9 t$ \3 U
mov ah,2 m/ [4 }. a7 G5 y5 i+ E
int 21h7 q) }1 w: O7 H; B. C6 X/ e
pop ax
: d) x6 L. p9 H pop dx 9 v1 t1 f7 L0 s# }# S
endm
8 b9 d, ?/ B! M3 R6 D- T; H# u6 C5 e3 V
assume cs:code,ds:data
/ }) w% u/ Q+ @* ]( Gdata segment0 g: E- ?0 ~8 Y& i) \1 ]& \
table db 300 dup(0)( k9 u! q/ c4 O* r K0 B
pro1 db 13,10,'_________________________________________________',13,100 i# L% t$ k4 b Z( q) @9 k
db 'no more than 20 characters English name.',13,10* h/ }1 \9 c. g% W& [' l7 F) Y
db 'For example:',0ah,0dh,'liang xin hui',13,10( Z/ ?6 O# a9 J( }, ~; @
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,100 e1 g9 Q9 x6 j( [6 K( T
db '.................................................',13,109 e2 B- g8 Z8 h# y. \, U0 h
db 'Please input:',13,10,'$'
# d% `6 K5 h; ?& Ypro2 db '.................................................',13,10& D# f t1 T( A, d, O1 \
db 'The results are as follows:','$'. c* j$ J; Y( f
+ L" W/ t+ C( ^. t8 X9 ?cont db '________________________________________________',13,103 K. V' t( f8 S1 F3 X
db 'Can You Continue(Y/N):','$'
: T* |- a% D+ d+ g' j4 m& h* Z+ S2 k- K7 e% `7 a; }: u. b
cp dd 50 dup(0)
4 s5 c: z* ~" Tdata ends
4 ~& j9 B3 d8 m, i
3 U% y5 m" O0 ^8 s1 C J qcode segment
+ O3 I5 r, x5 M4 V# e& fstart : mov ax,data
' Y, x4 J' E% o" {3 [ mov ds,ax m) M: u# f. T) X
call prop1
. l3 T% D3 T) Y) o mov bx,offset table
' F% j8 A+ O( z2 P0 u mov si,0
# A) B8 L3 u _& D3 g. F5 } mov di,0; @# w w5 v: ^, Q# {
- R+ e5 G0 Y' {* ^9 T9 {5 t6 X # }) R6 h# u& b4 ^& T3 r) C; M5 B3 }$ K
call enterchar# z* k$ y1 Z: o& z
perp: % O' k/ P' m6 N1 E7 e
dec si
+ ~- s" n r: p/ M mov dx,si
" [% [2 u. L3 d j: @ inc si 9 V5 Y: c, A4 P- p6 i6 i3 C
mov cx,si
, R8 l/ m, Z y+ p9 @1 t call arrange9 @9 Z5 V! h3 l/ T W
call prop2
/ a- A$ K2 u5 [0 c call putchar
9 Q z$ [; j9 ?! jliang:
$ O5 s$ C! f2 y+ E$ h call Continue
; g2 l4 P4 r( j& t6 K w7 I call judge, F0 l3 m8 r, T$ x) I
mov ax,4c00h' C" w7 @5 s7 O1 d/ V! A( C/ f
int 21h" ^& @8 `0 k0 w4 }% n$ s
3 M; y' x, p7 |+ x" E" H, J6 t8 \
: ?/ H+ _" \0 e" s) ]Continue: enter& z0 q2 Y" Z4 I! I! n
mov dx,offset cont# q' z- X* L% ^5 ^7 h2 Z
mov ah,9h+ D4 \5 V; a& L( d- j; }1 g
int 21h
8 v V: B" Y0 U7 a8 A/ E ret
0 @6 {% ?8 I. K/ O' h: p* U" I2 g+ E3 P
judge: mov ah,17 l# I$ m( ]1 F4 M% p
int 21h6 Z* o3 s/ Q6 N9 W
or al,100000b1 w' h8 X( u% C0 x; d M8 ]( Q
cmp al,79h
' _0 z5 ^! [" R9 K6 M je clear; S) G; d0 v& s: h3 F- N0 \5 j( x
cmp al,6eh
7 D0 Y2 t& I3 z je endj
% Y' O8 F' I- G4 U' G jmp liang. l& e/ ~2 y% F) b* ]8 Q# A. K
endj: ret
" L* w0 {6 |) n1 G& J & R/ }0 G! u) m& K2 a7 o9 Z
clear: mov bx,offset table) N2 q8 y/ K: E2 n* r& J
mov cx,3000 i$ F4 Q% z9 q. ~# X
zero: mov byte ptr [bx],05 d% r3 T: n1 ]2 V* u# K
inc bx
- V2 e4 c" d+ F; L R! D& P$ z$ [ loop zero
7 V4 g5 w* O+ K! V. b' @1 } jmp start
, I: \* Q3 h6 p1 p7 D# k
& E8 C; t( ]& q$ |8 m( t4 {) ]" O3 M- a/ w" N. j2 {3 ~/ H
enterchar: mov ah,1
0 P0 b2 f3 Q, B2 S: k int 21h8 v6 j7 w* a: C5 r0 d6 ^
mov byte ptr [bx],al
$ i& E7 X; A: }* ^+ W/ r: h* _( L cmp al,13/ o2 K8 X0 T" L
je endchar
4 ~4 B1 M# h2 p mov di,1! k4 b) t' }( S5 \! Q: ~
inc bx
4 [- W7 X( Q+ M d1 S& r1 K jmp enterchar
d" ~+ P* O5 f# D' M# J+ O6 I* o8 Y
endchar: enter
$ k6 U: ?9 P( n+ v0 t mov byte ptr [bx],' ', f* Q( o3 h/ B
cmp di,0
. d* a) Q, ]: x" j' D8 u8 J$ Y) Q je perp
% c7 I) ^* |2 o inc si
7 n4 `; F* m# _5 ^ e. ` mov ax,si" X3 B8 P% J6 z% j% Q; P4 Z
mov dx,21
4 G% C. e9 [0 {3 h4 R( h+ W mul dx$ j" K1 O0 O1 `; F* D
mov di,0 _- _3 m7 P4 n" b) ]) a
mov bx,ax
7 F" w) ]9 q+ z, o: O$ ~: U: A jmp enterchar) N1 ? _# Y, ]8 B) v
( l) r# i0 |3 @5 G
arrange: push si4 s. \2 H1 R( |1 j2 W) T
push cx * x% k, Y) {* B
mov cx,dx 9 H: ?# r6 X( k; |, F6 N3 w
mov si,04 U2 W' F# ]# ^$ v+ X9 ^, A
mov di,21
$ O" o& `* p5 C/ r' I' ^. s
% O! I& U" P. h+ j+ Ms1: push cx
1 w- Q4 n6 M- a1 Z3 ~) i+ `( k mov bx,0
$ a# j4 D( b4 o9 ?+ ]5 P; u( _# ~; q- ~ mov cx,20
5 P9 b+ P2 t) o- z% V+ ?# [9 M1 i& Hss1: mov al,table[si+bx]
0 N0 |0 v5 c! D2 S, t M cmp al, table[di+bx]
0 ?) K/ c- p) h2 {9 o* I# {7 X ja jiao
0 @3 C' ?; V- W) ?: u9 y jb s2$ E+ a D' Z* ]" R$ R. x: o* F5 E
inc bx: M" g4 l3 b: ^7 a7 R/ }. q: E# k
loop ss1
A' O; j/ o) D. F jmp s2" z; ^* l! M! O+ ^) G. Z6 i
" l6 A; A4 p0 P4 f, z
jiao: mov bx,06 M6 |* x2 P, F' S
mov cx,206 `- r4 N8 ]$ R+ N
jiao1: mov al,table[si+bx]0 U- a& A# E) q9 a ~' c3 T
xchg al,table[di+bx]/ g7 }4 v2 h- _; O5 b7 _- H$ y1 j. `- O
mov table[si+bx],al
; p% [7 v Q6 W0 M! T2 H inc bx5 l( k( ?8 h4 S/ O2 ~
loop jiao12 I4 ^6 K) @& z6 U8 k: p: T( H
+ W' Y: w8 [- h0 T
s2: add si,217 e' @" K1 t1 r/ ~
add di,21
& x6 ?& ]3 w2 I8 z, g pop cx
3 d4 T0 \4 k' E# _ loop s1
1 u' I: P& Y7 m; @2 X, [" l' Y0 J b7 \* |
pop cx( T% {! a3 K6 A/ i7 [ b
pop si5 b/ T, d O6 R0 {
loop arrange4 R2 [7 P% }) D
ret$ V: {2 c/ b1 w
6 @$ [& s O7 n8 @: cputchar: mov bx,01 G7 {$ \9 B& d( U& @4 _
mov di,1
. p; ~: f+ F! W6 n; @* V ! Q m! ~3 b' ^3 r; H3 h
7 r1 }; J- W6 O
mov cx,si2 \% @' g% T" P G, h
put1: push cx
# J7 K! c6 X: ] push bx
$ h& m% g* ^: | & ]. B; o! Y7 N; t
enter3 V1 L2 ^2 {* K. O; Y6 ^
) W5 j; n1 \+ U6 I! ^) D1 ?/ W
mov bl,10
, [2 P5 f, k6 p2 i0 ~9 ^, g# j mov ax,di6 }. k/ r. _* h" A; v1 u7 E$ o# i
div bl
* o2 Q8 T8 ? A) {: Q$ I- b' }5 I mov bh,ah
' a0 z! M$ p W% Z, }' q: Q# Y add bh,30h
* q9 e0 V3 R0 Y7 A$ L9 l3 ]9 Q add al,30h
" Z2 D* S# Y2 A! w; |% o * a( O1 ~5 J+ d6 ^0 {) S3 a
mov dl,al* u( b+ [7 H2 Q$ b& e, r6 l
mov ah,2
- u- X3 C1 q; b: D+ Q int 21h
4 O8 |& O6 y* m+ z. v3 }* W mov dl,bh
3 n4 R9 C9 V$ \ j/ m3 E! D mov ah,2
' \3 b o* t% o: ~" j p int 21h
: x1 B* z+ c+ E. R% R mov dl,3ah
! y/ e) k' X+ M2 e0 g mov ah,2% K( D4 L( f% ^) e8 s9 u1 z, b0 s
int 21h3 Y7 p8 b. S' l- F) z5 D5 B
pop bx
. ]; ~ a5 T/ L mov cx,20
1 D% ^" J$ p3 a# A7 B- k3 M push bx
9 d- t+ Z3 A, N& W. A8 h+ T6 Bput2:
4 \3 L3 }. h# P6 b0 |; T mov dl,table[bx]
' g/ E; ]5 R, @4 B mov ah,2h6 G. @/ D3 Q5 i5 r2 M2 r! Q
int 21h
6 O! z4 w. T# G+ P+ t- Y / M* C- q" s5 ~8 {) L# n
inc bx
1 z. c( O; l! z; d loop put2
5 { `. Z2 S6 b' p' f* _ inc di
- L& X! s7 q. j+ ]8 ]/ A pop bx
! }) h1 W9 s4 ]) M; J J add bx,21
- d# d2 N$ S9 _- W9 ^# c Y) m pop cx
; J9 D3 k8 Q6 U" F
. E7 N+ Z ]1 x% M! N8 j* r" V loop put1) c* m; S2 T! Q3 l* }" a4 z
ret0 u0 W/ `0 Z. X J
( a, l( n, a# s h& H- bprop1:
5 M2 W" N& B1 r9 P2 Q. E mov dx,offset pro11 ?8 `" r. i5 F3 M4 K% E: t
mov ah,9h, c! F; _& Y7 j }. \$ ^
int 21h
; j3 o, f) a6 [9 p1 q enter
$ m/ @! V* u& I ret4 }- x8 ?! f0 l: `4 `
8 L6 U; p! v9 @( |; u+ Tprop2: enter
h, K* }8 H2 p mov dx,offset pro2
- \! V# k% }- S5 o# I mov ah,9h2 H: ^) W( P# @" V' f u
int 21h1 B$ L$ h# d7 \3 C* w
ret
' Z; V; f( m0 T [7 E6 @' g/ s+ X7 J8 S; I9 r
code ends8 ^( f P k) x, y
end start
6 D, g' y9 L6 u' t* u- i1 z+ C) }8 t; }( P+ F& D/ E
2 Q% V2 J$ O/ v! b7 \% l6 e |
|