|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
7 ], \2 w! N' X9 k: _enter macro# w2 Z4 [% E- D
push dx; i4 @: U7 j8 j. s8 d: d3 w
push ax
; _6 `) \, ^+ @$ F* e) Z mov dl,0ah
# r y, J8 W0 ?2 U3 L" @% s mov ah,22 p) r# J1 ^5 {. d2 S; ]* h$ R
int 21h. s2 O6 B% b( k* c) v7 v/ h
mov dl,0dh# ^6 p2 [! p; k$ M$ E# R* j
mov ah,2
4 H) K. f7 t( W0 j) t4 B int 21h
) [; e' ~4 K& x1 U$ j. U ? pop ax
1 { x5 Y7 j+ A+ c/ i/ a0 t' t pop dx ' y6 A ^3 v& L z; b* `! j! ]
endm
6 x, X2 m/ \: I/ O/ Q; ?% Y3 H) I( u; O# v- G) n$ D T
assume cs:code,ds:data
+ Z4 \# L2 s7 l7 O! s, u5 I/ Tdata segment
" _& l3 N: h. C- m7 T# E" b& Ftable db 300 dup(0)
8 P D o- }0 Z7 Epro1 db 13,10,'_________________________________________________',13,10
0 Z# h/ t, u" K Q2 L db 'no more than 20 characters English name.',13,10
. e" Q' ?8 i* E2 z db 'For example:',0ah,0dh,'liang xin hui',13,10
, M) q8 Q3 |: J0 z; O$ i; E db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
$ [% a, v' T- V7 D0 a# |1 i db '.................................................',13,10
+ I3 Q i1 a$ _6 Z db 'Please input:',13,10,'$'
1 [) F' j7 P9 c- n) npro2 db '.................................................',13,10
/ t K. Q2 F( N7 ^: x" s" I db 'The results are as follows:','$'
9 c) p& y- A T4 {1 g; q, V" A4 f7 {) g( X! @) A, L* h# C
cont db '________________________________________________',13,10, T% ]$ G7 m( J Q6 F2 f
db 'Can You Continue(Y/N):','$'
; X! @# b" U3 x4 B
+ s' }; y) Q# u0 ]- S m' ^4 e% Ecp dd 50 dup(0)
7 U9 x* {# |8 p7 pdata ends
( K7 x, \* ]: Y* J% c
U% y+ `. O6 G9 zcode segment
- M( f3 E% X5 A8 t/ s/ Sstart : mov ax,data% A- y: [- M* N
mov ds,ax
5 y, U3 T4 ~: U& z0 s call prop1
, r- e- D5 d& k7 w! F/ R mov bx,offset table
4 b; C* S5 {: Y& E( a mov si,0
' F9 o* V8 G( e/ R6 O0 T6 ] mov di,08 \) }3 f" _. i! l7 L
. V& A- g5 @: N
: Q6 N# ~ M/ ]4 a- K call enterchar
( J C' g! H7 M6 E' \% Jperp:
0 j2 [. e2 N0 O" W! L+ s dec si
5 N7 X0 r* ?' f7 { Y3 i mov dx,si
4 N! P, l/ d' ~ inc si
6 \6 ?3 ]6 h/ Q1 @3 I; N2 s. @+ c mov cx,si
% }6 c9 `! a7 h+ d# { call arrange8 e4 e9 I5 i9 R8 u) u/ @
call prop2" W' f0 D b+ Q% t7 x$ C
call putchar! c0 I( L4 G8 `& H$ ?4 _& D" U0 s# x: V
liang:2 C4 ^* B! |; f) p
call Continue6 I5 n/ g5 g+ U
call judge
/ X% h G- F0 F+ w$ \: O7 N! D mov ax,4c00h
z2 W4 @+ G! L/ ?: ^: w% Q int 21h1 v8 Y/ q7 S5 q( M
, ?, ~+ X$ V9 p" N7 ^# b
& ^! k, K8 L" k& k, _
Continue: enter
1 C9 p0 p% P9 X7 c- `. ~9 n4 ^ mov dx,offset cont/ }6 d. [; Y) c4 T# a5 g
mov ah,9h
& c$ {. e U- v5 ?5 D6 @. S8 a# t int 21h/ E+ {: x2 @! _/ m3 W
ret 1 t* Y; E7 m/ L& [5 F; T$ h: z0 g
4 K3 q) v) \2 R1 w8 S- Jjudge: mov ah,1
' q% T9 c6 l- ] F9 V int 21h0 q5 I& G/ r; n7 q( ?7 ^
or al,100000b
, V* s1 M5 G$ O; V' I& R( f cmp al,79h
4 U. P7 c: b% T8 _. r je clear
$ c( L: W0 Z$ c) G0 | cmp al,6eh" V' _- o2 X" P0 n" j3 Q
je endj6 p9 m9 h% d1 I g; v, u
jmp liang: C% B" z) g+ D6 ?5 t, A
endj: ret 0 E$ p3 [* \, h( Q5 |2 k9 o: M+ u
7 E8 P8 l" ~! `! j5 M" X
clear: mov bx,offset table3 A7 e! k. U* A+ b
mov cx,300
5 ^$ V7 o3 M$ ozero: mov byte ptr [bx],0! K+ y: |8 B# D
inc bx
+ B8 t; L9 {3 { loop zero
9 Q6 J% C& K& g' P jmp start9 E6 [% P" C1 ^( P
8 J+ B4 G% F* H5 k% r) C- Q4 C8 W1 J
enterchar: mov ah,1
; W+ U' T+ R! s7 v& g" z; E$ D int 21h- x3 B! y5 K5 C" U& C4 i
mov byte ptr [bx],al
- v: j7 j2 C) A/ p( j. } cmp al,13
2 P: E1 h' D' \: {$ l) q je endchar - c2 O6 g9 y, P. \( {' K
mov di,1
* O4 x# I' ^& Z( z5 i5 [' b* Z) k inc bx: G v" |6 O) b6 W; |& b" L" E
jmp enterchar- h& X) \! T& _, o: p5 y4 |
$ T) G+ Y( z9 `4 h4 [% j( ^ wendchar: enter
_" z8 E( X3 _, \ mov byte ptr [bx],' '" R" H' U7 r0 W9 s5 E( |5 b8 o+ n
cmp di,05 @0 z6 ]5 Y! N% z% h
je perp
! O, R; S% K9 j& h( J inc si% _* u/ }' b1 R: ~& W
mov ax,si k- T8 w. Y w( H
mov dx,218 ^& t% C1 G! ?4 J! b
mul dx1 r0 `5 B7 [8 F* a7 q
mov di,0
# m \0 g! d( U* v! p' ` mov bx,ax
* V/ z5 G o" T; }: y8 y jmp enterchar
. I% F9 u6 Y6 k
; G) Y& X8 D$ r0 A' ?/ rarrange: push si1 F+ J, \$ Q7 N8 x- j
push cx , ~2 S8 M; M# \0 E' P$ m. o
mov cx,dx
/ E4 W: _/ }* }1 r mov si,0; r0 z7 B' P6 M
mov di,21
8 L" F, a) {8 P* W) @; G! M& F
& s( b; w9 Z3 p; Q9 Gs1: push cx6 P- t7 `# f' P/ I0 R5 c# T0 Z
mov bx,0( A) w# P. p3 w( `& w" l
mov cx,206 A: y+ t- r3 g h. z
ss1: mov al,table[si+bx]' Y v5 R) O0 I& T
cmp al, table[di+bx]3 y, ?( K& w& o
ja jiao
7 X( t6 J6 S; G( y b jb s2
2 ?: W# R. Y3 x) j7 _. I" U; s# ~ inc bx
1 i6 ?: m# O. }$ W loop ss1, b/ h5 i( J- j9 `8 r
jmp s29 Q9 a" Y$ s2 z& Z& p; F) P" ]
2 g" s6 ?' W* I+ N1 Xjiao: mov bx,0
2 }+ X2 n% V2 K: C! v mov cx,20
+ N& v7 M# G+ J- i, ?- j Yjiao1: mov al,table[si+bx]1 X; d7 l3 m3 X
xchg al,table[di+bx]6 }+ H2 `0 Z; T' I7 A, |
mov table[si+bx],al5 h$ D7 ?, I5 }& M, p5 |5 I4 j
inc bx C ]: \% Z5 L. E+ z
loop jiao1: G/ W- j t6 ]1 s
8 C |) G# O! V M
s2: add si,21
/ @* X5 q: D) g' k9 ^6 O add di,21
% J) b9 U. z2 N* {$ B- F6 L0 z8 { pop cx" C3 K; V# @) H! T* o
loop s1
& ~! p$ c7 s7 q9 R0 f& q- |5 l
1 B8 B4 l7 y5 z, B# E8 k) z+ E pop cx
! Q% W, [1 G& v; r pop si' ~2 S3 Z0 R% p! `- V! K
loop arrange0 y: G( g# E/ W% @% G0 T% ]
ret9 p, V7 I& T' b3 b0 F
8 J1 H5 ?# U! s1 s4 w9 q+ l: x3 M
putchar: mov bx,09 q0 Q: t. T% b+ `
mov di,1
8 O( f8 \8 z8 k. T7 l
: j9 V5 T. S1 P8 X- i' n2 S% G3 J" B
, a. ~8 O" `3 B: e mov cx,si' h- `9 B1 Q2 B$ x# \
put1: push cx6 m K$ m V4 p+ m( ?) a. n
push bx( \. m1 }/ Q: Q
$ h0 ]1 ?0 V- O6 B' I2 r
enter
6 C% M/ w! v5 k3 m) } / a* }1 S" o4 {" U& ~ a& o
mov bl,10" W# _7 I& Q* j; F, }* n% A# g* p
mov ax,di' ~' }& ^3 D6 A5 u8 L: v
div bl
) L& C& ~- J5 ~6 T" r# }1 ^; }9 { mov bh,ah, n$ n4 V* E u) V
add bh,30h
+ I0 Q% }" Z2 C, f% l: ^5 s add al,30h+ V* ]1 U5 K f, D
; I) F7 `( q' G( ?& K) R# A4 D* c mov dl,al
! h0 {3 z5 A7 c" G. ?3 J mov ah,2
- U/ `" w. x# E. o. H int 21h1 W1 H: ?$ C, K7 a1 ^& p
mov dl,bh; H) v$ f: `4 |/ {/ g
mov ah,2
9 s5 ?) r5 y1 N1 C& k int 21h
5 x: p7 q7 l3 l( V& ]+ t mov dl,3ah2 W0 l4 C6 m. k+ o
mov ah,2
" `. o. A: M% {8 _ int 21h- `: \" _0 w3 M6 s% H
pop bx
4 _- ]# O: Z( _ mov cx,20$ [, H7 R& R& E, Y" T) S
push bx# F' M& W3 N" u$ l4 H/ }
put2:
. H. l. \. K' L' ~( W mov dl,table[bx]
) E% W/ g# p- S/ {$ ~) m* {- S mov ah,2h$ U; R0 S, R4 o; g3 U; H' Q; V. s1 H
int 21h2 N# b2 f6 w. p5 ~: V+ U
: p9 a$ \- p m6 x3 j* s$ m
inc bx
# z$ n' f1 D' Y1 v# F+ J loop put2) o' E+ H$ C+ s: f- ]2 Q
inc di
& s5 C: Z. H# A. r% C9 F z4 t pop bx
" N M# g, D. F9 I$ v add bx,216 f; F6 k' X0 D( z
pop cx
& x4 k* k" I, m- s5 @* W9 V
2 \; ~& n& H' r1 g/ t2 ^ loop put11 N' m) s( E& D! Q3 ]1 V
ret
1 B2 I6 h2 @" b) O8 Q3 _- v A0 \: w; F/ v. C' P$ D6 O) }* u0 N
prop1: , K( t' Z l1 d% n8 v$ X
mov dx,offset pro1
# ]/ K% ^6 l: [& w/ r mov ah,9h% _9 l% @5 Q1 O C
int 21h6 o/ k P, R# r; ^
enter
3 l, d5 O3 X5 d2 b" {7 a/ _0 p( n ret6 s" I( o0 g: r+ X* W# U% M8 K% z+ }
5 R. }6 Q8 g0 g+ O# Qprop2: enter, q, U* s* j* S
mov dx,offset pro26 ?# i/ n9 X5 U7 x: R5 g0 R4 Y
mov ah,9h
: F+ ~$ V7 z9 n; D* ^ int 21h
! D2 }# r* A# T1 ?' i1 I ret3 P6 T9 L& ?) G) k
' C6 ?8 c8 h5 V
code ends
! @6 M% n+ f; A+ ?1 Xend start
& [. o2 A: i% [) R3 y" H0 d7 j C' K
5 R. K# [' r4 ~7 f8 ?, [
* P9 v6 b7 L5 h |
|