|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
4 o- ?( Q: B" m T+ _enter macro4 x M3 j. _9 n- ~! @
push dx+ z% B/ B, x$ W1 E! d2 [
push ax
; E4 X2 h6 z$ y$ [ mov dl,0ah( I8 G/ R3 r$ W' V
mov ah,2; ?; H/ o- ^; u
int 21h! S) t6 E" d O
mov dl,0dh( r$ `" m, `. z9 u+ @' J: G; K
mov ah,2
& Q' X" O2 L! Y0 ?1 P int 21h
7 M5 e# O4 O7 F5 D pop ax- ?# i2 ]& f% }) A% ]
pop dx 2 }9 |& E& }* t+ _9 W: m7 q2 r9 |
endm
W7 t" n) d9 L- n: y5 }5 S$ U
# q. p0 O& C9 O7 X4 ?- `1 cassume cs:code,ds:data! m" l7 {1 Q5 s1 _3 i: N
data segment% t1 `" {0 N) R
table db 300 dup(0) L: l- X; J8 D6 O
pro1 db 13,10,'_________________________________________________',13,10; \: M% s' F2 k4 g. V7 t$ _6 k/ Q4 f
db 'no more than 20 characters English name.',13,108 n4 ^, q- V9 m7 D2 G
db 'For example:',0ah,0dh,'liang xin hui',13,10! T' A* z, B5 i ]! f* k, `% S
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10" S8 x) v' z& f" d/ f, w$ L
db '.................................................',13,10
2 z" T) x' s" q db 'Please input:',13,10,'$'
) A4 E# t4 f6 i& Q' `' l; K7 Tpro2 db '.................................................',13,10; n/ ?& S+ D6 B$ ^ q+ I# F
db 'The results are as follows:','$'
' p3 B; h/ E% l
6 W) o! r2 l$ N! Q& B4 ]5 G8 \cont db '________________________________________________',13,10* C6 _: }9 r+ g2 N) x
db 'Can You Continue(Y/N):','$'
2 ]2 k9 z1 M- y' O; E# {: _# C$ A+ v; }4 S
cp dd 50 dup(0)
5 ?" b5 s) M) w$ o+ kdata ends
' G$ W$ @5 z I( `( [# b, }4 \% D/ q [( y l7 g3 b2 b# t
code segment* N8 i! P2 d& ]: s; l
start : mov ax,data( ^: v9 |1 J2 d0 \% f
mov ds,ax
f* ]0 `, U; s! a call prop1# x7 o8 \6 C) U" I: [
mov bx,offset table5 `& q0 E; x3 `5 O. `
mov si,0
7 C4 n4 G0 R- M& O, z! u( N7 E mov di,0; I7 K3 _, e2 N( k3 r
6 l- z: o1 q; V& H4 u
3 J; s' I' A4 I, P$ d) ]' ]
call enterchar7 ^( N6 _7 e9 J1 Q6 S! C
perp: ) I. b7 E, T1 O- G' I6 S0 D
dec si
! i# a+ s5 ^4 Y' {: M2 o# p0 n mov dx,si5 _7 V# ^7 r" F0 Q8 o3 J; J
inc si ! e/ v# [. j' H9 r6 H. C( [ R
mov cx,si
- K0 @: H/ C4 t8 @" J7 h call arrange
, m% V* x! E+ S, h: X& p4 P) a call prop2# H. D! W9 s' u- S" K7 x5 D
call putchar+ [: D0 m, ]' U7 r% O3 M9 n
liang:5 c' a. b+ Y; z3 p# Y# l
call Continue6 B: E( ]0 t1 X% K3 ^
call judge
( H. b! b# \. i { t: b2 q# a7 g7 [, v mov ax,4c00h
s! c1 x/ @6 R int 21h) S/ I6 T% T- U T( A
( d3 p! W- X. \7 |# y
/ O" t- f6 k) q' [. m6 v! j# k; G LContinue: enter
3 f }, R1 `& N mov dx,offset cont
% P. Q* X5 V( V4 }# m5 ^ mov ah,9h9 i2 \: N9 O7 C2 i' S: w5 x v+ g' @
int 21h& \. j+ I& D" Y7 ]! e. g
ret
% s" a+ \% s% t9 w8 u2 Q* R0 a8 M- Q
judge: mov ah,1
; G$ ^/ s0 {) W: M int 21h! h& ~8 |! v$ Q* q `
or al,100000b
" I# x1 t4 `4 h: x+ _ cmp al,79h
2 T3 H& o% y1 O je clear; j* S( Z0 x# e5 h1 i
cmp al,6eh
% H3 E8 P* X* X# f8 W0 b je endj& k$ }2 ?4 Z) t6 M% D
jmp liang
) ]3 W6 `' s9 k8 r4 u! ^endj: ret
6 Y) ], R9 k. q
0 {. s6 R9 o$ d/ w/ m O! x9 ^clear: mov bx,offset table
* O9 l! i% n. E8 x mov cx,300
2 Y- F8 {7 [- P' Y1 Ozero: mov byte ptr [bx],07 O9 d( a& |/ H' H) Y3 v
inc bx
4 c8 { Z: Z( o ]! k- Q1 N3 i1 k loop zero7 ?8 p6 Z3 D2 N1 V
jmp start
5 c! J! [3 a) |- X
9 w7 A2 d6 x: W8 o2 H8 G
8 I3 L! e3 [7 e# Uenterchar: mov ah,1
# z0 `5 H( v( v3 b int 21h
: `$ ?: A' D4 P0 o+ x9 b% A5 P mov byte ptr [bx],al
) H; I0 T8 ]+ Y: e3 T cmp al,13, L5 f( h5 ?! k. f5 d7 u
je endchar
8 s) N6 K6 p+ q, p0 C mov di,1+ V; |# W2 e$ l5 X, L9 M8 C1 ^
inc bx4 X& G% h; B& z
jmp enterchar5 m! h8 g* E. |( M" T
# Y( x0 X4 Y) P' ^endchar: enter " k0 W8 o3 L7 w2 r, j* S
mov byte ptr [bx],' '
/ c: P3 b( D. w$ h* X cmp di,0. A6 O, j2 Z$ J! f) {* a# y. C; r% k
je perp
9 S9 N1 A) Y- s* d9 w9 m! j" a. T& [ inc si3 o; Y+ T I; }; F* y9 q
mov ax,si
* I# V( f# }5 U' U6 M- r1 S mov dx,21
/ o+ o. ^3 D: { J; t0 X H3 ^) K mul dx$ g- M/ i+ q4 I5 g7 j& W
mov di,0+ R" i: O- i8 x( U5 E, E" g$ I- P
mov bx,ax 9 B; L% t2 T/ J3 ]* D; m" G9 @
jmp enterchar
. n+ h& f. v0 w6 L! ~" p
$ x Q) v' W4 i# K; J) D0 Tarrange: push si& _) J5 H$ M" k4 Q+ Y$ r
push cx
b8 X2 y9 s- k {+ S mov cx,dx " L) _' Q, d* A4 N+ b8 }
mov si,0
0 ]. x8 X* w0 `' d( d mov di,21
: n% f! _4 c* X; S9 `; ]6 j- I! ]
' u6 e3 r: j4 C( {' N0 Z+ Us1: push cx
" a; _, ], o, q; R mov bx,0
x4 [- M4 e, f4 [, j9 e: q mov cx,20( e/ B( T% ~6 g% @) |9 ~
ss1: mov al,table[si+bx]* d6 Z( k* {5 R! ?$ n# g' w4 @
cmp al, table[di+bx]" X7 z3 h) G. s0 q& }
ja jiao" {3 R m, D. H: P% f8 i- m
jb s2
7 b: G$ N8 `8 s2 [ inc bx( r8 s# f$ |' ?9 |7 Y9 U& q5 f w. F
loop ss1: m) R3 q5 x' C3 d& X
jmp s2
# K! I7 Z ]' v& p; C- T. X8 a9 `$ q7 K( n- x) `9 ^# h$ y: R$ Z
jiao: mov bx,0
* M6 d' `- a, ^5 A( g mov cx,20, g# f" K) r3 Q! d- ^* l
jiao1: mov al,table[si+bx]3 H- P- ~' C/ h: s
xchg al,table[di+bx]: [0 S% C& }0 m$ |- y: S7 U
mov table[si+bx],al6 `% o0 q2 g4 Y" c* n- N; C
inc bx
" E" U9 N& K* c, S loop jiao1! m' N4 ~7 g; E! a
: ?0 z1 j5 ~7 |& ~1 ^" `s2: add si,21
* Q2 s( t% w5 P% _3 l add di,21
8 I2 S' P( J, F$ i& h3 k pop cx4 O% x1 j U* Z2 E, z2 @" \8 B
loop s1
; q$ Z9 Q5 E# L& B
5 }+ f6 I, m' x: ] pop cx
" G4 U/ L2 U8 ?/ r pop si
, Z: E* d: Z' j' \ loop arrange
( N8 \3 l1 g! Q/ E( s ret
; u6 C4 {- c! |1 [5 G/ W) J: j/ @/ R( ]( w l& l" b! l% Q
putchar: mov bx,0
8 U+ D8 K7 w7 f4 ]4 s0 T+ v# k mov di,1
* |9 |- x, ?$ L1 b
; g" h G* a% X 6 c1 z+ r. S, k. g) k$ v9 D1 b1 e
mov cx,si& ]* y7 |% M5 S7 U% Z
put1: push cx
7 b5 g9 m. `0 C1 J- m& e [ push bx
: m( V* ?0 ]0 W: m : \! M+ ?- w8 J+ w7 L1 k% J( }
enter' T1 S- t: Y5 u
/ ?% D" x& Y% H. D; x; o% v mov bl,103 g3 N5 W9 [2 d. N( A
mov ax,di3 v$ K ~( {- b" y; q+ M' i1 k0 [
div bl1 U3 F$ Y& \" O$ _7 m% O; [7 V
mov bh,ah* q* K: D `& ^0 N! U9 a0 _! Y
add bh,30h
) c; p& y7 X. h$ F1 X0 h add al,30h( o" |+ y+ R% v) X
& Y) e3 W: L# y% z K4 w2 Z5 j
mov dl,al" y) ?% O- j+ N, w% k9 P
mov ah,2# m, i( q* t, s
int 21h+ b( s/ e' Q- W) j
mov dl,bh9 H0 F0 v( r. s, A& w
mov ah,2* I- ~+ j$ z# }; l7 p$ o
int 21h
, x, b0 u1 k. i/ e: Z mov dl,3ah
1 x7 } F( z& j E7 i0 o mov ah,2
& E# F7 E" ~8 a! T int 21h
7 A1 _3 Y4 I# c/ @ pop bx 0 e3 a( C7 i2 C* d# ]9 s- r
mov cx,20
L) R% E3 Z, ^ push bx" b5 X( T5 ]8 {- K! M( E( u, D
put2:
" ?) l! ^4 F! ?9 T$ j$ o" a6 U ` mov dl,table[bx]. {) H# x5 r* l
mov ah,2h- {" y9 K+ L. N% [ A9 v y
int 21h
; T' j% ^2 T' v 2 Q3 S m0 _& G2 A# o
inc bx
: c) k, ]+ Z( I' b, j# R3 \0 w loop put2$ }6 J" T& V' \) l
inc di V( |$ e4 X- J7 {; E# J+ `; j2 O
pop bx4 E3 x6 i- W* F: a! Y/ }
add bx,21% b, S! B0 K" I# f; e. W
pop cx
" x/ M# y7 d# {6 m. m8 J+ r. O 2 w! N1 l) P/ I' j- L/ x+ O8 d
loop put16 J1 i- `8 b7 t$ i0 Y5 L' W
ret
" G5 n8 l" p+ m6 r, {. o( [# X* @! ]; n8 ]
prop1: $ e" g7 U. f2 i3 a
mov dx,offset pro1
9 E& _0 H' v) |# Z! s. X/ I mov ah,9h
. q- O3 s7 |6 r3 A; y4 p int 21h; ?. N) c+ |7 O
enter
9 h, i" n9 \' C9 |5 R6 ]$ V$ G3 q ret, ^2 m( f* a7 a$ D
% S: \& S1 E2 ~8 N, Uprop2: enter
! o0 O" k; ?: ~) I# _( p8 n0 ]) J mov dx,offset pro20 l* @& j7 b4 g# {
mov ah,9h2 u2 s& p4 n" {* [& g! C- H
int 21h
T+ C$ X! r5 _; j; W ret
# {5 H" i; C! L" s4 E* G! N% c' h
8 _5 G7 C; O" s1 Y1 U$ `code ends- k9 b& C% }. P) J. [
end start
; j6 |, P% h: R9 x
6 m& l9 ~+ X- Y: ~' W# x3 z. \# h5 {: V0 s
|
|