|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
. @# s6 ]; v" U/ P# Kenter macro& k7 N+ q- u8 ~5 j3 {8 s2 {" i
push dx
& R P3 u6 d' i: y9 I/ H push ax( V9 }" G1 n3 h! @5 Z) V2 V0 m
mov dl,0ah7 T8 m, v& \2 u% _% [ |4 v
mov ah,2 ~: q1 h; F2 C2 f! |8 `) @- r
int 21h
4 H. O" Z& p! [ mov dl,0dh
2 `2 d$ u% {. Q" ~2 v j! a mov ah,2
+ Z+ j- O6 t2 M) s$ c- ?3 U0 c9 [6 }( ? int 21h
# y2 i3 M* m0 P. J/ ]. `2 N pop ax2 v- G" e& p8 O# A! U
pop dx 8 D }5 m9 x1 b0 T4 D1 W1 G& ?
endm
, B) @4 D& }* H' R6 V! g
' D- R8 ?; q8 A( I2 H1 F$ Vassume cs:code,ds:data
+ |( Z* m* \4 q$ ]! }0 `& e t Pdata segment
, [8 G3 S% e+ u9 ]7 } A8 D2 o: m/ ^1 Xtable db 300 dup(0)
; S9 z1 |% E3 J/ t6 Ypro1 db 13,10,'_________________________________________________',13,10
* L4 R' I$ ?4 @: ]* f. _ db 'no more than 20 characters English name.',13,105 s% P; N' q9 N7 f i" Y& I2 q
db 'For example:',0ah,0dh,'liang xin hui',13,105 g/ ~; [. o7 e9 ]# h9 O
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10, c5 z5 I* m* c8 L) T$ n2 m6 c
db '.................................................',13,10
: ?: W1 d% S( r3 e db 'Please input:',13,10,'$'
& J& K% D& k; Ppro2 db '.................................................',13,10
9 P2 q% j r2 L L db 'The results are as follows:','$'
! T+ N# |( |6 g7 e- v d- S
6 {, D; I, ?5 j( q, {9 y9 Z2 acont db '________________________________________________',13,10% U) L4 V, H& J% w. P1 d
db 'Can You Continue(Y/N):','$'$ h6 I. L3 p. B! z1 z
0 q' T# w- _2 {2 l0 ucp dd 50 dup(0), }5 U# m2 T+ a! D N) K
data ends9 U$ P$ e7 Q) r, f9 p( _
2 A0 Z. L4 |0 ^4 n- dcode segment
& w7 h" w* u; |$ C4 g5 ]! Ostart : mov ax,data
! U& L* A3 b8 h* B: H mov ds,ax
9 ]$ u/ h, |8 O3 l% i call prop18 G( r R* j- `! o# \, J0 Z% n1 j$ p
mov bx,offset table
! k8 @7 L! l# p. b8 h" N mov si,0
) b6 @5 c$ T# q- b9 g mov di,0' K. J, d& {3 G0 N1 U
1 a. ^' [* s8 [& r2 u$ P+ C! _
5 g s9 r( Y9 X1 x9 J# |8 p- X
call enterchar
+ o9 J7 e, I2 tperp:
1 V; D2 ]: X+ k/ M/ y4 V2 L" n! \ dec si2 q/ s! q, N' M" z, X$ e" k
mov dx,si
1 e) b# F$ b7 C6 o+ p% Z2 u inc si
; s! v- t! x% ?# D, \ s3 H" L mov cx,si9 M# Z _/ k( D; l; ^$ X2 j
call arrange
$ K, O' v9 @; U! ~! h5 Q) U; W call prop28 L( `8 Z+ C* T; F& w
call putchar
4 o/ N! ?9 g" J" G* dliang:/ x/ E1 C0 p7 y, h6 o
call Continue. G8 m" z. C* z
call judge( C5 D& O9 Y' v% a' s: X/ k5 d
mov ax,4c00h
; T2 n$ ]' ~7 l: b) W2 P1 {0 K int 21h1 L5 n0 T4 Y; ?. _; }
( _. `5 `9 Y ~$ B1 C, w. R4 B3 f( X1 Q
Continue: enter
0 v0 h/ R6 k |0 M. l! l2 [ mov dx,offset cont$ X- [: X4 I8 y* \) N
mov ah,9h
1 H/ e/ w) y" ^6 ~; H int 21h
# C6 A. R9 T3 d, j7 v/ L( t8 g. g ret , `* T4 T& ^, @( q* W' K
. Z ~2 V6 X9 G0 q
judge: mov ah,1
( [3 G1 l9 l, o7 T% z/ m int 21h
' b2 B3 v' P( p- h2 C# F or al,100000b
0 W3 F/ N+ ], v3 u/ a; \% ?+ y; s cmp al,79h
2 |4 _0 i% V5 j7 C3 W0 } je clear) f5 t& G; M9 p
cmp al,6eh I6 X* s2 u0 I& z! f
je endj+ o* G5 Z! _. M* Q3 X7 Q1 |' r O
jmp liang
: A/ |5 n ^6 \( u9 n6 P# {% z% Oendj: ret
# g; N* }: k3 B- l) A& I; P$ f$ d
/ ]/ a; o3 y/ U5 yclear: mov bx,offset table. i# d% E! Y# u7 E- c' i
mov cx,3001 |5 W' c, S; J. B# K( l* R
zero: mov byte ptr [bx],0
* c% c) \. k- m2 c6 F, S: c inc bx
6 r; w% j6 U4 l0 c( m3 } loop zero
* X) T- Q) r6 x6 x jmp start
$ R4 R% E& K2 `0 `! v$ z8 n/ M" G* L: B
( t0 Z& O* d6 w# Y2 T( wenterchar: mov ah,1
+ N i7 u: s$ w8 w" \% l int 21h
& i, J. ?2 c4 f mov byte ptr [bx],al
; A- ]3 @- v; I cmp al,13% e4 T$ i( b1 `* K9 Z* b
je endchar # {6 k% H' e7 e6 R' K: c
mov di,1
1 ^$ i3 {* x4 H, b, a: }$ F& [. o inc bx, Q+ F% f$ I$ I A% u8 V8 {
jmp enterchar# |* A# X5 {' X1 m' u9 H
# e( q v6 ?' N }1 \endchar: enter 4 W5 p- B0 T5 p2 T- z3 X3 }
mov byte ptr [bx],' '
5 R1 u5 c( u( X4 g% ~3 f cmp di,04 Y% T/ W5 {8 n' K
je perp- I- Y) h8 W, U! h& a% R% {
inc si
/ A" u1 }' ~5 r! n mov ax,si
1 V: o T9 g6 D1 F mov dx,21
: z9 S5 Z; k: G mul dx
( W) V& ?; x; D4 A8 u mov di,0
& J9 j. j# p; C% L2 t: Q' r mov bx,ax / h3 z" T$ @3 t
jmp enterchar* l% Z* P+ b# E5 R
# R2 L3 N3 _ R; s! F
arrange: push si' D6 {# \1 h' P* _1 |
push cx 7 `% K; F, B7 I% B! k- i/ z$ M
mov cx,dx ) e. @2 D; }7 z! ?
mov si,0% x3 c) ~% {! j
mov di,21
* h' k) q* F/ _5 W5 S9 Z9 j- t: ]- B% ?8 N
s1: push cx
* l7 w3 e$ R! u7 P" H1 v mov bx,0. q2 i# ~& N& d4 |/ y/ r0 ^$ W- U' F
mov cx,20( P+ K1 q& d. [+ P% ^
ss1: mov al,table[si+bx]
4 {$ U: a5 b) ] k& J# I" { A$ o cmp al, table[di+bx]
# T9 x9 \3 N! b+ U' F6 b& h5 o3 g+ v ja jiao
0 v) y3 z7 J3 z7 }) b. X) k) } jb s2
* `1 d; J+ R' J5 {4 \ inc bx
& j3 J1 Z1 J. n: A# ~: K loop ss18 `5 x7 d. _# h# J: t
jmp s2) F! H6 [" p y- G; u4 i' k6 S
( \8 z! {9 ?: U- p2 Qjiao: mov bx,0" U. V- f" s7 M2 \# O
mov cx,20
" I9 y2 A# j" K i, `. g! U, Cjiao1: mov al,table[si+bx]4 }! r: C* r: A# M
xchg al,table[di+bx]; X8 [7 |7 w% [4 N3 }" ]
mov table[si+bx],al, q# X' e) i4 t. A3 D
inc bx0 @& H7 h* D; b. O2 i8 O
loop jiao13 d+ S( a9 {5 {/ x% |/ d1 [' @, O+ ~
9 @3 X; b* p* v1 J$ V) ss2: add si,21
7 s1 F, B$ \) ?8 q9 | add di,21
2 g; ~ |$ c4 U pop cx
0 N" Y- L$ |% G loop s10 f" i; T. {8 n* X2 j. h
9 E- p- N* r4 f$ j- S/ t
pop cx, k% `! t5 q u! t9 c6 h5 `0 o
pop si
; p- ]( v/ Y8 _) U! z3 c4 [ loop arrange
9 E" m/ |: V/ K& I) X( ~) E' b ret, y8 p, A. p8 h2 `3 f6 k' e
% G. U: b* ]6 U2 Hputchar: mov bx,0
; R( Y% j& o$ K9 |3 z mov di,16 R4 u9 @0 O; E$ Y: P
7 x/ Q1 T( M5 { : }4 s6 x) j Q3 C L
mov cx,si, `2 M% r9 q& t5 h: @
put1: push cx
" X8 O$ F" A- k- x& X push bx
& T* X; \2 W; v. i; s , O$ M1 M& W- {1 I& `
enter
: c3 G1 N( @6 R. l4 S" d, E' n0 o( V4 ?
$ _9 T0 p; b% k mov bl,10
- Q* j8 t! }, M4 J& j9 K mov ax,di' F: b+ M* e# b& e' ^8 }
div bl, V6 J2 b' ?9 F: i. q+ X
mov bh,ah
' h9 R5 ?4 H9 ~- x% A. Z5 E9 l( F: B add bh,30h
: h6 N/ q) h0 m3 b% g- d% G9 D add al,30h
/ _8 e5 `2 t+ U- O& E6 K+ Z" F % v4 M6 Q/ M! b) a2 e: Q# o
mov dl,al
- ?: q4 [! r, u6 v mov ah,23 I; g5 K& a: m* ~% V) W
int 21h9 I2 k: K( j1 e
mov dl,bh9 c% E7 ~. P+ U5 S
mov ah,2
# i3 p$ j# }2 S; @ int 21h, K2 @% a( E- A9 ^
mov dl,3ah
9 u, f) K& f) u5 X3 X4 e n5 r6 x mov ah,2
, Y: K; s+ e6 U [& L" t: }; I! r int 21h. J5 C5 v, n% Z# X% G% w: ]- L
pop bx
0 N+ Q/ F: j1 F- T mov cx,20# n, M, v- {6 L7 x0 ~ e
push bx
0 `0 g" o3 U2 X3 L! p0 Iput2:
" F9 i6 |' W( Z mov dl,table[bx]/ e% R) s N# t' E' E9 t9 g
mov ah,2h
" h, r* d6 y3 M" e+ _% j) A int 21h
1 ^+ _9 w* _, T5 Y6 Y5 w8 J $ ~& c+ {4 O/ K; ^: e9 s" T
inc bx1 V) a7 l2 v* k% e+ a! t
loop put2
. c5 B, s, x# U3 s inc di
* G. V8 \" M& C2 K/ j1 {: z: J pop bx
' P* U" W- {# m$ x. [0 m: U add bx,21
, T: w$ L7 Y' f' ?; W pop cx+ n0 [$ O' e( b3 g
, H5 \0 u. w2 Y' n% l% L loop put1( B9 Y6 ~$ O( r1 A
ret. Q2 u- C! \5 Y4 ]+ A+ h$ x2 m
' ^+ A2 j' Y6 Q, ^9 P, n- H
prop1: 6 u6 h9 { O* \/ f z7 j O
mov dx,offset pro1: Y6 U8 w5 Z8 m' s% Y& u6 \
mov ah,9h
$ B; N- O5 B; R \; e* c% K& J int 21h5 `9 I# i) t2 t* D+ L
enter 0 J9 W$ [# M* L2 B3 H
ret
: X4 h7 P" o* k7 b7 ?) z ~
( K1 e2 W: ^( }% N8 e- w% Vprop2: enter# g: t6 S5 S9 y
mov dx,offset pro2
( d( q7 @$ x# | mov ah,9h
" M k, l( b1 K" h0 n. y int 21h9 q! N3 h4 S! S4 g n% L2 r
ret! q4 i) C/ A: Y0 ~3 W
9 L, |; G3 [5 t1 x3 [& U" Q) O
code ends+ e: B& R1 a6 R" j
end start
P$ n1 t: O6 n ]( y* H* Y% Y0 \* C
% j% Y! a1 |3 t- a8 i' t% z# r: g8 S% f( X q( b9 U
|
|