|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧5 [; R% c; g: y4 y5 T
enter macro
& P0 K! n2 F2 ~, z push dx+ `' s Q7 D9 T3 P7 p
push ax
8 L" r. U+ g/ y* x! x) z mov dl,0ah
( R7 i; Y' P: ]3 B2 R mov ah,2
+ B5 b( q$ Q Q int 21h
8 W/ m9 l3 d9 [7 U( B2 _ mov dl,0dh
& P# T P0 d5 K; Y mov ah,2: b. S8 U8 ?- |$ |
int 21h4 Z( f4 r( R x5 y7 G" R
pop ax/ P/ F1 f/ r, c$ ]5 U: a
pop dx - s3 j l: y2 ^6 T
endm/ S: e4 ~/ C% ]3 {# k2 D* T# i
& U. \) M8 a$ J5 P. {- a
assume cs:code,ds:data
' o* F9 x8 M$ ]data segment8 t% M- }; D: X& W l& X
table db 300 dup(0)4 X! o$ I3 V# z0 j& g, i! `& D
pro1 db 13,10,'_________________________________________________',13,106 {8 X* c: Q& e& G& b
db 'no more than 20 characters English name.',13,10! t: i4 X7 c+ Y0 J+ |7 w
db 'For example:',0ah,0dh,'liang xin hui',13,10
+ g/ R1 T, |- @! m! U& x6 x db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,105 |3 |$ l d$ h& P# s4 c! g6 N
db '.................................................',13,10
z! d' e& m& \. j db 'Please input:',13,10,'$'5 S( X6 y7 f, @5 h# Z* r' [
pro2 db '.................................................',13,104 k" c8 o+ ^: ?7 B0 k4 G, }
db 'The results are as follows:','$' ?' h9 E' J0 e- b' Q' ^
m4 v5 R- O1 n( e4 W7 m& a3 Wcont db '________________________________________________',13,10) ?; B: f1 S r0 Y' B
db 'Can You Continue(Y/N):','$'' ~, i" \& e$ x: Q5 [6 M
8 H+ I- H2 V. H' F, o
cp dd 50 dup(0)
: ?4 b5 S* d# }, a4 ?7 p8 Zdata ends
9 t) M+ q' z+ ?! z6 D+ P
& s: F5 t' l" A! R6 X$ k. }code segment
; o( Y, F5 k% istart : mov ax,data0 [% H S( d! R8 m( y* @$ Q
mov ds,ax7 w& H' C' o- o) W6 ~
call prop1
, @6 r$ M. w, v+ A mov bx,offset table
2 T$ Y4 J, z4 m9 m- k mov si,0
1 r: _) I+ L! B& P1 g- R mov di,0
5 [8 I, ?" s1 a9 R* S7 ^ @' W5 w ' n, E- |: t9 h6 l
0 ~' O7 w+ J0 N
call enterchar
. \- \& f- \; s, d- Y2 F% @* \perp:
6 s2 g. O( I, C1 N! [& L/ p dec si D8 r) v; b3 N0 N1 ~, s9 I
mov dx,si5 S# `; m$ h. k7 G" C0 J
inc si ) t" \$ N, Q }. V& O( d
mov cx,si- B; S5 B6 l8 B
call arrange9 T4 b" V3 f: }/ e
call prop28 r; l- C: j) T. ^% | V. h
call putchar
3 b! f4 W% r* T6 w/ fliang:' a# N5 `7 i; g1 c4 D3 E
call Continue
& }, w( N9 B" L# F call judge
- a9 v% ~7 g1 w mov ax,4c00h
. K# Y y" D" N9 i int 21h
8 U" z% T2 a m8 e+ `/ j, {
( }% R( L4 i: t& i L' v6 ]
0 g R4 `' [9 n- Q2 \ E2 ^Continue: enter
+ t' Z, I/ Q5 _2 T mov dx,offset cont4 O* [- N: O! G- |. s3 O
mov ah,9h( a8 L% U4 v, p+ b' o* t9 _( k
int 21h
) }2 ?# \7 h, R0 k$ j: J, ~+ B ret
4 t* ?" U4 | _* ^
3 x/ E) ~/ C! p" ?6 U+ z; Jjudge: mov ah,16 o1 C& t1 A0 @3 }+ ]1 I
int 21h
: D/ L0 q! x5 Z* I7 h or al,100000b+ c4 N; H; }: b6 E+ O
cmp al,79h3 }% |1 f+ c' b) H
je clear7 Q& [9 z% {; g/ A2 B4 S F
cmp al,6eh
' L: d; Q1 Y- I( Y+ k. W2 d je endj1 @2 P4 ]8 B% J& R: k0 `" d5 O( x
jmp liang
2 [9 f7 g8 e! L. Xendj: ret
5 @* _5 {. @; P. \5 u+ J $ H2 b7 T, o+ w9 V' [ c8 U- M8 Q% _
clear: mov bx,offset table
$ ?3 F3 j( K. R# U1 r( v mov cx,300
1 U( A# {. L4 `zero: mov byte ptr [bx],0
( ], ~# a2 V, @. W6 @" }+ i inc bx
" s$ g2 B! I& s6 w, ^: j$ ~ loop zero+ D5 ^$ ]. \. M% v$ e, g5 c a
jmp start
5 i9 c) o7 M! _1 z G E
/ B5 f5 N0 U& V. V; W, n+ g* W
enterchar: mov ah,1. u' h7 @/ |4 _. s* {1 \) O0 @; f% u) `
int 21h9 z! r' A% g0 G3 d
mov byte ptr [bx],al
+ @; ~! J) _/ m( l3 V/ J cmp al,13
, ]* C- o3 C# [ je endchar
! f& K* u4 q5 {4 S' B( N2 o2 I1 k mov di,1% N: C. \/ a e) C4 m8 h7 ^% u
inc bx
$ Z2 ]4 t! M4 g# l3 z, ^; h jmp enterchar, p' \" b, ? f2 K6 [1 x* {
`( D6 @% N9 E4 `" `endchar: enter " y( v# q7 d: o7 U1 a8 r
mov byte ptr [bx],' '' ~+ `$ b' C; h+ m4 e4 ?3 D
cmp di,0
6 ^) J ^0 m. |# c1 ~ je perp8 t% M/ g) G$ K) K5 O+ z% A
inc si9 s/ X- z9 b& [! V+ A6 C8 T
mov ax,si
+ X4 X2 o8 ~ ~" C' A mov dx,21
{* o' b+ n& f; N5 j7 L mul dx/ |+ C. b4 H( t J
mov di,0- n: ?: @2 d8 A# N. @+ T
mov bx,ax
9 P7 c3 \. q0 N: ?) d4 l jmp enterchar
# K% ~2 P( O0 c5 y- ?- i
. S" e1 y/ m; O" E' b5 N8 Earrange: push si
+ v; }( Z4 I! U- { push cx
) V g/ N. J Q1 S+ W1 e7 f2 v mov cx,dx
; Q2 D1 s, l! j- g: J* P mov si,0" r, X& g* U- I$ Q
mov di,21" R3 s. J$ `. L! X2 b- K
( S3 B, a$ ^& j" O! ^: E7 n7 b
s1: push cx" l$ h' `' F/ G7 ^' ?/ L* h
mov bx,0+ {9 U, |* o" l5 y
mov cx,20
( }1 k: G4 j) O; m7 u6 Sss1: mov al,table[si+bx]/ \ h1 a$ T. K9 I, h3 r$ Q
cmp al, table[di+bx]4 L9 }/ y7 M3 D7 u1 N F' r
ja jiao5 O& a5 t0 `" [; G' i) }7 k) Q
jb s2
0 T! i, B7 e! y% y5 v7 p7 m9 k6 Q inc bx) Y$ \* ^. Z3 w
loop ss1
6 H2 {* v' x u4 z8 @! Y jmp s2$ K, A7 M0 N* T; p% e# [ M
* u! C( O: ]6 @% `" o% W
jiao: mov bx,0
: S. U9 U x5 F7 f O% s. g) S mov cx,20
( Z; X' z Z/ {6 z; Mjiao1: mov al,table[si+bx]- n( e, Q& T, Q7 o
xchg al,table[di+bx]& m0 A. x% p! ?3 N1 s1 Y2 u8 ^
mov table[si+bx],al& a; l. T( e8 @; l5 B6 Y
inc bx
5 ]$ w5 J4 m2 V+ r5 d% L loop jiao1 D# K3 Y# U0 | W! N2 x# B! t0 T# @
7 q: l9 e+ [# |s2: add si,21
& I" ]+ y$ f) Y; B. T: T add di,21
, L% i; v2 @9 w( R3 O+ O" w3 E0 e pop cx
' c3 _& _1 {0 l! `. J loop s1
- ]: d- G- d0 q+ E/ d$ @* w6 P1 v5 {) v8 _
pop cx) s( ~) u* J3 N$ _3 {* h7 j! \
pop si
1 Y, G' F% r& W loop arrange
& }6 ^% E' r* V+ R# }" E ret+ ]; @% q5 L1 B$ n* U3 f
% Z& C: A1 ]' d% t( V9 n
putchar: mov bx,0
: c _2 l: k7 ?) g mov di,1& ~& e4 ~' G" @7 J
9 ?6 v% |' q2 i5 ^
8 t9 V& X4 _) y mov cx,si2 q# U& n% P9 {+ R+ P5 s3 Q
put1: push cx
1 z+ B7 _9 y$ h6 E1 o6 _ push bx" Y3 U! B* b. X
/ b. z1 N& Q1 I$ H$ P enter
. A$ s2 m0 `$ [" a
5 y3 O( `6 Q, T& ~- ~ mov bl,10, P9 m b6 E( y" l$ b
mov ax,di
( g) Y: N4 D B0 F% A; j* r div bl
3 L/ E) |8 {( h mov bh,ah. g! e: |" S) F2 {! C" [3 h8 _0 ~
add bh,30h- a' E1 F& a) w5 l
add al,30h: d/ j+ F0 h; D6 ^7 ~
5 B# i* h( E+ q mov dl,al4 S: [: }' I, C( b) H+ @. f
mov ah,2
% h; M+ }; p6 G+ j int 21h
6 @3 `' T4 ^; a% D2 x- q3 C mov dl,bh
, X7 g {" l3 r mov ah,2+ g1 Z. L# }3 B) c% m0 M
int 21h
5 J0 L8 Z2 y. m9 }8 X3 T5 e mov dl,3ah
2 ^8 k# {0 `1 Q4 [5 A mov ah,2# [7 @( t1 O- ~& t- f1 F
int 21h
, S) @7 ?. ^; S. A0 W pop bx ( |0 ~1 }. y7 U
mov cx,20: X% o3 t- c, s1 |
push bx
# T* J( {8 b4 E3 zput2: 1 L5 j" S: r+ }' o! z
mov dl,table[bx]7 P! q4 ~3 X9 j' ^: f) w
mov ah,2h
8 A8 T4 L2 V0 }; f+ o int 21h
9 O6 y9 R: z0 {! a" Q2 ` 6 ]2 z5 F4 H5 L2 l! n" v) ^1 i$ R
inc bx
4 t9 F% ` z P9 H8 s% ^ loop put2
* _* x: X- O# P# i7 W- Q inc di
& n& I6 q! a- O+ f- M pop bx
& ^, f8 |; R. ~( l* m# Q; B add bx,21# n0 K) x. I& P1 \
pop cx
- h$ D& z& E; V/ @: m& j) u
/ A+ t. [7 m2 n loop put1+ X( L9 T$ L6 h
ret
- Z5 f' F; `" V3 S# I3 K3 M
; Q& t" N! l/ V% Pprop1:
* z# {- F9 x# ?. y mov dx,offset pro1
; P; H: g4 n7 {9 l3 \6 o" n mov ah,9h
$ |# b, r# A3 }: |6 [ int 21h
% F: e" @& m: C! g$ I% j3 b6 C) a' } enter
! Q! ] c% ?9 I* x& w6 H% K ret! w% W5 u* b1 i. V0 r
; y% ?/ m$ K$ n4 b2 ?9 t; j; Bprop2: enter
7 }8 I5 b+ E. G' S' s6 W, q mov dx,offset pro29 q1 T. `) ?7 ?6 M2 ^
mov ah,9h
3 C, }1 `9 n; Y w3 \% S, a int 21h
& ^2 O$ @- d6 \/ ]1 \: t ret
( D4 @+ g, N* ^, L) z+ S
; ?! p( ^: h p" P4 c& }$ Xcode ends
9 W" `3 t) t/ k5 Q5 z$ z+ Eend start
0 x! S9 e6 s( `5 r* E1 b$ t
) k2 H4 Q2 Q# ?$ M: C% }: t4 p$ X. n7 A2 m& J
|
|