|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
3 p# p; q2 K9 J- I5 Y' |enter macro/ m; t/ h3 G0 b: {2 R2 \
push dx
; u$ M- O; `0 i/ w) T# h5 p push ax1 o) j" l) K" N; g6 B* J
mov dl,0ah) O& H6 ~6 D( V( @: ?
mov ah,2
3 {, E6 J" v0 r2 D8 c- b int 21h
0 c* C2 _- h9 Z mov dl,0dh: v6 ^1 S7 ]; ?' A) r7 X
mov ah,2) h$ |- P# v' A
int 21h
0 H- x2 [& E0 v- [5 w; e# } pop ax
* J! ^: V4 L% X/ C pop dx
; j/ e( K1 A8 n2 Y7 qendm
/ @/ R2 j/ \/ a; c" p
: z; Y0 T) `1 K* Z' B6 R; Dassume cs:code,ds:data, h8 }/ a, R5 \6 \
data segment* R) K4 ~$ [; {" b
table db 300 dup(0)
& M" Z$ @ R. f+ o; epro1 db 13,10,'_________________________________________________',13,10+ G, p- D5 e8 y1 V
db 'no more than 20 characters English name.',13,10
3 R5 w* M" ?( l0 m db 'For example:',0ah,0dh,'liang xin hui',13,10
! z% o( G0 E. q db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
6 n9 ^ c' T/ _/ m3 X db '.................................................',13,10
2 d$ ~; w2 N/ z0 Z' a& r db 'Please input:',13,10,'$'4 N5 @1 r+ E; u, G/ l1 W. H
pro2 db '.................................................',13,101 i" s$ S4 @- _0 w
db 'The results are as follows:','$'. {) v. h$ F+ P: h% B; W% r$ O
* ^0 Z$ M3 q0 l* P8 Z6 p. D
cont db '________________________________________________',13,10
6 {5 \+ H, [/ } db 'Can You Continue(Y/N):','$'/ U) F$ [; G7 D6 E: c5 C
3 [& q" R( w- |* N+ ?
cp dd 50 dup(0)
9 z$ b/ E: I& S6 ]) Vdata ends
9 ], T9 ] ?8 \% ~
( H5 g3 {/ \0 T) ~6 G/ gcode segment9 W7 b, z/ m' ]' y5 F
start : mov ax,data
. K1 ?0 X( q/ C! D N* z mov ds,ax
# H4 O4 y9 ^5 ?7 T# G9 u call prop18 f* q9 x' X# k& w3 x: t
mov bx,offset table0 g: i! v3 o) V7 {1 O W) D% d
mov si,0. A/ f& y# j( g( K+ W _$ ^
mov di,00 r- X" p% c0 n
( B0 Q: `$ Q9 P2 Q& p( X- ]7 E
9 h/ J; J! q: N5 B call enterchar6 L7 O2 ?' J/ S5 q, d- C! Z) K
perp:
# k7 o4 @ o1 Q- N: r+ z dec si
4 i6 f0 ~* c z) y+ h. C mov dx,si
* V6 J0 a" {% n! }5 r3 ] T inc si 5 \5 A9 T# u' K J4 n7 O
mov cx,si' T* E5 Y, \( t% v
call arrange+ X$ Z4 `& l2 B" w: n6 L
call prop2
8 w# d& o4 U) K, p& p call putchar
2 l8 y! l4 |5 N& tliang:
2 Y) {# K3 z \1 G% j3 t6 k! r call Continue
( V9 x1 ~6 x- N, c4 K% L8 }/ b call judge
; w; e- A. q* {; B0 l( x- K mov ax,4c00h
% B/ {( Z7 X8 M8 Z0 I1 L0 i int 21h
* \* g0 q/ E8 p- m5 _0 H
8 P* g$ m. |+ s3 L" a) T
' n: j6 P s- {4 ^' Q, YContinue: enter
8 W& F% m; j3 ^1 @% a mov dx,offset cont
( c. s7 k4 G) T3 N9 _5 O a D! h mov ah,9h# V- S' ^( ]5 x1 s$ t
int 21h2 [6 \3 a* Y, V# z v( e- U- u
ret
1 ]) C' p! o3 G% T
+ B" ~% D% r0 i9 B7 S' ?judge: mov ah,1
! l, W/ b0 U$ W G+ B int 21h
& D* e3 u' ~: d. B$ f0 r& x or al,100000b: U7 O, m6 t9 C T U1 c7 w( M! A( |0 Y
cmp al,79h! L$ t. t% D) W
je clear; d. F+ K9 C$ D% d
cmp al,6eh
8 E1 a( @; }: n/ Q' ^9 I3 @' A je endj
, v! b, |9 }, W J/ P jmp liang4 D# v% {2 z) Q
endj: ret 0 z# g5 S2 t! r1 X n
}: ~: B7 m; u2 L. }3 B! Xclear: mov bx,offset table
7 o# S T! y1 Q mov cx,300# `, P/ q3 i) h
zero: mov byte ptr [bx],0( h# s. J7 n1 F1 [4 E# @
inc bx9 N4 ]+ {) o+ ^* f6 g- ]( I
loop zero3 j0 `4 A, n4 d4 G5 O
jmp start( L8 T, L% U' C3 h f. F* o
7 |7 T; t" U3 q" F- S$ O7 p
! s4 t# |( r) m9 P0 W2 v ^7 centerchar: mov ah,1
4 a3 ^ _. p& L7 [9 W5 i* t int 21h
# P2 ]! L' o7 }1 | mov byte ptr [bx],al
9 R4 R# A) l. X3 y3 ~ cmp al,13. h/ K. j! o: Y& x, { V' O
je endchar $ M6 S6 p# K. b9 P
mov di,17 W b3 L: e H7 Y3 {
inc bx E7 G) F% {. B' a1 r
jmp enterchar
6 `' r& b* [) u" I/ \, ?+ {* w
+ t7 k, _# {* H3 j+ K- Cendchar: enter
1 f1 u4 {. p( H5 D' `2 r mov byte ptr [bx],' '
5 S* o! v) M; C2 Y' [7 L cmp di,0
Z) y/ O1 Z# P je perp M* {2 }6 g9 h% [: S, k
inc si
! k8 T- o+ g$ s. v! ^ mov ax,si1 k" x; `: `7 d. k3 Y( Z1 o
mov dx,21
! r, ?- P6 I' M9 Z$ k, R mul dx
' y5 b- [' `8 F8 {8 @. `; s9 [: h mov di,01 B$ {$ k5 W; a0 P6 C
mov bx,ax 3 _+ e+ ~1 j4 V
jmp enterchar1 x5 ?1 g/ d# W- o
# Y: Y f K+ parrange: push si
9 i* |. p B( T8 Q- Y2 B/ W push cx ! L, P9 f/ w" ? @' W: {
mov cx,dx , W) h6 g3 U/ R% m% r( N, |& A2 k$ a
mov si,0( Y3 U$ I! @+ v2 ^8 ]
mov di,21
4 K- T- x- Y$ T1 b4 \* o, _% m. d. ]- E x7 w$ N- D
s1: push cx
9 s- w3 K) J8 f2 g, k3 y( d/ Y mov bx,0" ^4 p. q8 @, T+ H/ ] v- F
mov cx,20
" B& | c- f5 {+ {* X1 c* Ass1: mov al,table[si+bx], E5 y* t1 N- ^" x F6 W
cmp al, table[di+bx]
6 c+ B! t1 ^1 R$ A ja jiao! j7 L4 \# T" f; S0 ^2 ?
jb s2
8 W. I& Z5 m2 }2 F K( T7 z Q inc bx. o4 Z4 j5 {5 z9 V7 [, R, ?
loop ss1
' M6 E3 g7 ]% B S& b/ a: p jmp s2
. j6 x( } [) ~/ |: Z& f M# h1 u/ O3 ~! Q$ i8 q' C
jiao: mov bx,0( O( I) e+ Q. t/ C" Q4 D/ E
mov cx,20
9 x7 y$ x7 q& h3 n- l# t6 x4 l& _" xjiao1: mov al,table[si+bx]2 n$ B& W1 `. k J; c/ r! K
xchg al,table[di+bx]/ \4 G; e/ a, [& E: j8 |; d
mov table[si+bx],al, q: |9 w3 v: w: t9 V
inc bx
9 {( r- p7 t4 o% }. M loop jiao1
A# \% O1 G6 Y/ O
# K1 Z& k/ b+ t. {4 d5 Vs2: add si,216 g6 X s: N$ ~9 P, k) B
add di,21
' z# E0 a" y; e" ?' i a pop cx# I; _ ~1 E- z" W
loop s1
. j* z- h7 e7 s; }& p( P2 w# p/ M1 C o
pop cx3 w$ j7 K* l! o9 ~4 n
pop si
$ |3 G' G7 \+ X+ |7 }: J loop arrange* m7 b- R; ?) K R6 K8 x3 P; I4 U
ret
! q. s, H! ~9 {3 s% {4 r7 ?5 K7 k8 `& c+ o8 G4 i' ]+ q" G
putchar: mov bx,0
9 H e2 m3 i8 X6 i. U, T. O mov di,12 z$ Z, x" h( K, b
* [1 D X9 w/ k" {( U3 B0 L7 f3 `
x* H5 u' t6 Q0 E% q1 l2 @7 c
mov cx,si' b! f" s5 ~% E/ p6 s1 t
put1: push cx- ^! k4 a- d0 j
push bx( C( z( R$ V6 \* o
9 A/ W, J) ?3 k: ^( U2 Q. j( u enter
# F7 S& k6 S$ t$ [4 V) V' b3 P
O" G. c/ N- m0 z% @/ { mov bl,100 D% n) X: N; K3 z `2 j6 |
mov ax,di
2 h' j- E8 a1 a" V4 ^% r9 b div bl
! ~0 y3 Q7 a' \; W mov bh,ah% O, E' U+ D& n: b6 L+ f
add bh,30h
/ n4 Z4 b7 r- i add al,30h
6 |' }: ]( z$ E8 a* h, H1 p; f
6 p5 f6 ]$ O1 H1 c$ P6 y l mov dl,al
- j3 L9 w, @- a mov ah,2( N5 z% s7 i* h* X
int 21h
* I3 L* {( M. M0 W; G8 U. ? mov dl,bh
3 D* n1 `" p) h3 X+ i4 P mov ah,2
% e9 e) i ]9 W1 d( J int 21h
( T5 s) M1 O8 t mov dl,3ah4 n: C R* N( `1 s# r( ~
mov ah,2
, Q: Q0 ^ Y$ w- L: g int 21h+ f; ~2 W* B7 R( c/ j8 b, q f) p
pop bx
. e" {! s |7 Q: p2 y mov cx,20! u M* ~" t8 B7 p3 |
push bx
x' r+ h% i) y# [put2: : U. M1 t* ~. L X) k/ J
mov dl,table[bx]
( r( P3 {' d7 l1 t, u" P* i mov ah,2h+ W& ^0 T- b. O8 k1 D( _
int 21h
9 m4 O# R3 r7 p& u3 X( f
! O& B& X+ f! Y# l) Z1 O: X4 A4 F; f inc bx
, ]: M' T' }- H7 b loop put2: i0 ~- F& [( ^) ^% E
inc di
4 M& v7 W4 [$ j; C1 y pop bx) f" p2 ?( t$ A( Q+ j- ~* y8 e( V
add bx,213 ^8 V# \0 T5 s( n
pop cx
8 b& s0 E4 q$ }6 f. g( T9 b2 {; z n
+ @! D6 A* {: ^0 d loop put1
1 s g: F" [! b1 N- \6 H ret
9 U' I2 q) G; }* [# Q8 Y& r
' S1 D2 g" n5 Dprop1:
+ n0 g9 g% z& W, J% A" k6 g mov dx,offset pro1- h* M% ?+ F4 o- d
mov ah,9h) @1 E6 Y) V, O& q/ w+ r
int 21h
: g; j; J4 x8 e8 m" G1 s) k. n enter
5 M. t" h _; e9 v$ ~( P5 J% o3 c" r+ V ret' [3 b/ Z# V- Q- T/ x
% r4 ?0 Y2 X+ b( j% P1 y
prop2: enter4 o6 ? P! x3 u7 H9 ~+ G
mov dx,offset pro21 T7 K. L( J3 }# u
mov ah,9h
/ q/ X, o9 F1 p5 c; \$ _4 [ int 21h
# R6 N( j; M5 ` ret3 |& ?& f4 n# t* c- S, `
9 `( u$ h6 ^9 kcode ends
7 h/ F( X' U0 ]5 T7 e0 K p, bend start
' l; ?. y0 J4 Z/ V. y5 v4 K* d$ V# Z# I/ \6 z
2 O6 y# Z# W. l5 o
|
|