|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
$ H3 j/ t' W+ _1 B4 ?enter macro( m/ P4 R" G2 a8 |) ?
push dx
# a. x7 t+ Q5 t- ]! P0 H push ax% F& K0 F! n$ `, P+ I
mov dl,0ah, Z3 j' d" S% Y9 |' \8 G3 S/ q
mov ah,2) c; q6 o- e- {
int 21h/ q9 i1 P* s8 d% s
mov dl,0dh
( {. E! T- T( I) C' r mov ah,2' F( ]3 I7 _' G; k" b; @
int 21h
$ A( r- s" d. h& ]" g- e' h pop ax
+ Z# F3 ]1 Q, ~0 k. m I9 L3 Y, M3 H pop dx / m! o" H+ `; M N3 x9 Z
endm
! E' B, L. S5 h4 Y, r# b3 E# D/ n2 ?; h9 Z7 q
assume cs:code,ds:data
8 h, B6 F9 O$ b7 E/ o# I7 kdata segment& a- Z& Y3 w6 _2 q- _' d% _
table db 300 dup(0)
7 |. e4 E4 @! b0 [! Qpro1 db 13,10,'_________________________________________________',13,10
# [& h0 q' h( T% I. | db 'no more than 20 characters English name.',13,10# c" p0 e+ k3 b; h; B! x
db 'For example:',0ah,0dh,'liang xin hui',13,10
" h0 F; Z6 f: U, \5 r2 T db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
# I' }% A7 e8 ` db '.................................................',13,10
) N3 R- L R0 G( z db 'Please input:',13,10,'$'/ p* `7 @' K( x2 _
pro2 db '.................................................',13,10
! d4 B' ~) {' V. Z& P db 'The results are as follows:','$'
" M# O% \) Z8 L
8 L7 y7 C* K3 ?$ z/ `) w; h( i% icont db '________________________________________________',13,10
# N8 \0 z7 B% {8 X7 f$ x: F) I7 q db 'Can You Continue(Y/N):','$', c& c0 m, u* M8 H: i L* j" _9 u
7 n" {, [5 z, x0 [$ g8 Y; `/ v
cp dd 50 dup(0)
) W. ^# F; J9 Tdata ends: n& X3 [" ^2 ?3 x( r8 ]
+ f! n2 I1 h( P. K7 lcode segment
: S7 T7 |$ ^2 T6 G9 t: [4 d9 nstart : mov ax,data, v% l2 q8 M5 f3 Y! j( e! N
mov ds,ax
* B/ g6 U) |4 Q9 q! C call prop1% W5 |" T: }. H6 K2 i
mov bx,offset table
3 B; R, d: n8 j4 Q% v mov si,0
% ?- u% Z; s: Q+ w# Q! K mov di,0
1 g; l1 w8 R/ g" f5 Z# T+ k( k' }
; S( J- ~. N1 i v) @8 p9 }; f
1 g7 p. C8 u2 X. j3 G6 u call enterchar8 _6 Y/ M& H6 U, N* C! \. T
perp: % K/ _& ^8 G' ^
dec si
y4 j. I2 k0 S- F+ h6 r2 X% I mov dx,si
+ Z% Z3 Z' w [ inc si
# H9 b. ~2 M9 b2 B: s4 g& d) `* V mov cx,si
( [" b: E+ @5 Q# t call arrange
$ z" s( _8 `4 Y) O1 V+ u call prop2
0 a4 x: @/ C3 Z- Z, [7 p call putchar
4 B) h+ N; A9 i- i* D* V4 O/ Bliang:
# K. |) b# G' i5 m call Continue
: Z( N, l# ~/ a; q call judge
. K3 {$ C7 P7 `. B" u' y- `. J5 a mov ax,4c00h* Z' g& r1 K! T% }
int 21h
1 [* t7 M7 b. w3 j! \; e/ Z! P7 y
8 k) G4 y" {7 h4 f7 [) Z8 G8 G* o4 o9 t" X) Q( t0 |- v3 W$ D
Continue: enter
, M0 W# F* N; F5 `% S, D mov dx,offset cont
% N* \, S, j, l- h mov ah,9h7 s. A5 V) j _ e5 f% o
int 21h& s7 y/ W( p2 J. l& i( | o) E
ret / N0 Q% S, x6 L3 _$ H
|. l9 `& Z: b q" v6 k' `; Y* R3 M
judge: mov ah,1
# J8 J) D% v; h% U int 21h
5 d2 T8 y1 Y% w or al,100000b& M. W9 b7 r9 w) y! Y: M" {( v
cmp al,79h6 Q5 r5 I2 F9 i+ f$ Z4 u n
je clear) Z8 n4 u% q+ a, S5 C4 e3 o5 F( b
cmp al,6eh
! ]; p9 k# t7 a8 J# A9 l! E$ \ je endj+ @! ?: g$ O0 y6 i( \. n" u0 r
jmp liang
# y: E6 j) i E l* R$ Hendj: ret
l' M# l+ j' B- x& p z8 I
5 X& z9 @" T" S8 W4 ~2 p* F7 M$ vclear: mov bx,offset table/ D6 N( V }# C9 B& w9 m Q4 H9 y
mov cx,3004 L2 ?+ j1 R7 c X5 F
zero: mov byte ptr [bx],0
) \; W+ }* {" o* `# t inc bx
) O9 Q% e; m2 N8 S: \, P. ~ loop zero$ b& r- n, p. r6 u" y9 V$ o
jmp start
0 d) ]7 I" A/ Q% `" m) n4 X ^' w) w" u; H U
! M! I- L# c: W4 ?+ X% S, ?: U/ m! o
enterchar: mov ah,1
& g9 n7 d% @8 H# U* c int 21h" l1 w" m. |1 K' y
mov byte ptr [bx],al # w. [7 S# L( t2 \
cmp al,139 o: z- {; `6 V/ U4 L; W3 ]
je endchar
0 {1 Z. j8 q- q1 ^. u) z mov di,1
8 O! ?; v9 D( R! }( e inc bx/ R, v' @% N! s0 F& [
jmp enterchar
+ J _. w& c) T, x! A
5 n N" [( a- e2 D6 ?endchar: enter
" U. B! C/ R2 d$ p, x mov byte ptr [bx],' '
5 q' M+ C8 T0 K1 ~ cmp di,0/ |' K# k1 x2 K3 A. C/ Y: n
je perp
& r" l9 K7 R: _" ~1 | inc si8 g6 D" H4 o/ Y% v+ H3 V
mov ax,si5 m" u! V9 R' b6 v+ m0 U
mov dx,21
0 } _9 s9 r1 s2 n mul dx! C7 }# F8 V5 f/ ~7 `' p
mov di,05 U4 \" j8 _7 P# b
mov bx,ax + v* p- T3 h# Z. R# @9 t
jmp enterchar. `+ p0 a8 R2 D! K% |& K4 P
6 Q y- u/ w+ B' e! f& c7 zarrange: push si: j7 G. |1 Q }" u* b2 g* t
push cx
& a9 ]0 H% b. U8 b: @5 c% i mov cx,dx
' K' P: y' \; h7 S mov si,0( G: z1 C4 U6 O) B Q; Y' t% F
mov di,21) T s; S5 o2 c. d# L y
0 Y2 g! n* x( K+ q9 M) k, L8 ~
s1: push cx+ {& r' d) p+ R. P! v
mov bx,0
, l, \8 V9 @' v' R$ s( v3 r0 d mov cx,20
3 }- q+ M9 L3 m( H* Bss1: mov al,table[si+bx]
2 Z q- W8 Y2 A2 N, Q0 O3 O" Q cmp al, table[di+bx]0 b) i! O& ~3 D) \4 [
ja jiao
6 O6 w) Q9 B0 [$ P- A jb s2
+ y; ~, i* R7 p% P inc bx' v4 j4 b9 d/ N( a
loop ss1
g' I/ {8 u6 ^$ K2 X+ i# \1 H jmp s2
6 z+ b$ |! {9 F
# T0 T6 e% a2 a a: \/ _8 B5 c! ejiao: mov bx,0- f( N. d& K# P6 H- G2 b
mov cx,20& ^9 T0 m) ~8 j
jiao1: mov al,table[si+bx]
- c, H( _5 ]+ c4 g* ]" p2 m xchg al,table[di+bx]$ h5 I4 z. d! _( w" ^
mov table[si+bx],al
$ B ~- c: x8 _! N inc bx e8 |, _6 w/ V$ h7 Z5 }
loop jiao1
) e7 f% x$ d- [7 D4 I; m: j- c; Y* }4 r7 O* {
s2: add si,213 L$ w( _5 F; @0 Z: @4 L; l/ r
add di,21! [9 \, M# Y' x5 C' O
pop cx, N3 L/ b. H) f$ J# `8 {% ^8 x" d
loop s1
) g* f3 a6 s% ^. x& q# L" V8 P2 O/ s; R3 r
pop cx! a1 ~+ }/ B# F# A, M
pop si" x9 ?, R* j+ R* J
loop arrange
K9 F+ o2 m. k$ H" v# B; v! @ ret
& Y, M/ z- H$ V; W r5 \4 g1 x/ \4 b' d
putchar: mov bx,0, K5 K0 k/ A2 Z: R1 Z' ?8 e$ N7 m
mov di,10 H. D6 U- ~1 Z
4 l+ T4 F+ t4 e; e \- q
7 {5 I9 M) q+ n9 s- ] mov cx,si8 e3 X/ F. m: l6 s. {! G1 d
put1: push cx
' k4 E& W" E0 }: @ push bx& r* ]8 `/ P& `2 L" O
0 w; j2 D; F/ F e
enter6 ~7 @/ ~# J3 v$ g% N
) Q, B) N8 H. L+ P6 ?0 ~ H
mov bl,10
9 R8 j X- ~2 {" Y5 G2 @ mov ax,di
, F* }# _. }3 w1 M+ C div bl* ]3 K. ^% N0 K2 V8 \) H( F- m
mov bh,ah
: p+ {: a3 C" ] add bh,30h# m- ]7 t* V* d8 v. }. U6 p
add al,30h2 }% A+ E; w+ J, O7 d
% y/ s, b+ N$ \9 o7 G7 N/ ~+ M/ F5 h mov dl,al
5 r! d( w# n) T1 W' { mov ah,2
$ |6 S+ s0 f' r( f6 H int 21h
! O; w7 u* s V2 r1 A mov dl,bh
: F; m" Y) E( H mov ah,2! O: a8 B9 _: }+ D& ?+ |1 M9 K
int 21h
; u( [ x1 h; N mov dl,3ah9 R! d! Q m0 V9 W- S
mov ah,2* h( B/ \+ r8 A6 O4 Z9 z! l
int 21h/ ^6 m z6 Z4 o1 F# g' X5 ~
pop bx
5 u5 }; T9 |# ~% c$ Z4 O5 a mov cx,20
7 Z1 v: P) {$ x" A5 _; q push bx$ r) M! p# u* b7 G7 ^+ K. j& e
put2: ! h2 h" X, g+ X3 n5 _' G
mov dl,table[bx]; a% Z' U) U: V4 y" N* p% D9 z
mov ah,2h2 r7 @; B! A3 ?, D6 I
int 21h) f( P' B" i1 s7 T: h" u
) E0 g8 a% g& n$ } w, H: V5 o
inc bx
* ~* |# N; ]( N2 L$ r$ d loop put20 m; x+ ~) z4 l) j- R |, I
inc di
" p: y/ f* A: w2 L1 _( f pop bx
% U% a1 E2 v5 H2 l% Z/ n1 Q add bx,21
, `/ L' D8 }! {5 {, Z* l: |6 F pop cx
- l+ L! `$ ^% O' V! k( f; m& P3 S 4 @* G2 s D5 D* Q( `5 }/ Z
loop put1! W* c, H7 i/ s7 y
ret
9 M: I5 Y/ e( C$ {+ X
# v t! v" y1 \) cprop1: : v9 Z3 F/ F' |3 L9 w* z
mov dx,offset pro11 p& P& Y9 h* u; C
mov ah,9h% F" v# E8 y; b- Z
int 21h9 X2 M9 v z9 t1 l9 a, s
enter * `- d- M6 h6 p6 f6 ` K9 y
ret9 c$ z5 `, h3 y
0 `- \6 @! R/ y/ G* W7 }prop2: enter2 A; k# G5 i6 V e: d3 |
mov dx,offset pro2
% P0 U; |, j6 Y4 |$ S$ Q; R( A mov ah,9h
, f: g2 T: Z/ r2 U int 21h4 K2 N+ E- Q+ G
ret
- m3 V* v, R4 k3 P' h% g0 G9 y, ?3 S
' K' i2 ~8 N" O, ?% i5 lcode ends
* z% c* Y: W; x. X+ m# o U8 H1 {end start
/ {4 _) X' R! p' T" h1 `7 W
* A6 m! w* w. E. m) P1 Z
% m$ i \: _+ g5 p: e; L |
|