|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
/ `) }- E: q5 t7 yenter macro
4 [2 a/ N# H2 g2 K5 e push dx
% i$ g$ o4 C; O2 v. X push ax
' E {' I7 F3 ~7 h3 f5 U& ?( v mov dl,0ah1 b' i, A0 k. Y1 g, W2 ?3 V3 ?
mov ah,2
# z! a- w. c6 r2 Q( [$ k int 21h
( Q+ |3 |, x2 e5 a" z# v X mov dl,0dh# T% ^2 v( ]; g9 ?7 C) K6 \4 ]
mov ah,2
, g0 n, Z) E/ m8 }/ @0 k int 21h/ r) e- `3 }. E- b
pop ax
; c& o7 B, b! i pop dx & a5 C% c4 s# o
endm9 H9 ]! L O$ E1 Z _
, S" p' m; l5 t# p ^assume cs:code,ds:data
, M/ c: R0 w7 T7 Qdata segment+ g6 C( \, [0 j
table db 300 dup(0)& h+ l; l& A: @6 D
pro1 db 13,10,'_________________________________________________',13,10
- K" p$ q6 p% P, D db 'no more than 20 characters English name.',13,10
8 A$ Y4 ~$ Q) w+ h2 u db 'For example:',0ah,0dh,'liang xin hui',13,10
9 ~6 |: }. n J# t$ v8 U: Y db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,108 y6 T* P$ u/ ~
db '.................................................',13,105 ^7 c/ H/ t( k5 `+ W! s
db 'Please input:',13,10,'$'& x- N2 { b5 F# p0 k* h( u
pro2 db '.................................................',13,10
7 ?2 A$ l9 A0 `+ g4 Z# b db 'The results are as follows:','$'
$ X. f5 u' A, j! n+ r# c" ?
$ @+ d3 h1 ?- f$ x+ P& W. Lcont db '________________________________________________',13,10
; r8 P4 n$ @# Z" ~6 O o4 B db 'Can You Continue(Y/N):','$'- H t# e; e. f
2 Q+ U( |, P# Ccp dd 50 dup(0)% C6 A+ e+ r6 |0 m0 o1 T( x$ A
data ends
+ N6 u" Y( d, a) {2 ]; g4 W U8 T: d6 h* j/ F# M. D! \: s
code segment
, [1 F8 s* ]; ~# h) ustart : mov ax,data
* J& [! v( x6 ]9 e" j/ I mov ds,ax
* h6 D- r; f: V6 o call prop1/ k6 ?8 I. k/ @: M1 r" f6 u
mov bx,offset table
7 O. |, J) P) Z0 [- m mov si,0+ L. Z; F! w; j' C
mov di,0! m$ J5 B* c8 s7 a
+ p5 @; S7 g: o7 x
) p* F( u+ G& j( n1 \3 y# [ call enterchar3 q0 M* Y) q* D9 L5 `0 r$ B# F
perp: 3 a4 U o9 b- B: {7 }! |
dec si
% R$ r) J: m9 W2 g& `- i! G/ h mov dx,si1 r# ]0 @ v# ^, ]8 x' x# T
inc si
( A' r9 j) k2 K% o mov cx,si
3 a. l f) C" z/ J4 _- f6 P call arrange
' k. I; n7 v$ L$ B c call prop2) ~$ @" G$ t/ c. C' d
call putchar
; o w* O' L9 Y/ F& f, P! mliang:1 e3 ~/ s1 |' H5 q0 I: }
call Continue, S- T0 g$ ]! w6 i; K2 f- z
call judge
+ A0 F+ X4 d3 r5 @0 G$ E* d4 e6 q* Z mov ax,4c00h! P5 @& l/ U2 @' T
int 21h
7 D* b- N$ k0 O2 f. i! W% k- ^. V! S; P: c) f! |- M
& V1 R a% c; ~/ N& [# Q1 T
Continue: enter0 V# Y0 w2 V/ K+ k$ E$ r3 R _' s
mov dx,offset cont
1 H4 ]3 O* L& u( | mov ah,9h
8 T* G' Q% W. L; |3 x, ]7 c int 21h0 R, L: L" u* D$ M
ret ! @4 b& {) I6 Q0 F3 e4 h% s
; e- e) V9 E' z
judge: mov ah,1- y9 z' d, y9 M: {+ \/ N3 l: J
int 21h
4 p' s4 P( s4 k' v/ Q- W or al,100000b
' \6 G( F3 ?) v4 T cmp al,79h# B8 x* Q7 M7 t4 C
je clear
4 D3 {' l7 N3 v+ _- J; K cmp al,6eh+ d$ h4 |7 o1 a% K. }+ g( |4 R3 ~
je endj
- a( P. d& L$ _- [3 X: P. n& | jmp liang4 b# _& f T4 p
endj: ret ' W" U. S0 f% A- z1 D
: i# @$ J6 V" x4 M0 W+ ?clear: mov bx,offset table
+ c+ U1 v( P' Z u+ J8 G mov cx,300 h7 w# ]5 [% c8 x4 l
zero: mov byte ptr [bx],0
' c" l/ c3 K% V0 K) U6 V inc bx9 A" J4 Z3 H) m2 s. u
loop zero) e3 j- {6 `7 Z9 d& ?0 \
jmp start: d# `/ L& g4 {1 M% |: x Q
r. e# s2 {4 x5 A; l7 U2 |% h
/ P4 Q/ P& u: d9 F! l+ j) E
enterchar: mov ah,1( v# e7 K9 E+ L, |" c2 | ?
int 21h
0 x+ D% [2 x" h1 }" f5 i O' } mov byte ptr [bx],al
) k ]0 Q% U6 X cmp al,13
3 r/ c' L; @: G D: w) J8 { je endchar
& K& D7 W1 L2 N* P; e2 [ mov di,1" [" T; K1 y1 O S! W
inc bx
2 N \$ X4 x C; X- e; W jmp enterchar4 _3 U- R" {! s( m: k2 K7 j" _& o
, R9 e6 C. I! C `! n/ Uendchar: enter 0 E4 L$ ?9 s& G3 r! V6 ^3 u# @: b
mov byte ptr [bx],' '
$ W+ k0 A! l4 D cmp di,09 ?" Z3 T [+ y; \2 l$ H- Q
je perp& k; w$ ?% Y- a, G" n! l
inc si
0 l: K) K2 s1 l7 `4 x% ]2 Q mov ax,si
/ i! A+ N% e5 ]0 F- \0 Q9 a' m" | mov dx,213 O( O0 K) u# n8 u0 R5 j
mul dx* u# H1 s' Z% l9 I4 f
mov di,04 w: j' R0 N6 \6 A, X3 ^
mov bx,ax , D5 l: K) \. C& t8 n
jmp enterchar
' l: T: {, q% b5 W" d# H: x7 Y/ F; W# b$ ~7 _- n' k% U
arrange: push si p7 O' O5 T2 ]" P0 X+ C, l
push cx " i( M5 L7 K5 A) T9 p
mov cx,dx
# q! Z4 [* k" `4 Z* p- T/ ]. h mov si,0" O0 N1 D/ k# h( @
mov di,21- D. Z; f" w" l$ Y8 N: w
( L5 ]; h; V! x/ [! @: es1: push cx
# ^& B4 e6 t4 ]4 S- C& _7 U, t mov bx,0
! ]3 N- @$ N7 n: [$ F/ E5 Q mov cx,20+ o4 p/ M# G, m* u9 K: i
ss1: mov al,table[si+bx]) I. Y. o: I: ]$ z/ y
cmp al, table[di+bx]+ m! f# T3 t7 Q* v
ja jiao
l% U- l: `) {$ c8 { jb s2( L0 [3 \. G* T9 h3 ?
inc bx
9 g" n. a$ d3 X m3 o$ V& \ loop ss1
7 u0 z. I: p4 R# }& S jmp s2
% `2 i; V7 Q5 u! T( J& ]# v) T( g8 _" l( g3 f
jiao: mov bx,0
& c% s. b! Y8 E' i6 G- o% [ mov cx,20, k" C5 ]7 c. k! E' t l4 I2 Y
jiao1: mov al,table[si+bx], E& R1 Y2 Z2 Z& T8 h0 m/ E" ^9 k& ]
xchg al,table[di+bx]
! E3 h |2 X+ Z S& ^ mov table[si+bx],al! Z. D3 u- I+ T% O/ @ G/ p
inc bx
# I" z" i) x, F- }% x loop jiao1
5 R+ s( J- e& J0 E
9 _# q/ }# y8 Ys2: add si,214 _% e" o* T$ F; I( m* p, H8 K
add di,217 w5 Q$ f) v; C9 u* C6 Q& u2 M( `6 D
pop cx
* \: T/ L7 S9 c4 z6 i loop s19 t/ a! e& e* I$ v% n. @; O
. t( W6 ]9 r O0 z' w
pop cx& w/ a2 a( ^5 d% N
pop si
& G" s% C4 P$ B2 N* z loop arrange
, b) q4 R f3 h0 V# g ret
; z# M- M$ E$ a
* u8 j$ k/ X" }7 j6 gputchar: mov bx,05 ~7 f/ k, X4 b3 I. |
mov di,1
( P" L$ t% a# f$ B 7 Q, j# ~2 B+ m. z2 U! X# L
2 t2 n4 e) I0 \5 n4 u6 C0 a6 Y$ B
mov cx,si
H5 [7 I9 C/ m3 ]! M+ D' z+ dput1: push cx
* W, G# t" Z! Z7 T push bx' O7 t0 z# r/ n- s# P0 X! f
4 S( _7 y) z6 {/ ~7 L4 z) w4 u enter
4 |& r- l" [& T& l( C5 e5 [
6 q3 c% e2 v3 \/ `: M) c mov bl,104 \) b! J; ?$ i/ R J, J3 |
mov ax,di* t0 U" J' u* Z f8 u
div bl- V/ T% p) f) {& F) c
mov bh,ah
/ O0 m3 a7 d) @2 D# o add bh,30h. M+ k9 u) X# {: K1 t
add al,30h8 w' C- N, V" [) o; I* y* K; M
4 [2 J. X# J) x2 T* F5 q5 ~5 K, r
mov dl,al) B$ v2 i9 ~6 y2 F4 i
mov ah,24 U! K& O4 y7 z9 H0 ~8 J
int 21h
- [0 q3 E; n1 y7 Y0 ^" m mov dl,bh* k! s# A% N7 M4 }2 ?! U. w7 P
mov ah,2, A9 U) ]" V- e* o
int 21h
% T# Z: T( s& N7 U* C7 C+ c mov dl,3ah) x1 h6 W" M# O( f/ T1 H% A6 D
mov ah,2
) a8 F8 R9 H! r+ c+ ]# m: ? int 21h
0 U, {8 z) ]: N; } pop bx % L4 S/ t# i% H' A+ W1 A& q6 h
mov cx,20+ \6 C8 S* z T; s/ u" R
push bx9 _+ q9 p; B3 t/ I6 N4 ~
put2:
! R/ A- \ ]1 Y mov dl,table[bx]
" Z6 @" q; l! }+ I$ x4 r7 y+ w) F" ? mov ah,2h$ Y# B L! ^! b6 ~ _1 [
int 21h
0 n# u- s {* k& q0 k- x _3 Z3 z) p6 @. V8 Z
inc bx" l5 `1 U1 _0 N- o9 k. [
loop put2) N" }% x8 b+ T# w% {
inc di , Y' ~+ {0 Q8 `; E
pop bx
2 ^. d9 Y J8 o% A: w add bx,21
% F4 y. p! O7 H/ Q, {4 L7 W0 ?; X pop cx
8 B) }1 {, z2 @/ a' w8 p4 u : o" D4 K* p8 q* U2 v' c
loop put1 a' u# |! B R& C6 }! G S7 q
ret( m. |! T- |# t# S3 n. i
( J/ ^% y; b# F1 d' k& _3 ]
prop1:
4 Q% n1 W2 s: n/ i6 h mov dx,offset pro1' H# `: H% v4 k% V" R3 d- x
mov ah,9h, ~' e- u; _4 Z& ?3 Y: L; R9 D
int 21h
1 Z" f( Z3 K9 E7 z! y- O0 r enter
; U. W, p1 p8 x. N. L8 D8 O ret* c Q8 B, `3 K6 S( k+ ~8 t1 d
q& ~7 c0 @. j. `) a& k G" fprop2: enter8 s3 n' H2 h4 x/ {: j" h9 u& s
mov dx,offset pro2 k* X7 @+ m* s$ g
mov ah,9h
5 C# t, t( k M int 21h1 O v7 W4 p% p @1 |) @
ret
& v2 M/ J g+ T( W5 ~: o$ |% w! e
8 R d6 M. o% T1 z3 zcode ends
, I) @( j& n7 |0 h i* U( ^, _end start
" ~3 u; Q5 y# l) L7 R( d6 j2 w1 T. e9 Q; c0 B
3 g- j, @& y9 X# [! r: z) X4 y
|
|