|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧- H5 m- z; }+ Z% |
enter macro4 V/ ?' ]6 a+ t
push dx# g/ @+ O5 p9 W! S1 E7 R8 Q
push ax
( K- j, ?; v/ _& ~% G mov dl,0ah
H4 d4 n: g) D2 y O9 N mov ah,23 O) T! g5 i, @% s& Y# M
int 21h
; R3 q" y+ V9 w" Y. e3 N. ?, c mov dl,0dh
/ k7 Q( ^' o" x* u5 o mov ah,24 o2 [8 E% T4 z8 Z8 q
int 21h1 J9 p- W! l; y1 o+ M( w( C
pop ax
) ]0 i) ?, ^5 _( _0 S/ q! z3 ] pop dx 9 z3 H g# i& K( {6 ?. L
endm
& f7 ]+ v6 l( o9 q. u& J; Y
5 [, d' x- G/ F8 wassume cs:code,ds:data
3 p. Y! q+ d2 _ ddata segment5 d2 h2 w/ Y0 s# l+ X% @
table db 300 dup(0)
s* V" r7 s, v( j% G1 G0 V' H, Lpro1 db 13,10,'_________________________________________________',13,10- p% J& Y3 I4 d0 j$ {" x" [, q9 J
db 'no more than 20 characters English name.',13,10+ H+ w7 @: i6 ^" {2 [
db 'For example:',0ah,0dh,'liang xin hui',13,10
/ U6 v9 G C; k7 _. h+ x4 ` db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
1 O! f" i- m3 @3 {0 V1 ? db '.................................................',13,10
9 I5 V+ [) j5 i db 'Please input:',13,10,'$'1 y; }6 `' T+ k5 L+ J! q& x
pro2 db '.................................................',13,106 ?2 O, S3 N/ a. G& E0 ~' e
db 'The results are as follows:','$'
b2 Z! @* Y, p% T3 [4 p$ Y0 y, v- M8 r! h$ n
cont db '________________________________________________',13,10
0 j- z! F" }- X& k db 'Can You Continue(Y/N):','$'* w5 e& [/ B- t+ ?, ^
. C+ e$ O! X: ?$ Y' I0 Gcp dd 50 dup(0)# @5 y- \9 C, W5 Z) G+ @( e
data ends' W5 A( H% F0 d: O4 u6 a
, q. o+ P- D8 r0 N. _+ ]3 `code segment- B4 A7 E4 z* w# P+ i* t
start : mov ax,data
: z) P& [+ M4 T/ } mov ds,ax. U* i% r7 i$ r. c- k
call prop1
/ N2 h# k2 G+ A mov bx,offset table
0 P2 l8 M$ I% b" {# g/ @ mov si,0
9 K+ q [4 v: f' q# p- K' a mov di,01 _7 g. a( _2 N7 e; |3 `
1 o2 T* k4 C6 ]
! F5 _- j+ [; p7 a+ K) U call enterchar
: Y% H3 \$ k0 c5 [, w. gperp: 1 R- B4 J5 F2 C z( Q
dec si* ?1 ~, n5 w7 \0 v5 ~1 V( h3 `
mov dx,si T7 E" s0 Q5 m6 \) {
inc si 8 i5 C( j3 t( @/ x3 `6 A: n/ M
mov cx,si0 G* P; s$ N) G% `( P& C
call arrange: [# }, m. H2 q X7 p, u
call prop2
8 T. j! q0 q, V6 X call putchar/ f: f% Y( ]" Z5 q, [
liang:
8 L7 D% J% L$ ~; ^9 ^- P0 y call Continue. R1 w& t8 K9 d: P' J6 Q2 p
call judge3 i) p3 B" Z/ J$ A6 |% o0 N" z
mov ax,4c00h7 f2 ?) z B0 j; n2 B
int 21h
( r/ g& @: H- {4 Z- O" E: }3 j6 J* |; q- p' X) M4 J# E
: g5 _! w# P1 S
Continue: enter
9 E0 s4 r6 [& B) | mov dx,offset cont
2 R6 X) q5 Z' O$ a; G mov ah,9h
M" m# O2 f# D+ Z. Z+ r; N int 21h' A; M( O0 w) G. |9 s' v. d
ret
3 U y4 ^+ D5 k$ X# Z: x5 \: F8 b. o2 {5 ]# j- d0 b$ ^
judge: mov ah,1
7 l5 {7 V( u3 C Q int 21h
. Y' T" n& X/ K$ x+ v or al,100000b( I5 G% f e& `7 s
cmp al,79h$ T _8 b6 D" Z- H8 C1 p- T
je clear
: }( Y" S+ `& t4 \9 }/ _ cmp al,6eh
k* N5 W q4 ~% g2 L/ J# Q7 F. V je endj
# I2 X) i8 s0 {& X. M, V8 q! y jmp liang5 K) J6 \" [1 [' P
endj: ret
8 a5 Z& o4 B: W0 D7 ^! j5 P* M' | 4 J, N! y% t4 k
clear: mov bx,offset table
8 I1 L/ @4 T: `: V' G. X W7 Z3 M mov cx,300
. y' v7 v& Y6 {5 W; gzero: mov byte ptr [bx],0
) K" s: \, A2 z inc bx" W' \8 l* U; I
loop zero
5 m% c8 \& @/ q jmp start2 T9 O/ ]# j5 N6 W! o. _; K# J
: J7 b2 B J# {( I8 q* T
* Y3 E* J- r$ y- @5 h0 jenterchar: mov ah,1
5 L6 C1 t+ t i) ` int 21h8 _4 `3 {9 }+ g# W
mov byte ptr [bx],al
9 {- a/ T, k1 M% S' ? cmp al,13
% t0 z+ L5 I: v4 Z; X. q# X+ w w, k je endchar
: H/ p' \: _ f2 H0 o mov di,1
7 j4 Q4 M3 i4 B/ m5 Q2 v( H2 W inc bx
5 _3 {2 B2 P+ F( x: j4 n- j! l jmp enterchar
5 H4 O q, K4 n
8 x1 T4 E% Y% y& J$ a& r1 vendchar: enter
% ^, L3 f7 R; c. o mov byte ptr [bx],' '8 o6 V% S! X& t* T
cmp di,09 q/ H9 q: k" }: u Z+ B: X
je perp
1 z1 b& o" `8 R" h8 W8 G3 R inc si, v$ |9 R' C- B% D
mov ax,si8 R+ w0 {1 ~' _
mov dx,21
* E3 X( y! _6 c( {* |* f+ Q9 d mul dx2 k" k) D0 @" J7 _
mov di,09 J% X* r5 r* w/ R* Y
mov bx,ax
/ A; e! j9 E8 I jmp enterchar- E2 w- t/ x/ W" A6 o W% M
- d/ L2 q8 x s2 i
arrange: push si7 |9 k+ J9 B( K. s+ m( v, Q2 D* ^
push cx
$ {2 P \. H3 l6 u3 A mov cx,dx 7 j! l1 s8 n5 w5 O8 u
mov si,0$ d1 f: r' V' i/ N; D
mov di,21
9 d) ]- c( A8 [ H) v5 }# Q
+ J8 e. a# C3 M/ Us1: push cx
$ w, n7 Y2 a6 k9 N* T5 k# S: d7 O6 X6 Q mov bx,0
3 i* M8 z! `: I: P mov cx,20
* e; S- V+ L/ z; o! V \" m4 y& nss1: mov al,table[si+bx]
. ~9 Q5 d) k" t$ Q cmp al, table[di+bx]
3 D9 r/ H6 Z9 D3 x5 m# D ja jiao
/ M6 Z. _( {8 \) t jb s2
; Z5 M r! h S: \( S: u inc bx6 R( t- p+ R! S. @. i, P; N
loop ss1
7 N0 l( @9 w/ K4 _! X& ^ jmp s2
; ^ ^, \- r% M/ G& m
& K7 t+ V7 i9 i S+ ojiao: mov bx,0
, g, h* d4 r2 |9 L; ~/ [ mov cx,207 P( I8 c0 W$ t4 {$ R( x- F( P
jiao1: mov al,table[si+bx]
3 x& z, K& r6 {6 z9 H1 d xchg al,table[di+bx], c6 k8 ]; i q7 J4 L
mov table[si+bx],al/ ?: }! ~% `; T5 x6 v3 \
inc bx
" h$ ^3 ^. y; c9 Y% Z" \. _ loop jiao1, N z6 J0 B+ Z& W/ e
2 C2 y. @( ^5 h4 ^( ~
s2: add si,21( i- m( z Z5 h N& r
add di,216 q0 J# b1 V, G! k1 b% k
pop cx
# r" | k) t( F9 u$ H g: n8 i" J loop s1
7 l9 g8 L* v! F5 S4 x- r! o/ _1 h- p: b8 V2 `# v! }3 ?2 A2 J
pop cx& Y: Q- \& _. J+ C$ _" H9 m; t% R
pop si8 z! J) }9 j V
loop arrange
3 a, z$ G. [: g6 B% u! V ret) H1 X' l( Q5 \! X' a9 g
& L @: l* E; q8 i5 ~
putchar: mov bx,01 n* g" O6 ^+ C2 \
mov di,1
' e. J3 B. [1 P7 a( Q + Z, W& R! N0 B4 a
, w' T/ Y: a6 k5 F9 K
mov cx,si
# x- f6 e7 ], t3 Xput1: push cx
/ C) x" L. p: P/ \# x2 r% Q push bx. m4 x; r# T6 x8 o; F9 }8 c% ^
9 S& ~5 O+ h1 b& [ enter! Q- D% |4 A& M3 l: M5 R7 e* q+ I# H( M2 ^
/ _: b* @1 ]9 a/ O* f+ _( A9 [/ F
mov bl,10
2 r5 B' H0 F3 K mov ax,di9 v# O* h- ^) D( u
div bl
: B3 b b; l7 s v; w* k9 E( W mov bh,ah
1 s6 u0 i- a. y: r add bh,30h
2 S( F2 Z' U# y add al,30h& Y( l" Y( G- `& ^9 i
0 \1 D# ?8 E9 ~& ^ mov dl,al
: v P1 d$ r; Y* p) H4 s mov ah,27 x5 U; ?: Q% W2 ~
int 21h4 t. v" \! c2 ^+ {+ l, o+ }
mov dl,bh# c+ g+ L3 L) y$ Z8 T0 \# a
mov ah,2
" G4 N0 s' n3 f4 R$ W/ ?. T. ` int 21h
% V' P" q' T; n! d5 g5 r. s, f6 c1 N mov dl,3ah$ f3 Y- h/ A5 o3 r7 D; _9 x
mov ah,2- S; h9 c$ _; ^# p2 f" i
int 21h
- w' N6 M" c% ^! |4 Z K pop bx
0 B! |( v0 F5 M% D f" c mov cx,20
9 |6 c2 p7 r- t4 }! W2 A push bx" P- C& _ Z' F8 e
put2:
* p3 i( B5 c8 c) n2 p4 s mov dl,table[bx]
; s- n3 I( z2 H/ g4 y mov ah,2h
) V' l9 x! s. c( |; N int 21h
4 z r$ c2 _, q& V0 _ 4 c7 x' `2 o2 P+ V3 }
inc bx
`" }- l9 [" L1 ?, p loop put2
0 Z/ ], D" b1 z; J inc di
6 ^( a; n( w1 Z2 l9 i$ B pop bx$ y1 P' _3 ?: ?' I, V# N- q. o- S7 b
add bx,216 {- Y; o/ ~6 u8 n! E" o) D* B, Y
pop cx6 ?7 O" a( \# q1 @( Q' j% o
, i" O/ D0 z/ P1 R, u" p8 z loop put10 _5 A3 c% f, P! x
ret
- x5 [ Z T1 i/ d0 h! c9 B1 z2 j
9 {: \) u# v3 D( Y Mprop1:
1 d Y. u( [0 G mov dx,offset pro19 f! Z# h2 ^! y5 I
mov ah,9h
+ N& [/ o1 U" C. ~/ h2 U5 A int 21h
: J' J' p1 B) H7 x enter
' ?5 L* v8 k8 N* q2 a8 S ret+ i# L5 j1 k9 q9 z1 i P
9 Y& n; R/ G( b Q/ lprop2: enter
: Z8 @1 E1 `, l n* ` mov dx,offset pro2
$ y! ?; g) h7 S8 v& X mov ah,9h
' ?- B. g U. A+ A, e) S int 21h
: }/ E( k( ]; Z4 U3 J- o" f/ r ret
# \+ w# W. d1 Q* @4 o* a9 E+ v/ K, |1 ?( S+ D7 b* ?- @
code ends# F# R/ ?! d: f" {6 n
end start
5 D( z0 d5 ?5 I* l1 E5 D4 g3 {& ~* G) E
9 C9 X. C7 j( _2 Q+ w |
|