|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
) Q( R0 D9 b" ^# _' T% C( nenter macro
- s E$ U3 U1 J% \0 A" X' _# a, s9 l push dx# a' z ^, {5 b C. K! D8 p
push ax7 Z5 J" O& t n& Y1 Z- J# y( ^5 I. R
mov dl,0ah
* C% @8 U! x( h. k K6 u mov ah,22 Q0 D& g9 ]% R5 a+ w# @
int 21h
, z, [' R4 ?. L2 \3 A& A mov dl,0dh$ ^6 |3 X$ n# J( _" n/ K$ W
mov ah,2
6 T6 d8 Y! [8 H; K9 t int 21h1 b) S: |. |# C; ]& |
pop ax0 |1 ~3 c6 y2 G5 i) n
pop dx 3 B: c3 \. t0 B8 ^4 @: P
endm
1 b) t7 j/ E) O! E7 |; r% \8 K$ P/ f7 N
assume cs:code,ds:data
4 x1 r$ X$ N6 ]6 O2 X$ E' N/ Fdata segment: i `( ^1 i' H5 J0 Z/ S( N
table db 300 dup(0)
( H# l3 m" E7 `; j' ^pro1 db 13,10,'_________________________________________________',13,10# p! Z( Q: K) x/ H+ h( e
db 'no more than 20 characters English name.',13,104 |. e0 r! U% B$ E
db 'For example:',0ah,0dh,'liang xin hui',13,105 Q- w) X! x4 b+ M/ g
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10* F5 p+ n, D2 H! _/ c1 u3 P
db '.................................................',13,10& i1 D: q" J) {/ s8 F+ H' S
db 'Please input:',13,10,'$'
: M$ |+ A/ Y/ f6 |3 J# Lpro2 db '.................................................',13,10& f9 I; l( m+ `! [
db 'The results are as follows:','$'5 ~% `! }: v' @: M; T
5 ^" {+ M8 @5 {/ Z. i4 n2 A" x" T- F
cont db '________________________________________________',13,10
1 o/ Y4 i1 C/ ?% Q db 'Can You Continue(Y/N):','$'' l2 I' B/ y5 T# q0 v; q" a
7 g8 \$ G/ D, j* o" w/ R( K. P1 k4 u
cp dd 50 dup(0)& @3 ?& | a- E+ t9 P& A
data ends
# z' ]$ w: r% m2 B: ?* R4 ^, g6 _8 W1 [* y7 G; [$ ~
code segment
' M& s' j; L7 V! D6 L( k0 wstart : mov ax,data
3 |- L1 X& u# S+ H J mov ds,ax
6 \/ l3 [: [ N" R2 N: a8 R8 {$ s4 M call prop10 F0 k7 g+ A/ z
mov bx,offset table
5 [5 E7 }7 Y6 M8 p) H% P6 C2 i mov si,0
# Z, w+ w( Y$ k) `; F$ w k mov di,0
6 u1 S( v1 A, a; K" n0 B4 \3 w; L0 x
; H5 K' l" D9 ?) W! c8 y* M 3 S# a1 q- z" P( B* f+ y
call enterchar
' i/ D0 ?9 I' n/ h' Bperp:
; t e) {( m2 F, d5 C' ? dec si6 a1 ]9 Q6 k9 p+ B
mov dx,si+ S! b) s( e6 r6 B0 x+ d9 }
inc si
( F0 B, S0 w# W mov cx,si; ^5 ~/ |9 M) f7 l
call arrange
7 `; ], P0 N9 e3 ]- v call prop28 K* N- M1 b' U! b/ ~4 u1 [
call putchar5 e+ u8 B( Q) D7 J# c
liang:3 l2 r+ q; T$ o$ T% R8 {# f' a
call Continue
7 T8 \- W6 g8 J; g, e6 U call judge
- l9 e: ?! _. H, Q8 } mov ax,4c00h
3 s5 Z0 C+ r# K, r! f int 21h
' ]% i: w9 S3 z
( I" Q2 F' v! z# ]" u' ?6 B8 _0 u2 s- o0 h; a
Continue: enter
% U4 r9 e2 t/ T, e' A mov dx,offset cont4 _; P& l4 A/ f( J% d" L7 H
mov ah,9h
/ B' ]) l, M+ P/ p; L! d7 H, O int 21h
# n( Y7 L" ?/ a% o' J ret
9 a8 K4 w2 _& `- Y& g+ N$ _- Q. e" b9 P6 w" P& Z
judge: mov ah,1
: N& d) j0 k: {/ k+ k int 21h
/ T8 B2 j1 B8 z5 \. w or al,100000b. b: Z5 B2 N, v; K3 v$ t& v
cmp al,79h/ C& K2 B; c q# s% l
je clear. P- {% E) ]; C# Q# K7 Q5 {
cmp al,6eh
7 c7 O- z% J7 d0 [! W$ | je endj% ]+ _6 X# x o ]7 ?6 {; U
jmp liang
9 Y" Q; `2 J$ rendj: ret
7 B6 ^* B8 N9 \- \2 l* t" P % X/ T) \; @; M, f, @! G9 e `6 Y
clear: mov bx,offset table
: Y8 W7 j5 L2 Y/ L+ A mov cx,300; F) r* t, L5 N9 Q
zero: mov byte ptr [bx],0
& [3 K' G r Z( ~; a inc bx% A4 n3 b) P+ H6 Z; Q4 d2 `6 m+ v
loop zero
9 }: U2 H p. t$ H- r jmp start
T2 X& l& @% a2 l5 H" W$ |1 ]: Q
! {3 F( N4 o0 z" l0 h, O2 K' p- Xenterchar: mov ah,1+ C3 ` j9 F5 E, \- k4 B8 b3 n7 r b
int 21h' z, p- h8 e6 w# a' }: W
mov byte ptr [bx],al
; m, e- e {& ^2 b7 z cmp al,13! A+ Z3 a; l m; ^, ?, Y
je endchar
T1 G% G5 w* y: | mov di,1+ q& \# v8 d. `+ f3 k9 S
inc bx
; ~/ q7 I- f. F: k3 p jmp enterchar
( a( j( Y$ w# r4 N6 j
0 ^7 s P! I5 @# P, Bendchar: enter
/ O/ C1 `. l$ ?& A$ m; K9 S: P mov byte ptr [bx],' '5 y& L% m7 c& B4 r# F
cmp di,0
; O7 x; E8 H) p/ W7 B6 c2 c9 G je perp
+ a+ l( s3 S$ C0 ~0 Z inc si
1 J: h1 J+ K7 Q$ j, r2 R mov ax,si4 V9 t* i9 V& q+ a$ |
mov dx,21) H/ ?, H9 T% B
mul dx
! w& r( p& l2 q) E; k mov di,0% Z8 j: k3 ?% _6 G
mov bx,ax
# Q( S+ K; q. q* C* L9 h jmp enterchar) T" V4 H1 H. b* J$ `. E
+ x# _+ W$ r5 a y+ I
arrange: push si" h2 V6 w! u9 _1 N" I' F8 O
push cx 4 F* ^3 ~: s- K
mov cx,dx
( V& ^' o1 I" M# `: R* X mov si,0
8 n& q9 \$ S+ b mov di,21
7 D% \- F' ~3 g' \' }
0 r. s% r/ |+ b* e9 rs1: push cx& ~& j! E, d, y8 {) u- R
mov bx,0
2 X' B2 H( }* {. q0 x9 K S mov cx,20; \- T2 f0 Z! r
ss1: mov al,table[si+bx]
" A* p- X3 M8 d+ i: J& c7 _ cmp al, table[di+bx]
0 o# j8 N# ]' s9 ?% v/ G1 o* _ ja jiao# D6 b. s* g% H' j- y% T( q
jb s2; Z4 o* i/ O# d" Q* f# u
inc bx
4 k8 [6 O2 p1 C" m, b8 e& A! s loop ss1
% n+ E( Z' w2 U; f w jmp s2
# | P+ B E0 A7 [ x
+ V/ S* i3 F3 j7 Ojiao: mov bx,05 g) @" v2 P7 |9 E2 H7 @/ ^
mov cx,20, }% ?5 U% M2 O9 i; \3 t
jiao1: mov al,table[si+bx]( ~4 K D( M* s h6 a# q. p
xchg al,table[di+bx]
' F+ S4 [% u5 }/ _ mov table[si+bx],al1 H, Q G( G0 [- x _- L
inc bx' _ c4 u! [8 K* v
loop jiao1
7 p( M; e+ M+ q5 |" ?( `& E
/ @7 x4 o t9 _s2: add si,214 Q1 y5 ] x4 n7 T; h
add di,21
0 R: a+ S0 I1 r% [ pop cx
8 ?+ i& X F3 V+ _. [ loop s1
) i- V* o4 I1 v( \- j8 L- I5 ?8 q! u: [9 ]6 Q
pop cx
( p+ u3 X0 H" T! B4 p( B ]; i pop si
- P* ~4 b, U/ @ loop arrange
+ x) Y2 E/ h, v8 z( o7 i$ _+ k' D ret$ g& d" X2 T7 B5 B
2 C9 J4 P m5 }1 qputchar: mov bx,0! O; M3 I- v$ q, w, j g
mov di,10 v$ ^( M0 x7 L* ^9 H( d
# Y( V. A/ \0 l: }9 K" A' _) L 4 B& m9 q; w( R" ]. m- a8 w2 ^) J
mov cx,si
( f$ B# R2 D* Q+ mput1: push cx+ b# P, ~; I" w. H# S8 c
push bx+ `4 q) ]' E) O- x5 ~
% |3 J# c$ I$ J7 m! I enter; e' [: S: b* X0 q6 f. t. ]
& t7 O8 r. H" D4 g; f3 ?
mov bl,10, r% @$ J1 ^% u9 l
mov ax,di3 {* @* K7 _ H% W) P
div bl' s6 ^+ N. m1 \3 C0 h
mov bh,ah
# z* S. f- h" C& v& I1 V add bh,30h5 d0 e9 j. c3 K7 O! r+ r* E! k# Y
add al,30h4 w2 T$ K+ ^/ t5 r4 H, B; _# ~
* I& f5 K9 {7 }: Q: Z- f
mov dl,al
+ P* {% |' a6 i5 `4 S0 d+ U mov ah,2
; Z2 h& U2 J" A4 r. K ^/ n6 Y int 21h2 }5 }; ~: u8 M" n$ [# N: I; K
mov dl,bh% F( D3 P- u* A' K# @5 g
mov ah,2
4 z1 f2 g$ M' o) d6 } int 21h
/ f* p( t! V+ G mov dl,3ah
3 _8 ?* O/ m7 n8 o mov ah,2& f: z+ T' V/ Z
int 21h% r) a1 T2 @* Y$ X' Z
pop bx
' ]* z+ U2 K+ E- |* _% @ mov cx,20% [1 I+ A& l# J& Z
push bx# v& z6 l1 H/ }, g3 u* v7 l- w( q, B
put2:
+ r: L) L+ l/ ^3 c2 `9 u' E mov dl,table[bx]6 s. p4 `- |' k" k+ {% ~2 j
mov ah,2h L4 x& e9 r$ h; R1 a
int 21h% Y' @- a- H. U' \! G3 \1 q# E: L
& U% |* n8 h8 {& v! E inc bx4 g* W1 K5 G, D. \! {0 I+ K
loop put2; V, \- s+ `# W1 } C8 S
inc di 1 `4 p k( ~. C8 t! _
pop bx
5 d% ]9 j5 I" C- Q3 J9 v add bx,21
4 P8 f* |/ [* v5 C pop cx
, O: l# n9 Q4 q- l% {5 Z% Y
" L/ [: D. v+ \, S loop put1
) E) v7 Q1 G8 e& l0 u: M2 K ret" G8 Q6 `3 J! M) }4 g3 x+ ]
/ k& J& h1 Q- @0 M; C6 Y1 c
prop1:
3 c) ?4 o* S- { mov dx,offset pro1
1 x0 v6 y7 Y2 \6 g mov ah,9h4 X7 g1 w8 K a$ e
int 21h3 N% x+ a5 x' h0 x9 T
enter 7 P' N |- x5 R4 `& i2 s
ret9 _& y: Y% j( K6 |* Z" E
1 I7 z* y/ @( | |1 g* N' M3 Oprop2: enter T* m6 v$ f' Q7 Y8 m2 t; u: D
mov dx,offset pro2
8 s: V* X" o3 t- L! _7 i) N/ ]4 u, @ mov ah,9h
1 }1 C/ }& }; h$ J5 x1 r int 21h
& O2 r) D# s- I% { I# { ret+ m7 q. }. v# m, R; y3 {
$ \/ I0 m$ h" F4 r* J7 g# H
code ends
1 W" ~7 s% \6 i Yend start
0 m/ c4 A) v6 @! r; \# E. G4 q1 @" W$ D: y8 n) G1 |7 d3 f
# `# e" i' c. X$ ~+ W
|
|