|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
2 a0 t( M+ t1 {$ `6 g. M7 P" ]enter macro
' G/ C* I) _1 v; Q% W9 W7 u push dx6 A a; _4 ?0 y; \- X
push ax
) Y# o: H" n! o6 { mov dl,0ah/ x5 O2 I3 Z- f; {2 Y1 H, y
mov ah,24 |4 {7 P: ]- r, ^
int 21h, L3 \/ ?7 u+ Q4 ?
mov dl,0dh; e. V( q; d/ r5 l; J& H! `0 H
mov ah,2# i" l2 e: u, J( S7 b8 H
int 21h
: P Q" l. O4 n pop ax
2 A6 k! q7 x7 g- a( @ \ pop dx 6 h P# c; E- A* D/ T
endm# a% t v2 @+ m0 O$ h
4 U: m& `; p$ T0 d* o; Z
assume cs:code,ds:data
1 N( b' d& f+ e8 O; I! idata segment% `; Y) j: {/ `2 J
table db 300 dup(0)
. s% \ X H9 d8 q4 Y% _7 epro1 db 13,10,'_________________________________________________',13,100 w8 V. ~7 q2 }9 q& P
db 'no more than 20 characters English name.',13,10
$ G9 Y" `7 W; k5 |: ` db 'For example:',0ah,0dh,'liang xin hui',13,10
0 m( R) ^* w5 S6 j4 J1 m/ x9 { db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
2 d4 b; ` b/ y) J! a, Y$ V1 B& u db '.................................................',13,10
9 f) m/ s& W! R" {) d# b0 ~. e db 'Please input:',13,10,'$'; m% W0 \6 r- E }
pro2 db '.................................................',13,10
$ a, q `. A+ `: ^ db 'The results are as follows:','$'" v2 h' M! g( b h# q2 T+ Y
" r: _+ y4 }7 p6 j: S0 g- |: Qcont db '________________________________________________',13,109 F& }2 v* a: J; ?. U$ E% F
db 'Can You Continue(Y/N):','$'
7 O' e1 ^4 q9 |. `3 k; u& K. G( ~& q$ `8 z6 x
cp dd 50 dup(0) z% W+ H. W( R7 h; J+ @0 m: [
data ends
; C9 J. _. \! E9 @; }: X- U1 S/ J
. I W: R9 Z, qcode segment
! j% S) ~& C' ?+ K2 I$ Dstart : mov ax,data1 e0 c3 o+ P$ F" [
mov ds,ax
F0 z8 \3 ^( A9 C7 h call prop1
" ~9 t/ {2 C; h7 j. ` mov bx,offset table
8 a: z) B$ k, q, R' }+ V mov si,0
2 e+ v0 o5 {8 E- | mov di,0
# C5 j( u% _3 K) _ 5 D6 n* T7 B6 k
3 E6 Z# O9 c! o. j
call enterchar0 @+ J3 E! X' d/ x0 h) r
perp: x6 A$ I. y1 O- [, s
dec si% A! W; b: ?) ]1 \1 P, a: C
mov dx,si
/ g. o( m! a, f8 I inc si
5 K5 L5 _* n. G4 u# i- y1 e- A! n mov cx,si) `5 L7 E7 `, }/ M
call arrange" ^- j0 G3 M& J6 e Z. B
call prop2
% n$ J$ N' F7 O, c. o+ F call putchar
7 y7 Y/ r) ^* z$ q& \( w% Lliang:& v! J# h9 I% H: i5 p
call Continue
?5 ~* U, K) A6 X) I1 O1 v call judge
+ A( o: P3 w4 d' F mov ax,4c00h6 m* s B ^* z& p: X
int 21h+ Y4 j7 ~ e- K# R! Z
7 F$ {) ]( a p, H% z
, t& j& G, F% Y" w
Continue: enter! k' h; d. N8 j: a
mov dx,offset cont# J7 ]/ j- J, B0 h) `* Q6 c* o
mov ah,9h X0 r2 b i" D& n. q* a
int 21h( q4 u* g- W2 U. z$ r* h, d
ret P! Q/ H/ ?2 t/ F: g7 z h
, R$ ~+ Q" S9 S' q; ^, \1 bjudge: mov ah,1
- ]$ H% Y- _* e3 O7 y int 21h
( P2 D- Z$ I5 T% D/ W or al,100000b
+ i$ g# k& A% ]5 r cmp al,79h
# A. |9 H; W$ {0 O je clear
7 O' G0 {2 N8 z5 O+ {" P9 @1 I cmp al,6eh
1 z# i0 n& |$ Q( y) o/ K! i je endj3 J' r4 f& H4 Y9 R/ r
jmp liang! d+ z. z& Y2 l3 c
endj: ret ' P* ?4 x" j. D4 `
5 v: o4 p. t F
clear: mov bx,offset table+ f3 j6 d5 e! D
mov cx,300
' x3 {; e, y1 Jzero: mov byte ptr [bx],0/ L# ^) K; t* d# ^! z" q! ^
inc bx
! S& J! g/ H' A loop zero
8 W) O6 P$ i+ F jmp start$ H- j" k7 B- ?- l6 ?
x- B# I9 V5 l, S. L$ [
& c2 W5 E# Z: o8 henterchar: mov ah,1* Y6 F3 V8 ~: L
int 21h. p' R5 ~7 |; o4 R6 t; f. @
mov byte ptr [bx],al
1 Q/ C7 a+ y: w A: }- E5 ` cmp al,13& s s9 _/ x; s% b
je endchar
|: q$ d( F& R \ mov di,1+ E( p% v" g% [0 \6 d, G7 Z
inc bx- e7 t2 N" v' n0 \$ I% W
jmp enterchar
1 O2 Q" i: N. C& m% d# _, m" s% C0 x
endchar: enter
5 p" w1 q) _3 j, c$ r; T. e mov byte ptr [bx],' '
. f( t. n. _* o' U( z0 d. x4 n; P cmp di,0
; P' O" f" _ T Y) ]8 T je perp; J# |! B W# n X
inc si
. c. g: c6 g6 q" |& r6 i( j4 B mov ax,si. h- D! Z$ m0 q! l4 @1 S
mov dx,21/ s: l( |& L* ]4 q: d) ]& a
mul dx' V% B6 t q. H* e0 H& l% G1 P
mov di,0
' V% X3 ?, N' b3 |6 Y mov bx,ax " i. T6 _ W& d9 W) e# ^: H
jmp enterchar' p- P$ c+ C0 I, n: Q' B& X3 z" q
; { @1 y; B& H! \! W% W: Q# varrange: push si! e" s' r4 b2 z+ }6 H& F h* \
push cx
* a( W: y4 _" X8 o! E: i mov cx,dx
" ~3 o( n+ R! v1 Q1 F- i' Y mov si,09 B% b z9 Z4 D# f! T& n8 j7 B
mov di,217 W8 Z$ m. g/ J: l* w
% {- S" s; w. q; M. @6 L# Ls1: push cx
8 A) H! x; N7 G$ A( T mov bx,0
: V- Q& Z! m6 i6 N- F. k mov cx,20$ ^4 G* {7 o9 b o( Y; q
ss1: mov al,table[si+bx]
# o) e! S& m6 J$ `+ y cmp al, table[di+bx]
& b* b# g$ _- c- @' N, C* r ja jiao
- |1 ?/ M& O! r3 |5 I, n6 q jb s2
`3 o" l, m, V2 P% n$ w inc bx2 B5 T' \2 a7 J: R2 M
loop ss1
+ K# [- b/ c- w- ?1 y( t: G jmp s2* T7 ?8 } s* @" \2 a% R3 p
+ \$ ^0 U3 K' {! w
jiao: mov bx,0
8 m! g! a- N2 R. f9 g3 U, E( ~' q mov cx,203 x9 k% ~ b% n- k# [) U, I, X
jiao1: mov al,table[si+bx]
% A& q7 l' `; I; e xchg al,table[di+bx]
8 S) q6 k Y5 n3 W mov table[si+bx],al }+ o3 ]0 n7 v5 v% K) o
inc bx
0 r7 Q$ ^8 K. X% _4 v4 V% { loop jiao1
, H5 [, J: K7 q' Q
% z# q: B3 N+ u& n- Os2: add si,21: p7 ?5 E4 s% ^0 c5 C8 {6 ^
add di,217 g, b! [! @1 u! q6 |' Q/ R( ?
pop cx
, W9 _) _& p8 `" A loop s1
, V1 y6 q; g }6 S' p- N% B( o1 G* z w' p0 I( a. T; u
pop cx5 R& e9 a2 s2 ~1 X
pop si+ f/ ]$ e( Q' ]4 O* S) }" [9 S
loop arrange# ~8 R. z& p! q8 \: J+ ^' }
ret
* |" K. f# ^9 B; K
0 O. Y* `8 t% T+ z A2 K* Bputchar: mov bx,0- G* d8 s2 ~0 Z9 d& {4 X- d
mov di,1
' N! D1 N; w$ Z0 U) x
# h7 c6 O6 A+ k, W/ C: }2 m' ~
1 d/ j4 H4 w6 B! c mov cx,si
1 c3 |3 g. ?' y8 Z: hput1: push cx4 _# o6 Z- x5 E) C$ H f0 c
push bx" U+ ~; m1 b$ A8 W: o
- }, D# b* a+ Y* |+ [9 a9 Y. k; z
enter' K5 U1 w1 Z" J- ]
: Q x9 u/ }8 K9 M mov bl,10) Q! \! V$ }# ~0 v
mov ax,di
* ?* [( Q& b3 }3 s div bl, h8 O1 p( g4 N! ?( g$ g
mov bh,ah% W9 V0 T$ C9 G K4 g' @$ U& f0 }
add bh,30h8 e6 M- f8 b2 s4 c' z6 g0 \
add al,30h
r8 p) d: `5 F
. g$ P, P; B# x g1 U mov dl,al
U1 I* z7 r% |: b mov ah,2
( O9 W3 c8 i) ^3 v, R! R int 21h
; U1 Y" N% w" @: E mov dl,bh
% N' @" }. `; c8 K) a, i mov ah,2
C; \* p7 r/ A8 H$ s int 21h( m h' F0 b! \, \; Q
mov dl,3ah
+ ~4 x- A0 `' g! C mov ah,2
% l3 e( ^" E8 X) @& g* n int 21h
4 v4 c- X6 T! P* ^: b pop bx
3 R" _% Z, ?$ X- Y( ` mov cx,20
! E9 R" \! Q& S- n! `8 Y, ~& ~ push bx
- {, F2 c; P! }. h& U1 vput2:
$ m4 H, A0 _( }/ x mov dl,table[bx]# `6 K6 `3 e& o- Y5 S* T
mov ah,2h0 J2 {2 F3 ?: ~1 ^4 i" |: I6 b
int 21h. A6 a; D. h: m" i4 a/ H
: n# i" V2 w. j/ U- N% R5 X8 H inc bx6 S0 v; K3 @7 u" F6 V" q
loop put2
) Q) W, p) X& }* H& ?' b2 ~* x inc di * L& x8 n, R7 e- l9 @4 ]5 w H
pop bx6 j6 L* u' ~# n6 k
add bx,21" T0 r( K+ `/ ~; v& G! ^
pop cx
* l5 L7 N- X% o# D
. B. g, _1 ?1 A" g loop put1
l$ l3 T4 ~! ~9 M$ m. G* W( K ret: k3 V- }# F; ?' v1 A U1 w! P
/ t& c% G+ T* I/ Cprop1: " Y* e6 F q( G/ N
mov dx,offset pro18 V& k' k1 p) x) I
mov ah,9h. a0 _6 ?- c8 {4 P5 d/ [! q
int 21h6 u# a q2 A$ t. l0 D% ^, L
enter , K {$ T& T! r: K3 b- H a
ret) `& _* C$ o; d+ o( ?0 N* W
) ] P# i9 M1 _! X+ `
prop2: enter
$ f- j6 y, p; Y mov dx,offset pro2- b, D7 F: u( L+ o+ h2 v5 A: T
mov ah,9h
) E$ X& a! H+ s int 21h
) ^ ? m: @9 ^! g) c2 x" s1 v ret
+ _% Q. j! e m% V! y
8 E7 e, S4 Q6 m) S; Q! k+ n# icode ends8 x! K( v, w, [; C. U: _ M
end start
$ J4 E/ _3 C. h# G C. U- K! ^
4 e$ d/ ] {) } B; C2 F7 ]/ c6 {8 N- |$ l1 I T- N6 U9 p* G
|
|