|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
. J% |: i8 v; C+ l6 i6 e) `" benter macro
& s% J3 x& y$ W% ] push dx
) P' g$ W" Z5 a1 R+ o push ax, e* G6 y8 i' q8 V' |( t
mov dl,0ah
7 @$ Y+ r# p( @0 m1 x mov ah,2/ r. U' z7 J& `% l: v
int 21h4 C5 \3 U) {8 d
mov dl,0dh3 I: m3 M* }( j3 E J. g0 B9 z
mov ah,2* Q/ g$ h0 \8 k" i2 {, I7 N2 Z* a p
int 21h
" A/ [, @1 T% @; c$ |1 ?; w pop ax4 k7 h1 r: j9 i8 ~) F
pop dx . F* E# c d% W" E
endm: q3 @, M3 j, y% \ X
?' A% ^+ |" N7 D
assume cs:code,ds:data" Q9 \. r! a: {
data segment& ~/ }$ ~# m4 X- @2 D
table db 300 dup(0)% Z6 x4 Q6 M/ B7 o; L3 f, T
pro1 db 13,10,'_________________________________________________',13,10
/ `; ^7 M6 x4 \2 w' Q db 'no more than 20 characters English name.',13,101 t; N3 q( k8 e
db 'For example:',0ah,0dh,'liang xin hui',13,10. W' ^3 ?% v6 F
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10, c- x3 U: ~5 _8 ^
db '.................................................',13,10
- W7 z* b# D! b8 p! l db 'Please input:',13,10,'$'
9 g5 |/ {) U4 i, c0 mpro2 db '.................................................',13,10
7 U) T/ a+ R2 W' Z db 'The results are as follows:','$', }# C3 j. x, z; m
2 j* Y% Q$ r6 F. jcont db '________________________________________________',13,10+ q" U" @% J" b) m u
db 'Can You Continue(Y/N):','$'8 G, Q9 x$ I" S" _8 c, b8 ?9 l/ ]
7 d3 o1 g* A3 d5 D! g6 V6 `; ~
cp dd 50 dup(0)( F& J) r$ p4 M
data ends
; c& f) e( L7 B5 }" y) W% P" i) G: I: j+ Y4 g3 i
code segment2 u- m! D7 b) R6 S6 v. E3 {- r
start : mov ax,data. f$ n6 ~! d; l3 ]4 @& S" y: ]
mov ds,ax
e+ H6 y1 K6 ] call prop19 h* v) ^: ]' }- M* j3 M5 v: N% M
mov bx,offset table
/ \. O5 ?- |- y1 C% c9 k$ J$ L mov si,0
4 U+ i' y: b, f3 A3 `$ q, s2 F mov di,05 M: x" ?0 p$ @5 U7 M% J# h$ f8 W
- t! z. f0 i$ |/ C: q$ T. c: f1 x 8 L* t4 I: O/ y- I
call enterchar
8 J9 e- g* y6 `, R" W! Mperp:
2 f/ z. p% n2 `' A8 K% ~7 R3 V4 s t dec si
X2 ]! d8 X; n mov dx,si
, A, j4 _1 ?6 _" n inc si ( [ L5 e0 P) O8 u- f- I
mov cx,si
4 @- Q* p. X- |6 z( T h4 ~; f1 Z' A' M call arrange
8 \( z: _. R- R' }* q7 c call prop2
$ D& C n0 p; N8 D call putchar$ ?" Z" Q* ?5 F7 i
liang:
" j3 i% v9 r& f$ O+ ^+ N call Continue
, Q( n7 O9 z# r8 O call judge& o/ _# c/ {! J! Z3 Q: S; s
mov ax,4c00h! @1 L9 ~( u9 ^
int 21h( p/ y% b E9 I X
2 t2 R4 I1 w2 [4 ]' }% M" X
3 T4 N) H4 g0 uContinue: enter( R, s# I' d4 q3 T4 `+ O& e
mov dx,offset cont
! _! p+ k$ I6 I1 i2 _9 l1 A; Y mov ah,9h
% L; X( a4 B. n% q+ Z. | int 21h; `( [. f, ]5 D
ret
' [8 u6 Q' [! M, a3 |7 {
, J2 P2 @. b0 ]* {2 Q: z* Ajudge: mov ah,1
, h. o( x- A/ [' q0 D3 s; M: y8 W+ ` int 21h5 k4 W$ e8 n( X' _: ^2 Q/ d# T# t
or al,100000b
0 c! z2 T- M3 V- n1 o9 h3 l cmp al,79h" O4 F0 K; D. J
je clear4 t0 C- g: {1 R# h
cmp al,6eh
& P+ I. a. J1 o$ \9 a6 ^. A2 w# Z je endj: O7 ]" q: M, n% @. w0 H. ^& b
jmp liang; T. e$ x/ v4 q6 [( T
endj: ret $ e& v4 B* \9 \/ R% R! Y H2 _
3 s* n* }: d A) t V9 \8 d/ R
clear: mov bx,offset table
+ o1 c( y9 |& h" ]7 r% F: T mov cx,300
( b: F6 |3 N! N5 M* I' dzero: mov byte ptr [bx],0
% n% s! |7 C0 x8 h2 C" A inc bx- n0 i, Z7 g3 L3 C0 C9 t7 |3 q8 n
loop zero+ P3 ]" ?+ E2 |2 d$ n. [
jmp start- L5 E: M/ b( ]9 x* W9 l3 u
. f0 h, Z: H& F) T* r
, C) p `# ~2 S& u
enterchar: mov ah,1
" E1 x2 g; R7 y int 21h* f7 D z2 p! Q8 I( q% J
mov byte ptr [bx],al
' P/ J0 G% W) w cmp al,13* E* W% l9 D% W6 x8 |+ I
je endchar
* M' m1 d! P5 {! `# n mov di,14 }8 s& l; B' M' n/ u E
inc bx
! E n; @* y. w- ]! u/ D jmp enterchar
& _6 [. { b% x# W0 o9 v1 R) L) L) S6 t7 _
endchar: enter $ @' u- \5 H+ M ]/ b
mov byte ptr [bx],' '; Z2 C' M- @& v6 Q3 r8 I
cmp di,0, ~2 r+ \5 t! s! y) o0 y
je perp
) ?. X/ B0 V) B. @, ~, k: Q8 M inc si
9 R" b+ i6 }# P4 j! b; e mov ax,si
/ E/ v! m! S6 u C3 [4 V* t" x mov dx,21
8 ~3 e1 l; I2 p0 J7 S. q' ]$ g: B9 }/ A mul dx* I7 L8 L9 {1 A, z/ o( m. U6 u4 ]
mov di,0) e7 c' B2 `' y
mov bx,ax ; P! i) Z( Z) ~+ [; \
jmp enterchar* I j* w$ t# V" ^6 y, j! ]
/ [+ o' K7 |5 _' U5 z+ W" |. g8 Iarrange: push si
2 C* W, A( D3 D7 E" F( K7 A8 O push cx
$ z4 m" \; `" \$ J7 O6 E/ d0 ]" B mov cx,dx 8 N$ \# m9 L; S% o4 o4 M
mov si,0
+ T5 {; p8 e$ H8 \# m mov di,21! ]! ^$ g% ~5 w8 u& @+ n. g" J+ `
$ x. P H) S$ j# i, N8 {
s1: push cx
# W& t3 C+ b7 Q mov bx,0
6 m: f9 J$ {+ M mov cx,201 w/ H2 x2 u2 u) f- U
ss1: mov al,table[si+bx]
" [8 e% t2 C* b3 F cmp al, table[di+bx]
9 M( a" e3 z' W5 H+ }- Y0 c: ~( p* L ja jiao9 }# L9 \3 [% X
jb s2. z$ V: g0 R( v, o7 Z& S
inc bx2 N* E* ?2 b7 l9 I) `& L$ o
loop ss1
; U5 V9 w% i0 C I# p+ { jmp s25 _3 ]2 _3 u( W3 g8 ^" N
+ e/ [0 K# a1 d) \5 @: M+ B
jiao: mov bx,0
9 g0 o7 a' a& K# _! H mov cx,20; d* w0 P2 ?( g3 \- @( R) r
jiao1: mov al,table[si+bx]
! {8 q$ L- G# ^) C1 Q3 ` xchg al,table[di+bx]0 x2 J! g. \, @
mov table[si+bx],al
% n% ?* T& L& }, ~9 M4 t inc bx
% f7 |# V6 R$ o4 ~1 ]3 ` loop jiao1
7 k- I4 N& P+ v" t! e( i* C) B' p; W8 W2 v. S( X
s2: add si,21
* G( Y W0 M4 ~ add di,210 D, A1 ~' D. o C C/ t
pop cx1 ^) [, w; \$ z4 N) C* ?& X. [5 F
loop s1
8 j7 _6 n2 W! u! x8 O3 a: n% f, Y( G7 Y# l
pop cx
* @: p: r* D6 j7 q1 @, q3 }; T pop si
) Q! x; Y5 Q+ }& h) C: b4 c loop arrange
3 H4 g/ {. V8 e* p ret
7 L- s0 }- i7 ~0 F( |. _% }7 r' @) o- F- p) _
putchar: mov bx,0
( ~8 H: {( [9 q9 J1 ]: k mov di,1, t$ U# T" J5 f( Z9 m8 G& ^2 I! E
- r8 N i6 z0 Z5 F; X
4 U5 x: e, H, D {+ b5 n2 W% S* ^ mov cx,si+ N7 `* W9 N% C& T7 T! }( h8 Q
put1: push cx! z. _6 X" K. j; j8 N4 {; o
push bx
* M( t0 W5 K9 V 1 d5 ?2 ]) p, C+ A, G
enter
: X) V3 @8 g$ ^! x* H" E ' O q# W! Z: x6 t' V* p5 _6 o- Y
mov bl,10
4 }. Q5 i5 P4 ]( n7 U5 s% X* Q e mov ax,di
' @3 A- k f5 v5 i& l8 b div bl
9 M' g' e/ Z# R# A6 m& r mov bh,ah1 W) {4 O' W; Z4 J9 X
add bh,30h
0 Z% m& m% O* h add al,30h
* P/ G6 z+ s/ Q) K+ K; B: Y, N5 o" { 3 U0 d" Z7 V) e& e$ e$ i$ z
mov dl,al9 s D0 G4 ]/ [0 I* n6 u
mov ah,2
- g% C) C( T! E# u) o9 Y4 L int 21h2 X7 L4 Y) H$ j x- M7 M
mov dl,bh
& ` B0 X' _3 {: } mov ah,2- A+ T, Q4 S; [3 T1 ~. f% p
int 21h) I/ M; Q( V6 G4 R
mov dl,3ah- P5 ~3 }0 I0 \4 f: L5 s
mov ah,2+ [4 r$ j1 u! ~, u% Z
int 21h* O4 A. V; ~& @+ I8 Z2 u* K5 Z+ R$ Q/ R2 S
pop bx ) _# {* v6 a( o5 P% U U
mov cx,20
! I: O5 ~% I7 b1 K' p1 V push bx
$ r6 K [$ { s) f9 v2 {) _; t4 wput2:
6 N% F- ~* j% U- w& ? mov dl,table[bx]- N3 q* P- A) d0 S% j- V
mov ah,2h; i: M( L+ u' }0 I$ v4 g
int 21h
0 {4 ~% f4 L" Q % y+ N$ z( i8 E# {& K2 ^
inc bx
+ K5 w0 Y% C) X; e/ k4 t$ W loop put2) b# i% x3 J" y
inc di : u! V* e$ g6 o, }" |
pop bx
- a8 n/ }: b) A% V add bx,21
# N, \" h" f# ~4 G pop cx
) ? S* o9 ^# w- p% L* _ B- N! B6 l$ m; R6 [: ]0 @& S! m- l
loop put1
& p4 C7 e' K% n! z8 G ret
) `1 i, d, @7 I1 ? V* B) n/ Q# E0 e& ^, ?
prop1: $ E0 j# L$ _3 ^8 w: L9 x1 k
mov dx,offset pro1
) X3 F1 M, N; ]6 A mov ah,9h
8 R6 l& x, J* A( `* O3 q int 21h
" ]6 g) |6 N& Q* J7 [ y' o" P# e, w enter % T. \$ i& Q# O; F8 a+ S9 [; E
ret
1 h- @7 s' u' A* x" S. C* p+ N" a, g' [* c/ E4 t2 U2 m* l" P: V6 T j
prop2: enter4 x* N1 o$ _3 G! d
mov dx,offset pro21 i0 o/ o1 _ N' Z9 N0 P( o3 ]
mov ah,9h: `0 ?3 V" d# Z m. `0 I. N2 b2 w
int 21h" v4 R1 c1 u$ b! k" \
ret
: ]8 W9 S5 _- Y7 h
2 |8 w# o3 U8 O$ g; ~code ends5 e1 p- @* x: X0 q( L" E+ z3 q
end start$ H) p: S- b& x, l
3 m; e7 Y: ~5 k+ {
) W, D' a, ^/ W) H
|
|