|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧9 j) n' a" D/ K4 j
enter macro0 ~, l$ d' I3 _' D+ s
push dx
2 |+ n% H6 _5 Q2 l7 o1 M) z) D% W push ax- w/ E# E( y* M1 f( p2 U! ]
mov dl,0ah
! ^8 }+ J+ I0 O2 @/ C0 p mov ah,2
8 s1 V* [4 z% @9 d5 t int 21h
z+ c0 a% F% w" \& u" k8 J- p' j0 m mov dl,0dh
0 [( x. c: g1 }/ D mov ah,2
# [3 d$ X7 O& m9 C9 U% W int 21h5 @+ u3 s/ \7 {( O
pop ax2 n6 m8 A! S# g7 C% Q
pop dx
2 U; Z' @; L$ }/ O5 h# @endm
- W4 D' o6 _( m9 o
' _: j7 h, l5 x. H+ Zassume cs:code,ds:data* _; t+ d% J, b
data segment) j6 `0 C1 X; d' ~( @$ z1 k0 h
table db 300 dup(0)0 j5 ]# y- v( v- W7 B8 u$ t) \, k
pro1 db 13,10,'_________________________________________________',13,108 z0 `# _8 G* }. x2 u# }- t
db 'no more than 20 characters English name.',13,10
: O! ^/ @+ i$ y1 @ db 'For example:',0ah,0dh,'liang xin hui',13,10+ g: t; W$ q4 v: ^. I& [5 x
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10& Z0 N+ f. A$ O+ C
db '.................................................',13,10
3 A9 t8 d1 W4 x% B; b1 h! [ db 'Please input:',13,10,'$'
, Q: B# p. X& m# Q. y9 p/ ]# lpro2 db '.................................................',13,10
& R: ~; _, i- B+ S+ b' v6 ` db 'The results are as follows:','$'- g; G6 \6 _, V8 d& b
5 a" O; N: ^ Vcont db '________________________________________________',13,109 M1 C& q( T/ S; O
db 'Can You Continue(Y/N):','$'
' ~ x0 C) \7 K" {
( S4 }6 }/ Q6 X3 S5 w9 ]cp dd 50 dup(0)# Y& T( P8 [7 `/ F' l% R! X
data ends
$ D. r4 R1 ]8 H( m9 G3 a" p- o/ {0 g
code segment& A3 a2 | m; P+ ^
start : mov ax,data/ g n- p6 W7 I4 V) j0 v; N* G& N
mov ds,ax* V4 T' d. \! {9 B, A; \
call prop1
! L) c' e% ?# z/ \ mov bx,offset table
6 `! I9 j" O; F- a7 K) L, {5 Z mov si,0. i' Y7 I# U6 p
mov di,05 a+ h- l2 c% B; |0 S, Q
: A$ m- N r ]* U: Q) a
7 u5 x0 p+ m- d! W7 d6 ? u call enterchar7 f6 A+ M; C# o- z6 H" G
perp: 3 U5 a9 c( ]' Q5 c% H7 i7 [6 x
dec si `0 B9 f, e4 c9 {
mov dx,si. _5 N2 ]. g7 K: f8 G `4 d
inc si
& c7 q+ S: \9 h* [& ^9 n' d mov cx,si
8 I2 l7 }3 l6 L" I. {8 R1 K' B- Z4 f call arrange2 N& |" Z4 Z) T7 _
call prop2
" Z+ v3 r* o: s6 N1 N call putchar4 j) q" J& J$ N$ }" N
liang:
" L2 O4 c* |* P/ i' w call Continue8 K9 X. }4 n7 O+ m4 e
call judge' X5 t; T& f' O) D
mov ax,4c00h
1 d9 Z' F7 c3 ` int 21h: F- ~3 D: Y. L" \7 B+ y; o+ i
# E/ B8 }" K( V! a' w# V7 i
B7 \0 u. i$ F9 [: jContinue: enter$ Y* j+ w6 }2 ]& w( m) u3 V
mov dx,offset cont
# w# o# F; O0 G! G3 S7 L mov ah,9h2 r6 G4 c; W1 L. r7 q0 A
int 21h: m' z/ @. y( f6 D, }8 L/ s
ret . u$ [. r: m) q7 x+ p
. S, L0 q. L( }% t& Cjudge: mov ah,1
% g% x# o$ O* Q9 N4 N. P4 l/ h int 21h
8 i9 y! Z5 O1 V+ C or al,100000b
' {0 J0 d N& j M1 ?7 Q0 R cmp al,79h* n0 A+ X4 q; `8 p6 a9 _
je clear
# ~5 b7 x2 W' @& j1 i$ Q1 b cmp al,6eh( N& D4 l: o( {& u L% i
je endj% Z f) k/ L8 i! J- W+ J
jmp liang) w: B6 R) I6 U
endj: ret
' }2 U Z$ t x7 D 1 M4 {# q: ` B0 S* U' T& ]
clear: mov bx,offset table4 g5 p3 H/ `( @' a" o. q% ]
mov cx,300& l" d2 [3 f$ u3 t; H+ h( l
zero: mov byte ptr [bx],0
% i+ `2 W- C# x( R$ O' Y inc bx! @6 H8 C* {- W8 @ ]1 u( P7 {& K5 @
loop zero' ?7 R* w* X, K8 z% t
jmp start
- c: E, V7 e7 g: k+ E$ N
9 V/ p: T; E/ J, E; g# x
9 T! F- i r" y aenterchar: mov ah,1
# v& N4 }* o3 o) E int 21h
* E- k0 ~" p! d. X0 }5 E1 ~7 C% E: f mov byte ptr [bx],al $ Z3 r% d* M5 ?" h
cmp al,13# p& A* B6 t$ O/ {3 |
je endchar 4 f# G' R7 D1 q- m9 m( b2 V
mov di,1
. O* O+ Z8 {4 d# N6 i5 m inc bx# k4 ~# V# b$ W5 l% W
jmp enterchar
4 |$ l9 F6 z; }7 v7 s( G8 z' m. f) j, d+ [
endchar: enter % ^4 f- h4 V( B& h
mov byte ptr [bx],' ' L! q6 o: F( S& Z1 W
cmp di,07 O. O9 Q! y3 c' ^8 N4 Z' M T
je perp
: S: g) [& M: _/ h X9 S, g inc si
$ J1 s# T/ t8 a$ P! w mov ax,si
7 b+ \0 G3 ^* E6 w' Q mov dx,210 z+ |2 N D+ P
mul dx
3 H6 k+ t7 W5 {% n8 ]6 M Q$ U* a mov di,0
0 |9 R/ L5 k6 x$ q mov bx,ax
% k8 u h; m! u& {4 P jmp enterchar; U. w7 A0 q0 d+ C7 S5 I# p" l
* y* e2 D6 r0 C# j$ ~% _. Sarrange: push si
/ [$ g$ t+ o/ Q. w& Q L push cx 9 e8 g% g: @8 L. L
mov cx,dx " Q9 D; V/ j1 O. _
mov si,0; `. ^6 s9 s/ u' u% A/ {) v
mov di,21- E, F/ a7 @ A( S
! d4 g! [: a; X8 Ts1: push cx
* o6 M* ~4 q) ]4 a2 M mov bx,0
5 [2 ]' O% c! U; K mov cx,20& L% V3 L/ Q/ m: o0 n
ss1: mov al,table[si+bx]8 \" x" e( P- I4 J+ u
cmp al, table[di+bx]
+ R. E6 q& \0 o% D* h! @; N ja jiao# Q% t: y- E {" D/ ]1 U5 x8 \
jb s27 b( a1 J2 u% l s O/ K
inc bx
2 \) [( m2 p0 q0 }; x1 M3 z loop ss17 A1 Y3 j" {; z9 p- s
jmp s2
$ ^; s: V* }( e' W9 ^" o' @6 M
jiao: mov bx,0
) m1 s4 d* A3 u- ^4 r. m8 H mov cx,209 @/ E: {; G+ |7 {4 Q" ~2 N
jiao1: mov al,table[si+bx]
+ q+ ^9 u/ N1 m1 H: f& D xchg al,table[di+bx]
" J8 I- Y2 k$ z% Z( V mov table[si+bx],al
! O2 T I) G8 B x5 p. L inc bx+ Y( J* ]* ?" l# C
loop jiao1
) [ I! ?1 \4 A6 y" t0 a$ g! K/ G: {; s
s2: add si,21
3 Z/ ^! T- C: D1 D add di,21
2 W$ J$ e. @" R; n, M# f pop cx
9 f2 N2 z) A0 K$ Q: o% d loop s1
$ @' T& R2 W0 Q0 p! s8 e \9 O9 j" g! Z- d- Z
pop cx
& D- M; h0 W! i1 T, V pop si, e2 R1 g9 }2 B8 W7 |' E! ~; {
loop arrange0 w% o0 p, A# H8 C; X" u! O
ret
! h$ x, R3 p! E, }, r/ _- n1 S3 D; k$ {
putchar: mov bx,0+ Q. p& ]; z8 u1 T1 T8 d2 X) _
mov di,1
; ?8 j3 Y* i. j: s
4 i1 m2 L0 a( x
( J5 h/ Z+ \8 B* x- e mov cx,si
% ~/ e* d! o4 Z+ s6 ~4 j4 H: }' e* p, uput1: push cx% f% g U. y7 ]* o$ ]* w
push bx
# C* P5 t# D) a) u& P
% Y' H# O+ R6 E' O enter
x( S U5 r/ k8 n 1 s9 g) ]4 |- H( u" q* B- O
mov bl,107 B1 y6 [* z# I9 k0 \/ g) R( R
mov ax,di
, l" g3 x/ L8 f# c1 R" {/ \ div bl9 q2 R! D! x: R* }# Z
mov bh,ah
& V; q0 N' z: K [ add bh,30h3 \; U$ q3 }3 C7 S
add al,30h
. X+ r G% t: z5 ~( Y/ J6 Y$ w - _: m% j0 ~ C9 M. V
mov dl,al
- z. z- ?& n' x2 S6 w5 S) x; P$ | mov ah,2; T, I0 L$ b' c7 X9 R5 B8 n) E
int 21h
. J0 m7 k+ _# k* L mov dl,bh3 E5 e& \0 t4 I4 R3 y5 m ?
mov ah,2
" s6 {! F1 M6 m int 21h( [4 `4 b+ o+ Y! w% o
mov dl,3ah7 w- G) f4 j1 ]
mov ah,2# h. k3 Q) q. T2 H$ {0 c. T6 [
int 21h
% O& c! m! C4 s; n; @1 |+ w pop bx ( a) R" \6 {/ ^, [( h- ^
mov cx,20+ G9 g U* d- e- W& ]% _+ k( F9 E
push bx' C( A1 m8 W" A& r
put2:
9 o1 ?- t& Y+ q: n4 A mov dl,table[bx]: X/ B7 O3 `" D& p. @
mov ah,2h
& y, a, T+ ^$ a) t int 21h
, [# f1 ~( X0 }: {4 \& l4 e0 g
* y* L3 B5 z2 Z- r inc bx
1 \% A( _* j/ h loop put2; |7 r, O* j$ N/ z O' D% W, H. Y
inc di
. H/ C* d: v6 X pop bx
' d2 o, u4 ]3 V3 }0 \3 Z add bx,21+ H( ?; z* E: Z2 x9 d
pop cx+ D8 h5 z L+ X4 z; u8 }" }5 L
7 ~& y8 L5 r: G$ Z0 p- z loop put1
( l% p4 l7 C' J ret
' U% O7 D N$ i3 N) Y5 `& z5 _' ]7 f S. R
prop1: ( n& _- T( w$ M1 A
mov dx,offset pro1
& x$ y K, l* J, S8 q. }; A% { mov ah,9h; ~. D/ g2 ?' E6 ]8 ?
int 21h2 v8 }! X, x2 o/ g: f
enter + U& o' M5 n$ g9 Y5 I+ H. e2 B
ret& {. {+ i* c$ ]# X% Z
- I6 ` d3 O4 ~2 O5 j) Y. o$ tprop2: enter
$ i9 @7 Q3 B& a* | y* a mov dx,offset pro2
' g. q4 p: @* k, h3 b1 J mov ah,9h
) i. r/ [% a, p/ c1 U8 M2 S% k$ c int 21h# _9 z* n) @' ^2 K. M' ?+ M6 }
ret
* ~ S/ c1 U; q' u( a8 T! @
' t# R+ b# v. z Pcode ends7 y. \4 ]2 ]# D1 o; Z
end start
3 P% F; f6 e7 B! i4 J, e9 @; I w! u! U" U% A: |% G- m2 i. [
, M* P8 ?5 W( a/ A6 X2 H |
|