|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
8 M& ~$ t4 ]' t! p# h' benter macro
) N7 s+ _7 X) N9 u" V; ~) Q' v push dx$ @ G7 L8 k2 x% \/ E
push ax
+ ], }! {7 {6 U+ o# c6 Q0 j mov dl,0ah
! I, S+ E( U- d6 F mov ah,2
, V/ r0 p* |' N2 G6 D5 K int 21h
. u! W9 E8 I" [, S+ ?: V mov dl,0dh
1 ~" Q l. p( P* U5 D$ d mov ah,2
" _2 E) c% X) C* ` c+ d. O) X int 21h% |- y# D, {, Q% G: z* v; N
pop ax8 d. v$ W6 z8 k0 S8 O
pop dx
" D8 |* O0 B# h) y# B6 eendm" e4 Z* W/ w: e& A$ @
2 q" w* D% X9 \& W' o4 Rassume cs:code,ds:data8 {7 q2 H) q, }/ ^7 e, J
data segment
- @' }9 O3 c" L: K$ a! Htable db 300 dup(0)/ s% S1 y" D- I1 V0 N5 k: y
pro1 db 13,10,'_________________________________________________',13,10
' ~& c( S. L) R( T! T& ? db 'no more than 20 characters English name.',13,10
' Q. Q* `4 K1 Z* V# ~ db 'For example:',0ah,0dh,'liang xin hui',13,10
1 a( m; g: p& Q8 a4 M% r' Y; B db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
: \3 z. k" }0 ~" N3 g2 i2 _ db '.................................................',13,10' O( U# ]1 B( F% k6 y6 d( G3 y- l
db 'Please input:',13,10,'$'8 O. Q! H( v! s
pro2 db '.................................................',13,10
! [1 D: D7 J% g+ B3 M db 'The results are as follows:','$'
, z9 M( b6 E/ t; Z3 G* k
" Q/ {! E# F8 D4 n3 q2 X! Lcont db '________________________________________________',13,108 e3 S p) n2 \6 W# \
db 'Can You Continue(Y/N):','$'
# i1 I3 G) U# b) O, Z
9 u* y6 Z6 \. Vcp dd 50 dup(0)- w2 m( Y! w+ p; p0 t
data ends
; a8 U% t" w7 _6 x% t
( U& S3 g$ u2 C' ucode segment- c% k( r+ u( o6 P0 F
start : mov ax,data
. ^% _, ?0 {8 X3 s9 q; Z( k# ] mov ds,ax2 z# V: `( V( f; I( {
call prop17 Q- N7 }! P) v2 y7 P3 i9 I! }( f
mov bx,offset table
/ A1 _$ w4 w' w: Y. \" |- H# H& n mov si,0
' Q# z# _$ n( H" e; \ mov di,05 G* r3 M% n- `5 C- Q1 z
' y) i/ b3 T/ D8 u' M/ z9 ]7 v 0 b2 }* _3 [; d; K% D& w. N
call enterchar! B( r# J! t9 }7 Y* W, H
perp:
+ N5 `1 m3 J9 N4 c! O" z1 P dec si
$ g/ v" [0 l; I- L- E. ~ mov dx,si/ k, `1 \# l% Y
inc si
8 M# s+ [! e" ?% f3 U. ] R mov cx,si/ k9 }3 W% t% z! X4 I% o
call arrange6 I7 f/ Y& V2 I# G4 b0 _; t4 s5 ]
call prop2
* A1 V4 M" N3 I( c call putchar
" M7 N2 o U8 J$ f0 M; m0 Jliang:
/ e. E! `- I& B" g f7 O& d: n- W call Continue$ C# }8 n8 u$ i A
call judge! o* {& c, o+ N1 w
mov ax,4c00h4 k2 |( \' U5 o( ]# }4 p/ o c& x
int 21h8 O: G$ ^$ z; A9 ?- {
" R$ T) f; q" q% |" x- U \" x$ F7 z2 `, ^
Continue: enter
6 C$ k! S. G; A) ` mov dx,offset cont O V0 o2 G3 j! b0 W3 u( b
mov ah,9h! V* ], y- r; u2 p$ [% H) Z
int 21h1 P0 h& R9 {/ ?% J
ret
6 k+ @9 f- d: G5 K9 C+ X
# @* ]1 u1 @3 |% E+ H4 {& b& r+ N% S" Qjudge: mov ah,12 u4 X% {' f; H7 N
int 21h! k3 j2 w0 I" U5 t" u: o
or al,100000b
* ]7 ~& t$ n7 u( s& e! L9 z cmp al,79h
9 }4 D7 v4 t* z je clear! i% G8 R" K2 u2 @
cmp al,6eh
4 J% y3 O& F6 w& x, S5 F% g je endj
: v' S: u9 G! L) Y# C/ Z, x jmp liang
2 M5 C- V. n9 A2 _6 kendj: ret
7 N# a+ ]/ b2 L3 t
8 @; H* r5 u8 Y0 A& cclear: mov bx,offset table
& Z- i) l& u. a mov cx,300
5 p- S- h' v9 ^) czero: mov byte ptr [bx],09 i+ \! x* h2 S3 N, Q: `
inc bx
# [8 G/ `+ U2 `; j; Z/ D+ t loop zero
% }2 G; I7 ^# }" }, X jmp start, Z e6 m: b" q6 u7 P" `. ~0 y
! v7 E4 G G& a! S2 C, B& P( H5 M* T
8 R. X+ J6 v. ~0 ]% l! v9 Denterchar: mov ah,14 L* F8 N3 w7 N B; u l! G7 i5 K
int 21h
+ a5 i! a/ r" ?, [. n2 K/ u/ E mov byte ptr [bx],al : r/ k! X' |+ A- F) w S; {: S8 j
cmp al,13- A9 \8 d- A/ A) X& d2 ~
je endchar 1 ~$ b+ L0 W2 d5 A Z
mov di,17 l8 a; `; {6 f8 O' \9 m8 c
inc bx" D, m2 U3 W$ e, C3 _: D
jmp enterchar8 x/ o2 M/ g; U+ C& N" W
+ Q( d1 f5 \ k U& V
endchar: enter
" O3 S1 u1 m8 _ l3 C6 H0 g5 h mov byte ptr [bx],' '
" q+ k" [' I1 o' n# { cmp di,0( |1 V V* C- \) M4 n$ F' `
je perp
$ t8 n, b) O4 ~/ s inc si' _7 T6 g0 i: q G- |
mov ax,si
+ L/ a3 s. k8 { ~1 P mov dx,21
! C5 B( P. S$ {+ G# E8 I7 m mul dx
8 c& D+ N8 n" S: D3 H mov di,07 k, B+ x# A' F0 c8 T/ F
mov bx,ax
. M8 e9 F) |0 f" l" c, W/ }! Q, k jmp enterchar
6 y1 l3 A1 u# g+ b: \8 q0 t S' D6 _! n9 x* r6 C8 Y$ ~
arrange: push si
- o1 K$ ]4 ~- p, h+ @+ m push cx ) r9 P5 }: \* H, h
mov cx,dx ; m8 B1 ]+ @. \ E. i8 A
mov si,0% Y; g( w7 Z. s
mov di,21
; d2 t$ d$ [, I
, p0 z3 S* F$ f% ps1: push cx) }' ^. `3 Q3 i4 B
mov bx,0$ v+ P& y& F0 `9 z: W8 H
mov cx,20
7 h3 P0 t6 u! d% t7 i! F- ^ss1: mov al,table[si+bx]
5 l4 S; ~$ e# d$ G2 f. v cmp al, table[di+bx]% {* I9 Q, C) R, [
ja jiao
1 Z- u" q, J* U' @ jb s23 [- O0 r' [3 p6 k
inc bx8 ]- }( C8 p: M+ l2 h
loop ss11 R/ m8 ~4 `0 V& V, c3 v V
jmp s2) n. D6 X5 {& Z' P* ?; ]
/ c% |( O. n* H5 fjiao: mov bx,0* z6 w9 F6 H$ X; z( }) d9 e
mov cx,20
+ X; A% f6 K: h" O) b) njiao1: mov al,table[si+bx]
0 A5 v1 V0 V' ]3 A xchg al,table[di+bx]4 H" o' P6 ^- f1 D8 A8 k, c1 a a
mov table[si+bx],al
& h q# c0 `$ [1 s% ~ inc bx8 ]( B; s; g, k# {, ?
loop jiao1* I# k- ^$ o1 O0 _" n
! _$ S' \6 n6 @# J; b& v9 j5 k' ls2: add si,21( h h% \ u- _# t( d! a9 R; s N- J
add di,21
0 U+ R( v. `: r1 z: g. F: K+ ? pop cx
4 r& i3 Y9 A- o) e+ N loop s1/ @9 K1 z* \3 J, q M) _
6 g: l( a& S# ` pop cx
# v4 R1 E- {7 A* b8 f0 y( {( [% f pop si
# T/ ^+ m R C z loop arrange
/ J0 z( i. m H8 o% b ret- ^0 G! [; h( N) U# l: g
# N7 d4 t2 ?0 jputchar: mov bx,0/ z( C4 e5 H2 n/ l% T, Q b
mov di,1 L. O3 K+ z! [5 f
7 _" G9 G- k% c7 e6 `$ W# P
" H# C5 V+ Y( v, {/ i
mov cx,si
o( A( h, Z/ ?5 z2 ]put1: push cx
2 }) L/ A3 [/ L& O+ I9 C( c' ]0 i push bx1 v0 B& @& |4 I3 j8 ~2 x
2 f9 {- \ p! E2 L% E: O6 V
enter8 q5 S+ y' ~4 n0 r: n
' b/ z# O- }, e, E9 D* L& G$ h
mov bl,10
7 |7 l# Y! L4 m, S0 W. F% H mov ax,di, `) E( Z# l8 h/ Y; b
div bl
9 L8 h5 [# w0 ~( y7 z0 J mov bh,ah
2 G5 x( V/ l' U% J0 ? U; s add bh,30h& b* S: {. L+ K2 m, o2 a0 Y# V
add al,30h$ N0 V0 |1 y; k* ~" X" l0 d5 [' R
9 H, S1 F6 e8 G; O" q R3 d; h
mov dl,al
" D0 S( l, N! Y0 q5 a! p mov ah,2
& E3 K& \" g$ I$ c: [ int 21h
' w: g0 k9 V; d; z5 k) ] mov dl,bh
6 u. z2 M* e: r9 m0 R) x mov ah,2/ s: K- b4 ]% r3 L. \" N
int 21h1 ]( }% t& V5 j) M0 k3 n& e
mov dl,3ah
8 o( d0 Q! u. y8 r, h) c+ S0 j mov ah,28 ]* s: a. m' M/ @
int 21h* ^$ K% a/ G+ w7 O. S
pop bx ! _0 }! [" c6 D5 K# s! r
mov cx,20
# c, U$ t& v1 ~ push bx( A4 Z5 o5 p0 ^& d, Q$ N! u+ E
put2: 7 [0 s8 N# i* ~1 t! q, T
mov dl,table[bx]
5 X/ v; t' H; O+ e: u% G% I0 ] mov ah,2h
* U Y3 D9 r( c. i5 Q' p3 x int 21h$ H( L( E f$ {+ t4 x( {- E( V
. L/ x; Y8 k" f1 i
inc bx
& f5 ] Y3 [* H- Q loop put21 ?& q# Z0 P1 q* m: C2 Z1 X/ ] T
inc di [: Z h! {8 u7 X
pop bx. Z0 B* ^; ]8 U. D1 f
add bx,21' V$ h; Y5 A) O" ?
pop cx
! m7 k/ }4 w+ ]$ x5 I' u0 X 4 [( V. _4 l, h* F1 \) K- ^
loop put1
6 m( K2 I, d0 g6 ?( C% {; k. \ ret) `" x; M8 ?3 @ D5 v
9 r! B G, m% x1 [1 L! O/ H: lprop1:
- q6 P* E1 j5 P- Y mov dx,offset pro1
$ n. g# f! a5 s1 ~ mov ah,9h& `$ Q% D% a" T [
int 21h) V2 }# l3 @* C8 G k7 G
enter
2 y: v3 M* f: q4 Y+ z ret: ] E4 U% Q9 D( k1 F1 M1 L& {
( ^ y! k- j" E. z, b0 }; wprop2: enter3 k2 q6 A7 K9 @( V1 @
mov dx,offset pro2$ B* m$ B" b2 Z3 [2 K
mov ah,9h* Y3 E: G4 E7 ~) F7 ]
int 21h: Z0 @: v- T9 ^/ }* m7 `
ret
; a( r# i ^% V9 {+ G8 y: S) N' g+ w
code ends0 g, b7 R7 o6 i) d# f6 X
end start0 j0 R* s! s3 o R, ?0 d3 n( a
5 h* ?4 ~6 K$ L2 a5 w+ i1 h' Q- P1 r* B# l7 ]$ {" e6 D
|
|