|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
/ H r& l4 W5 wenter macro% h1 E" e: Q$ c* Q
push dx
. A$ @7 U/ v- Y4 I) L" n! n push ax, I8 _5 o9 ]4 j/ m. ?/ t
mov dl,0ah
$ a" q- l) x4 e0 x5 E mov ah,2 ^' F- S9 V" S% m) O& E% I: t
int 21h
# T0 ~$ ? B$ J# M' G- Z mov dl,0dh
* X$ d$ ]8 _$ }6 L mov ah,2! k% @3 H. U5 m
int 21h
0 L4 `" ^. M. {& I1 `* B pop ax
- p! F3 b3 n: z$ ^! @) t1 P+ d! [# w pop dx
0 ^5 Y6 ]& B, K% p* O6 lendm
. X4 n4 q5 Z: z2 X
8 t1 t9 X) b4 _: p8 T! F0 O" ?8 Jassume cs:code,ds:data
7 q' t) f1 [; o+ d. ~* }: }7 Mdata segment/ G3 E. i5 _$ r+ }( a$ w8 f3 E5 y
table db 300 dup(0)
3 ^% |6 I. M/ ^& l, K2 ]pro1 db 13,10,'_________________________________________________',13,10# p B' J0 l9 u& ^6 T1 t6 c; S
db 'no more than 20 characters English name.',13,10# ^" ~: S, s& s; v2 _: r( a
db 'For example:',0ah,0dh,'liang xin hui',13,10
4 n4 j, P3 a9 a% v* h: {1 q1 v db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,100 u# ^/ `( i( l; q+ g. d
db '.................................................',13,10
2 G3 `& o8 T$ V6 R db 'Please input:',13,10,'$'
6 }2 C7 ]6 u+ o2 [7 q. ^: _pro2 db '.................................................',13,104 R4 M1 N# b2 i7 J' f
db 'The results are as follows:','$') }0 Z8 B% k8 i5 t4 s
/ @* w5 m% e/ }6 Z. d: s+ A
cont db '________________________________________________',13,10% b$ r2 A" f! d7 w) H
db 'Can You Continue(Y/N):','$'
# a; k3 C- k; I9 r# {) u- c" B3 w$ \2 P
cp dd 50 dup(0)2 D' L( M3 j" t' m7 `3 z0 W
data ends9 ]- H( v' A, h, S9 d! |
- f& ~% y7 ?) scode segment5 Y. ` F+ x% e8 R, W. U
start : mov ax,data' Z1 B) J# f% ^: L
mov ds,ax
7 s* U# N; v0 U8 ^ call prop17 H8 E1 H' Y, r, p, V0 b$ M. z
mov bx,offset table
8 Q( V P) i4 t% O, e3 p6 K' [0 q D mov si,0
: P1 s7 e% h( _! M7 | mov di,0
4 q- [3 O9 x" D9 I; i0 I 5 f! F8 z" h# }5 y7 ~
9 F0 q# s1 d$ V: j: Y
call enterchar) R1 |3 [, F8 u4 g
perp:
4 [- F5 s, z- O9 A# Z dec si% Y3 e2 S4 s: B' _+ F- Y
mov dx,si
- P& U) ^# Z: K6 H2 e inc si
2 u! L7 r, u; s! u- n" b5 r mov cx,si
- P+ O0 z1 L m/ c- q& Z1 p call arrange
! E# z3 v) G" T5 w5 f call prop24 ~! S- R$ X( E* H, f1 |% d: ?
call putchar
7 f6 i" g9 j6 y0 D8 n; j$ N6 Pliang:
5 H! {- l) e5 j" f call Continue6 M6 A c* B: h5 h% |
call judge w& e$ d$ R2 `0 h$ Y" |
mov ax,4c00h
0 A& l. C% V% [: w& c- T/ V6 R int 21h
8 x" e9 `, Y; |/ \) H/ u. q. x5 z; m0 Q6 V% h: F! W9 p O9 s
& U' P" E$ U `7 _/ C1 d) \1 c
Continue: enter8 g1 A9 ?' a, O4 h, _+ z6 [0 z
mov dx,offset cont4 C O) H; o0 \% R- P7 D
mov ah,9h
3 B; p( T9 Q& t/ V int 21h3 }# D% U5 T, T* X0 V
ret
6 Q e' z* S/ e4 ^/ m. a$ {. l8 H6 |7 L3 W
judge: mov ah,1* i; b( o" N$ |7 D5 h6 Q4 x
int 21h
2 R0 J8 u. {6 J; g or al,100000b
( ~, o j# p: ?7 L% J: V4 z cmp al,79h ] N8 r" n4 p- r
je clear" K, J; ?) l) g: o4 h% w' J
cmp al,6eh& N' m2 v8 e$ B9 Z
je endj
: W$ C. m+ B( G5 @& M' | jmp liang: U/ {. Y9 p* A2 z, q( p
endj: ret
2 _+ T1 V+ Q: f2 | ( j7 k9 l7 h9 P# R6 i
clear: mov bx,offset table( g0 q$ O- G4 E. [4 l( T$ J0 O3 w
mov cx,3008 T0 c! i% \, z4 N
zero: mov byte ptr [bx],0$ `" h" R+ Y; l
inc bx
. l, Q9 ~7 X; j: s' M( N3 g/ | loop zero
# A0 S$ F- Q4 K' x6 a* F jmp start) g3 ]! ^; G2 L) \* v0 U& n
. y1 s( }2 c! p) \& b# _5 ]. Z1 ]! U* ?/ Q5 H
enterchar: mov ah,1, t& K( Z9 e: H( ?* W
int 21h
, n6 d6 d/ [2 J/ ^ mov byte ptr [bx],al & [3 ?' O5 t8 F; t1 j9 B
cmp al,13
2 l; V! A8 I/ T9 U& ? je endchar
+ b$ M+ d( i% B5 } mov di,1
# E3 \. z r1 }1 i6 b9 ^; o1 ?, W inc bx8 l$ e4 e* m1 W6 A
jmp enterchar& W5 b! _' U" h2 T# ?
: Y3 `1 u3 K/ ~: c* M' \endchar: enter
3 L) U# b% m1 w/ q mov byte ptr [bx],' '- k8 A0 A- X4 R. U! _4 w7 O
cmp di,0
6 Z6 B4 E3 l% D8 W: h! q9 k je perp0 Q. @) J9 J" [5 k2 c: ^
inc si# {5 w Q7 f0 r! a4 P* C( K
mov ax,si
! Y* B( }- Y9 G2 S9 f/ W mov dx,21
( c6 t+ ~7 n b/ @5 j mul dx
4 c+ k y* T0 f4 O mov di,0
5 v' _" j0 y( |5 o; _6 F% ~( Y mov bx,ax
! r4 T+ j( |; m% Y; C# j jmp enterchar
0 ~" E; ]1 e# X4 Y! H. t, U$ u) v4 P5 L
arrange: push si
t6 u, l# ]2 F' |8 A: ?% H4 Z push cx 6 z6 @+ R4 o/ h; b3 Z; V
mov cx,dx , O9 c" |0 B! j- u/ u, E
mov si,0: T1 S1 I( O( @& p9 s
mov di,21+ b8 X) \% i+ i" w3 A
" g/ p* r2 ~! L: {* Y7 @0 D1 Zs1: push cx- V5 D. `2 L& s5 S3 ~9 P+ B
mov bx,0% Z% O |: q: V
mov cx,20
6 X! I5 B( t, V0 T( s) lss1: mov al,table[si+bx]
& Y) R) m3 L- w- t; ^# C, g cmp al, table[di+bx]
# V. }% ], |/ t @9 J6 r ja jiao+ N% s( U4 ?& S f0 a
jb s2
1 r9 o7 N8 o3 ^ inc bx
6 q/ b. s6 u2 l* J0 C) _9 ^: l6 A loop ss1 T( M" D, n7 s7 [" `1 z3 P" s5 I
jmp s2
7 {! A, X, x: H+ Y( B9 ^6 z; C
9 T$ y0 R' `6 S3 F2 ajiao: mov bx,0
( c" x" d1 r+ {5 o6 P$ \ mov cx,205 W( u2 Q+ p, N' Q8 \) O
jiao1: mov al,table[si+bx]* K' _. p& U/ q; D' Y. S
xchg al,table[di+bx]
5 k$ b' a9 p7 Q, e+ S+ W8 u! e mov table[si+bx],al
( F9 }# t' o4 a9 | inc bx c7 @) R2 d+ ~( j( ^
loop jiao1
2 R3 U2 k8 J4 V* B; P
7 S5 I5 M$ I5 ks2: add si,21
' i9 \6 E# _# z0 l- y! Z add di,21& _4 q8 i8 U7 ` Z* p# C
pop cx
2 f a+ H; e2 ] loop s10 ~2 N* m4 `- r& x4 K" N0 H
% I) D" q5 ]7 S7 q! W/ Z
pop cx
7 K* F! [% w4 S" d pop si
! |4 h2 N/ P$ a# m loop arrange
+ G! r; D3 D. ~7 ?3 m6 a ret
8 i: p2 A. L( j# r/ {1 d, g, J; `& K9 ~. K
putchar: mov bx,0$ F4 J$ q5 V6 Z' W- B1 j( j1 A% D
mov di,13 H* W/ Z, V+ A( T, h
/ `) v8 S) a. K# H% Q- M2 ]9 Y
7 s4 x- g% C' E. v% i% S mov cx,si
8 H& h" F4 n1 uput1: push cx. j. y; V/ O3 ~/ _5 w+ k/ o' r
push bx5 j7 @2 F( n5 }1 m) v
1 l- L0 A: R1 f/ b n6 |& l enter7 R: a" x( H/ t% }" {7 C" u3 h' X
D* F$ X4 p0 W4 [. e
mov bl,10
9 E" A4 f# |- [- B7 h2 P2 L mov ax,di
- G. R7 N# j$ \+ W( a div bl: J3 h F( k% A% ~
mov bh,ah
) U) C0 E; M7 n7 l add bh,30h
3 Z% n6 {3 _ b! n. | add al,30h! @0 ?8 F: R+ Q
4 d4 a8 K# k& Q: H! U$ K8 }: C mov dl,al4 |4 X; |& ~- G
mov ah,20 j: y! s4 `5 Q4 [
int 21h8 `# s- K7 C6 t2 B& h
mov dl,bh/ h( d& M9 T3 t1 z t
mov ah,21 V8 [/ q1 D/ D4 [( p) w
int 21h ^# E8 q* X8 H8 l: o
mov dl,3ah
4 r5 g( `. v; t! `3 M mov ah,2
* ^* X8 v3 f3 ^ int 21h* r1 ?- n V2 d! c' g1 |" y% F. J- M
pop bx
7 _/ X# T* X5 s8 y9 V& R( t mov cx,20
5 j* y8 ?$ o3 ]+ B push bx8 b! e& J+ Q# R) R# B# [* G [
put2: 8 J% l I/ J$ S: c: A- J
mov dl,table[bx]9 O7 G8 D' o- b3 b2 @( ], S( M
mov ah,2h4 j% L" r2 x: R5 {+ W4 K; ]' }8 ~/ s
int 21h4 J1 c; s* @" R* A* O( w
3 {; P% L5 z! A% ]) q) x4 L
inc bx- T- @' k4 f2 S- m% `
loop put2) i1 }+ N4 _' o; j* Y* T J
inc di
6 e* M' \0 C/ ?+ K2 l6 V) G/ P1 M pop bx
) R7 Y+ q, [$ K4 r add bx,21
# A4 U/ P/ H& L& P, z* a pop cx
9 F* `6 c2 U/ R s9 x- x0 G7 X; k# q% ?
loop put17 w! y/ l; E1 Q. ~4 _9 A: V% h
ret
9 ^& L' b$ ]: j1 d. f" _7 r0 ^9 O% I- F6 z. w2 ~
prop1: , L1 j L; f3 ^; J4 H6 G
mov dx,offset pro1
% \( z3 W+ c! I* ~+ b mov ah,9h& a2 f/ ^/ y/ \, [
int 21h
0 _5 p7 O$ y/ ^$ ]' t enter
G5 s7 `% U) ?* ?& M: w4 a ret
, l: b$ p$ |: F7 }6 p
* k5 J8 T4 {0 ~+ Hprop2: enter" r, ]2 f: i4 W1 g
mov dx,offset pro2
( J% J# G% p# `$ x: o mov ah,9h% ]2 ?. P8 S/ z
int 21h
9 S2 l9 ^5 v& _( U8 F8 v ret% i9 G( Z# P& l+ \7 e9 |
+ }* G: m& a/ ?
code ends2 T* J! i# a. B7 L
end start
3 M8 H0 s) `( P0 S4 o( I+ L" {9 \5 e, F2 W2 j
6 X0 t" V/ p c4 _& ? |
|