|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
- f+ w/ u8 D+ Y7 J) xenter macro+ A5 v! r, Y" r' M2 Q/ H1 q7 h# E
push dx- M, ]* z3 Z' |3 N J/ f
push ax2 B) d# k1 [2 `. F0 ]
mov dl,0ah" C2 |( Z9 F" `+ Z! v$ h
mov ah,2
V, N, A' w5 U/ v8 s$ E( f+ ? int 21h
, H* g, Q9 ]$ Y; O* `. g5 W! c mov dl,0dh3 _. r: s( @+ Q$ f3 U: @5 s
mov ah,2
0 r- L0 X) H# a4 F0 u int 21h4 ?# |7 \- i+ O, h0 Q% o% Q
pop ax( u. m" X& K# Y# @1 q5 A4 V
pop dx & U. q9 F f" ~
endm
R0 X+ q0 w B; f) b7 ~7 W5 J2 e' b, k0 Q* z! ~( E
assume cs:code,ds:data" N9 d' V- }" c+ P" l
data segment3 s$ \) L3 j+ o) ^# a0 m
table db 300 dup(0)
+ Z0 M' a: @5 C) Zpro1 db 13,10,'_________________________________________________',13,10
, ^/ m# [; q- _- [. w3 Q db 'no more than 20 characters English name.',13,10
) z, k. [% U$ B% f. [0 T db 'For example:',0ah,0dh,'liang xin hui',13,10
; R6 h% ^0 L- L3 E0 `4 j db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10 r F8 i) Q* Q" Q2 t# J) P# P
db '.................................................',13,10
- {2 L% p8 Q& B( {1 X db 'Please input:',13,10,'$'
! u; y% U y2 x9 ~+ X1 dpro2 db '.................................................',13,10
/ R U. I6 b% t% E/ \, M db 'The results are as follows:','$'( ?- [; Z4 Q4 p9 ~, P! A
7 R6 x% V% v' D! i
cont db '________________________________________________',13,10
, R0 Y8 e8 `7 C5 v" t& Q3 p5 y db 'Can You Continue(Y/N):','$'5 j3 f' i6 n+ K; ]# I
& ^- r3 E9 X; Q! s& M& _cp dd 50 dup(0)
; J+ l- N, J5 g8 V& sdata ends# w8 `* d1 J% x. g5 y8 w- j6 v% B9 l
: N' M4 j4 N% Y8 k0 C
code segment
: \) N1 K; b7 D) A; m+ b4 o: y+ n6 _start : mov ax,data
4 z, `7 `- S% n( ^, k mov ds,ax
+ k5 n D7 r: u& M9 M& f call prop10 g. ^* _+ A5 ~4 C# S4 \
mov bx,offset table7 `$ f i) d6 r% X$ S
mov si,03 `# t2 `# g/ @' ^3 I% L8 T
mov di,0
; y' k: _2 f2 z( c. V0 K 8 v5 n; I3 X* P0 ]1 V0 w- W4 t7 c) C, g
+ d' J& z p3 C- u( M1 R: e call enterchar8 g; `5 P1 X( e" M) S( y' F
perp: 8 O7 d! j6 U V6 V; u( U5 U
dec si' P! |* q$ G; _& q
mov dx,si5 |8 ^ a; c1 `, ^7 S1 A
inc si % ?1 N. w3 P8 M( `( I- Z6 a
mov cx,si/ C0 M, i( [" e9 w( z1 F
call arrange
; `- E. D! M! ~ call prop2
9 R* {% I* o# R6 s1 D+ S5 [ call putchar
/ z* M% | c" ?* c; G5 d" w) Y4 oliang:. ]* T8 i* O$ B
call Continue z- f' Q& j. S$ X
call judge
- @8 e3 m" [* O$ d1 j$ l mov ax,4c00h. `# X2 K! `3 S& ^5 Q. i8 `
int 21h' b* t; e, E: X. |) q
2 g. Z2 n# Q% P
2 I% I' p* \) a. PContinue: enter
2 j3 G8 c$ M7 n: i, s mov dx,offset cont
4 V+ R6 y/ a$ F6 L3 q' A$ h mov ah,9h
# C: s* N Q/ r5 A& M# R0 X; ] int 21h
+ _; i( D, a% M6 A6 T' y2 ? ret ( R# X" I, _) P$ p$ t1 F, C2 I, z
L$ }% E6 M! Kjudge: mov ah,1
7 v0 \5 i3 p2 N; O$ ^ int 21h+ C: m" Y8 Q+ x3 _
or al,100000b" M+ m7 A( }& ?. M. ~3 o# {
cmp al,79h
: A% J6 e1 r+ E. d je clear
! L$ e' s& ^' K! e- b. R$ S& k7 ^ cmp al,6eh
- R$ B- c9 c, e x- T4 t je endj
, q; C) }; ^+ f jmp liang
6 g( ~; n K. J/ H; [ _endj: ret * g, b; I# U6 L. H; |
" W+ k7 O6 t' m; ?clear: mov bx,offset table
' G7 B2 k% Y% _5 W ?7 n mov cx,300+ L p' C3 V7 O- X) A$ s; n% t
zero: mov byte ptr [bx],0; N2 k) t) d( x8 p/ e1 V7 q
inc bx$ u6 x, w( a1 b, A$ w
loop zero
5 V: X8 w$ m: f3 _( } jmp start
* n$ u1 ~. A% S* i- L
8 I' T" r& Q' |7 A! Q7 R4 o: \- Q+ p* C9 N9 P
enterchar: mov ah,1
3 ^' M$ A+ x7 e int 21h- x3 _* G( n( s9 o
mov byte ptr [bx],al
# l2 @2 e' Z" \, ~! B cmp al,139 t0 A; V# T$ n( T
je endchar A5 N8 e6 x( E9 c; `/ s# w. p" A
mov di,1
- R9 ]5 h; Y" Z& m$ t inc bx w# q7 w3 j0 T
jmp enterchar
" f& t3 s$ r! x* Y6 q$ f% x8 D+ A* \: l4 P
endchar: enter 5 u% g$ d7 e) h, G( ^7 g5 A4 D
mov byte ptr [bx],' '
$ H B( R0 E' l; | cmp di,0& i* r, M3 g6 ]( n( G& a
je perp
, m+ n; v. ]! g! H6 i inc si
& |2 |/ o, P. H mov ax,si* A3 m4 Y& x. ^$ k! g
mov dx,21. p$ w1 S: r1 s! k
mul dx) }! p; @4 R5 ] x j
mov di,0
8 W0 J' G9 A+ r' ^. z: E mov bx,ax & @+ H$ u7 l1 t- V5 o2 x( U( j, ^
jmp enterchar
" w- m# a: c8 A2 d- ?* g9 x! M) b: Q3 H
arrange: push si4 m( ^. a: e2 m" v1 x L
push cx 1 z3 K; T9 z" B+ v+ f4 U
mov cx,dx
9 T- D8 h4 R# g2 `0 ?+ I& g mov si,0
. \- H5 r9 J- c g# V mov di,213 m5 R3 B8 k, P, \
" D( f, g0 ?& o! L7 q9 @s1: push cx% V/ A7 X2 r K5 d: z. C7 D* S
mov bx,0
" V# b! V9 n3 z' W mov cx,20% @. |2 j _" U. G8 t/ {
ss1: mov al,table[si+bx]7 a, p, t* b* P" { V3 U
cmp al, table[di+bx]# T B6 \+ D) i5 i: y9 O) r
ja jiao
, C# N, H: I& k- o6 |. V1 ` jb s2& x7 x; v, \, Z9 o3 u
inc bx
9 N0 J! [- Z/ z* Y9 h loop ss18 ~" x/ L# j1 g) V
jmp s2
; A$ z/ {2 t6 I9 E6 i e
7 C# t6 `9 j) C8 h8 vjiao: mov bx,0
$ p6 f' c+ `2 v2 n mov cx,20
+ y' U* ? `) w* L" U6 Tjiao1: mov al,table[si+bx]
( z( |3 |% j; F; V/ j& `: v- N xchg al,table[di+bx]
0 c) E+ _/ E" e2 p9 V mov table[si+bx],al, C) [4 O. V" X' {! W+ ]
inc bx
, x, `4 v9 t, w8 T% m' y/ C loop jiao1
: J7 w2 ?: b) Y h9 V; z
& U0 ~" V. U" }7 Ss2: add si,21+ r: [' |- ~( G. B
add di,21
7 f$ e G7 R9 C. J6 ^& H) t pop cx- K3 f+ v- t4 n5 k' H
loop s1
' d% |# Y6 ~. ~. w2 \, s! h4 L7 B! H' x" Y2 s: H
pop cx
; W; A4 k' A/ A3 M4 ?6 q* Q pop si
7 y) E& {4 Y1 e, R loop arrange* W3 J0 M: ]+ w4 e5 L0 n
ret
2 j9 C+ ^3 n% O& `1 D$ r- l4 t$ u2 ]3 f- s; G$ n# q7 w( x
putchar: mov bx,0$ e& f5 @- l" v* j9 B5 D
mov di,1: T _: X3 w* r `# |- W& g) s4 @
N8 i; Y8 y/ m3 G% s
" t& j$ l- K/ w9 H6 n) L6 L mov cx,si
3 Z( r9 f5 |& _ dput1: push cx. E' m) O1 X0 L! D( e& d
push bx2 W& {* n- ?* [2 z
: y, V' ` f0 H+ v% q1 }+ r enter
# U4 ^9 B w) A5 I0 Y9 P
* k, N4 \( T# B- H% v; ^ mov bl,10
+ v1 B- L8 S! H1 ] mov ax,di
9 d v, ^# y5 B) ~ div bl
3 o& p# o l( \" L( _/ c# j5 | mov bh,ah2 m* ?% i! @, j5 C6 ~9 V1 z7 l
add bh,30h: I- w9 Z' k* q% V* l. W e. m+ ~
add al,30h
3 E( M4 ?8 L" a. v 7 m# h& u% `% N. i: y$ w+ y+ Y* M7 U K
mov dl,al2 {2 T) |; D: M2 r: U
mov ah,2
: _* _) Q2 f$ V1 I' u int 21h
( O0 n w7 w. F" K8 J0 N! f mov dl,bh
+ g3 L0 A" O' [2 L5 |; y mov ah,2
8 E$ S3 }: e) Z6 i& r int 21h
Q2 h/ M p2 d0 x, H, y mov dl,3ah
& r6 C- x: _! | mov ah,2
& X) F Z" Q& o" Z int 21h
7 s7 J: O2 N& E* ~ pop bx
5 ^' i; G6 \+ S& T mov cx,20
4 ?: ]: D8 \' X1 o push bx
6 M! ^$ u9 C4 E/ d6 ^. P" tput2:
% A; n9 A7 Z& n5 g; g9 D mov dl,table[bx]3 ?2 m. y- s! v2 @. J
mov ah,2h$ n0 K, J& Z1 X+ T3 j0 X
int 21h
% `, U5 P& W% Z( h0 P5 ]# N) t$ G 5 @! H; Y5 g* m4 \
inc bx d' R* r; H5 \9 i' W
loop put2% [/ `4 a4 c/ T) t2 P* y; U; [6 f
inc di 9 o3 A: O( _+ Q% M% U* w
pop bx+ K2 H( s% }$ K0 g* @% s
add bx,21
1 a7 x# p8 I' {. k& h7 a' T4 T2 i pop cx
3 N9 R/ k7 a$ h! k. }& }/ F7 t/ t
5 I# A0 e$ I( _& Q* C2 r loop put19 f% |: ?/ f. O1 W0 R% m- B X l1 l% X
ret. L7 b, \4 c9 i& h
- }7 B& c" O- \, j, R% g
prop1: ' t* m# v- N" b
mov dx,offset pro1
' Q' j7 Q2 C' e: [: Q" _9 q mov ah,9h
* Y. F& W; r2 ]( {" { int 21h& [1 o8 l4 Z4 x0 g* g
enter
6 \- o# W* l3 t1 ?2 {# [& @ ret
& I; t, V% L6 {
$ Z- x9 |$ m/ sprop2: enter* d% ]( P; Z+ W5 i- w4 B
mov dx,offset pro2
( L) i( F1 g- p/ [' X mov ah,9h3 j" e6 M+ V. r7 s. g H0 e5 G
int 21h* J ]; E4 ?( G# ]% g
ret
7 M9 ~1 T8 W+ X! a+ m# D9 G
: C- g! C q" jcode ends3 W- G# D% o2 x# p: h% `
end start
* Q3 x2 c0 v* A: G- o
! U, _$ P. D9 ~' I4 I2 }6 c. v: X9 s, a) |' T
|
|