|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
$ e U" W: ]. {! }0 ?) Z0 g4 d/ tenter macro
2 K5 V2 R1 k+ Y4 T/ W push dx
" t& G% O& q+ } push ax
- \4 }* H% B# m2 G; a# q mov dl,0ah
: d1 b: @. R3 l/ i) p mov ah,23 U$ q O! B0 R) B' j5 e
int 21h9 V/ C) c X" e( |- _' b" N5 `
mov dl,0dh
$ v2 U$ T9 M* d6 U3 w+ R mov ah,2
6 i5 y* h ^3 r7 P/ i' W. y int 21h
% a' h5 F! H T+ R2 T1 y' C pop ax$ q) t" Y2 ^/ F- o
pop dx 9 v7 n% z+ C/ E! Q/ _# [) W. T" x+ a
endm2 o& ]: |' A1 z. k
0 d( J- f+ A: M# k$ Q- ^7 p( B; i
assume cs:code,ds:data* N- _9 c) g5 n# ]0 e5 B
data segment! U& Y+ D1 {# a0 r1 X( [: S
table db 300 dup(0)
( [, o7 }' p# V7 H1 h ~pro1 db 13,10,'_________________________________________________',13,10
; t, z+ V- `9 E2 K db 'no more than 20 characters English name.',13,10, K+ Z, Q {! U
db 'For example:',0ah,0dh,'liang xin hui',13,10
7 v1 ` k0 a+ ]) \* _6 e+ G# u0 F db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10$ Q0 k( ^$ I: r2 w
db '.................................................',13,10; }7 E; D$ u7 D+ G: r/ ^
db 'Please input:',13,10,'$'
7 o/ K9 ~, [; D0 @& C5 |- upro2 db '.................................................',13,10
7 S4 U% q, Q' G5 t0 B6 \ db 'The results are as follows:','$'. N, c( m1 B& Q! c8 ^1 t
* {& x" x2 l" `* D! l8 M
cont db '________________________________________________',13,10
; @5 H7 G% w& {: c( ] db 'Can You Continue(Y/N):','$'
U; L& e7 c1 u; ?
( z' \, H) k0 ^: jcp dd 50 dup(0)
% n0 d# p' u- s8 D3 Wdata ends! `8 o& P- k1 ]6 k
) Q5 d/ Z. u% h$ U1 A3 v
code segment( r6 a' _) P, V5 T2 C$ B# o9 _/ m
start : mov ax,data
4 T# t: n h& G mov ds,ax! ]( Q5 c0 Z' p3 J
call prop10 p8 D6 p# b! W
mov bx,offset table
7 s+ A4 t" {, u4 h, E8 T mov si,02 B0 O2 A4 m i4 k6 F* e; k
mov di,0
5 S ^( \" h# i2 O5 E. O' o C
+ [9 ^# P; }" U- Y/ f" X; U; s
) a: j$ }7 L. P& U) I/ y call enterchar
; g' v/ Q$ c, c% vperp:
. s6 L2 X: e( d5 t dec si# @" N1 E1 y6 n9 c" N* r) `* _( K7 i
mov dx,si; b+ U9 y* w' a* z5 e- b6 N
inc si
/ }0 ] [" b7 q, Z; D5 ^' x mov cx,si
0 r9 M( J* O9 z! k) ?, ~ call arrange8 P% a2 {" z8 b
call prop2$ m8 R" I' ]9 j Z4 p' W
call putchar+ O% h% q4 M7 {7 P, S
liang:
) \7 `* {+ F% | call Continue
0 y" P' h! l# s- O% e call judge* R# A! c/ A' V' D( d
mov ax,4c00h
2 d# J, p- v( ^# A int 21h2 U Q- @8 v0 {) E# c) U% V. g
* \1 l! _. T& i) l7 M5 }
. y1 L- r/ Y5 EContinue: enter
( b! J) D% I# B+ q% v# d2 p6 s mov dx,offset cont
9 r9 [, g u8 ?5 [% `) [ mov ah,9h9 k" J, m' c- x4 |9 A% T. P
int 21h
' Y0 H0 D/ k/ r1 b. p% U" Y ret 5 h5 p3 `$ ^6 D4 ]: s
4 N9 h( f! C' e3 _, _0 }% O4 u0 ajudge: mov ah,1' j( T# D" [3 U4 a, q
int 21h0 X: J9 o9 a9 Y- p2 H# ?9 I5 b% `
or al,100000b8 v9 i+ t6 u- `# h/ `
cmp al,79h
0 J6 j$ _3 k$ u. V je clear
) {2 E+ I) R: X5 L% k0 Q cmp al,6eh m) i1 R4 ?) H$ `* U6 U- _; k; Y
je endj
, J' W. L; {0 g2 E* E9 o jmp liang
! R- u r4 Q; _5 k+ Rendj: ret
( S0 Z( V1 y$ g$ x/ ^ : q6 M# u1 \, ?9 |2 M- M/ N
clear: mov bx,offset table
3 t# L5 V: s% t- p2 Y: v$ z: x7 U mov cx,300
% R+ e1 c9 X; {! F* F* [zero: mov byte ptr [bx],0' `5 u; V4 V7 l. ?
inc bx' K% @) x7 w5 C; N5 g2 b
loop zero
$ L4 t2 L/ m4 @/ _7 W2 ?/ @$ @- _ jmp start
" s$ C, d$ |9 {0 \
1 R& n7 K" B4 W6 y# Z3 p9 K/ g0 } F1 Q5 t# g
enterchar: mov ah,1
* @' c5 L4 L: F3 W: P; I" C8 O# x int 21h; l- |$ x7 k4 T( d, U9 j
mov byte ptr [bx],al " S; Q- q! L `+ s; _
cmp al,134 S! d, s: v3 k, D
je endchar " z7 X5 C2 w) P
mov di,1
, \9 y/ _9 {) \( v4 J" T J1 d7 T# J inc bx
+ m& J1 t' N Q! Z$ b jmp enterchar
" K$ |9 a+ T- A+ W0 g. h2 b- M' n& K: `0 ]7 \
endchar: enter 6 X1 G A! y J% n4 h4 }
mov byte ptr [bx],' '
/ N) V4 J5 t c+ o& J; T cmp di,08 O- v3 _" r1 J1 i4 Y
je perp! t( y/ i ?; K8 F& @
inc si
0 F0 X! Y) B) q+ [) X mov ax,si; m' o) d' u# l3 f4 i9 o% L* P( ?/ P
mov dx,21) g6 D4 K) S- Q" D0 q/ L3 ?: p. s
mul dx% `/ L8 l8 m. [1 I# ?8 e3 B2 S- R
mov di,00 d4 O' y& b/ C6 C' u z4 a
mov bx,ax
3 k) }# w- k9 x8 n( C jmp enterchar
4 Y7 s: R/ F+ G3 F: o9 M i0 O6 @2 e0 m1 v/ v0 i* D- X v7 r
arrange: push si
! ~" z, d' x! O2 r; ?) R push cx - v; i. x8 e+ F' I
mov cx,dx
4 k& _5 w; H$ C6 k mov si,04 K N; c: _) f
mov di,21
" T b5 f. Y" _4 M4 M( |/ f5 m) G
s1: push cx0 `" C9 m" L5 [: ^6 N7 c& Y7 ?
mov bx,0: T% m0 E5 [: o1 z
mov cx,20
; v6 l$ k, a: U7 O: z" l3 y, Zss1: mov al,table[si+bx]+ [2 g5 ^* F/ B! x! y8 Q q7 n
cmp al, table[di+bx]
/ x: R4 {4 q" i4 j: e ja jiao2 v2 D0 G1 J# n4 [- {# B6 x6 `
jb s2
- h6 R1 Z# v3 C' R+ i& K inc bx
2 r) n4 D. t2 q; @* m) j loop ss1
$ `0 C @# {, e9 S$ r jmp s2
+ f- k4 s [' @9 o9 \$ r z: ^. w
jiao: mov bx,0% O& x9 ?2 V- m: {: J
mov cx,20/ i: V+ M( T, D7 ?& z
jiao1: mov al,table[si+bx]
. x/ k* V5 O) ]- W5 A C* e xchg al,table[di+bx]. N# U' A* i+ u. ?: @
mov table[si+bx],al) I# m9 `- e1 V
inc bx
* j( q% ~' E& U loop jiao1
+ n5 ` Z% b( i( e% V
9 z! b) C9 [# l* A1 K9 M% rs2: add si,21. _/ a! z8 R% b8 r' Z+ ]9 r1 i
add di,21' M0 y u4 ]- h# c
pop cx
, b4 ?- i8 R8 d; j+ F# p" @ loop s1 y0 E: s3 @: c5 Z! T: h
4 O- m/ r& I( t1 s. q* T9 d; U pop cx
* ` B4 h$ F/ I0 [0 p' c pop si2 ^1 w+ U$ \8 q3 Y* h4 t" S: H0 D" H
loop arrange
2 Z( V6 X8 |! k& ]6 t% n- ^ ret' }+ P& a0 M$ G) ^* P W, k
. j# ]% p. J: L/ [" Rputchar: mov bx,0
0 T& a; L1 R) ]( S+ e mov di,12 T; z) @* U3 v0 J1 ~
6 h3 g, G( F6 h$ v* M1 ~
9 B5 T: y+ b4 J+ b3 I mov cx,si; ]+ O0 i- P1 ~, y3 V
put1: push cx
' x( B, j( z8 p' o push bx% L! @. C5 N9 u& ^& E+ |4 W
4 D& e8 I1 x* B: l" s enter
0 R8 B, ~: ]; z0 o5 H 0 m r. D. a8 l8 {$ w6 q7 C! M3 B
mov bl,10
3 v3 w2 U4 K1 J' d' e mov ax,di1 e* D$ ^& D& k k
div bl
) n, @) ^- a9 d. w: q mov bh,ah
. s! t/ f w1 ^0 h) X add bh,30h0 p+ `. O4 \$ n4 x8 ]# |6 e
add al,30h
' N h2 b- v) d ) I7 R. R) U; N7 H
mov dl,al: t1 }8 g; d: U! [4 N- j
mov ah,2
) A3 M5 a# K3 q0 A( T) c& J int 21h7 {2 K* ~0 }/ { M9 @
mov dl,bh
2 t1 W- A- S, Q mov ah,2
6 y8 v$ V- d% ~9 e D2 M int 21h. A2 m& N" Y0 }: `
mov dl,3ah& l6 M+ D3 v0 A3 J2 L$ v* \
mov ah,2
2 y; D- q- O. [" p7 `) E; H! u int 21h& z& P7 }) O, y* z/ ^, M
pop bx
6 o2 X; V: f8 Z Z mov cx,20
1 p' Y3 b+ c/ M& f" D \9 Z push bx. d* S5 m- ~7 ~7 A/ x2 J
put2: * B6 ?$ h8 D+ m" U4 M$ N9 c
mov dl,table[bx]' s. }& b) p N* a) N) n$ w' Z0 S
mov ah,2h1 B. I1 _# x, a1 s6 p0 l) ?3 K
int 21h
: q9 ?2 h+ q1 T9 G! _ " W" E2 Z$ p$ C, J5 ]% c
inc bx
) t/ U: X2 G E+ z( C" y) ^ loop put2
* V* ]: o! R/ Y/ y1 `& x inc di
+ s. [7 h4 S! h9 x7 ~ D# D8 P pop bx
) ~2 Z9 ~' B( J8 s add bx,21
) h! e- d; {- @# {# e$ k! B0 Q+ B pop cx
! K3 F* q2 Q! z, C9 | 0 y! _1 v" _! H9 l
loop put1
- j" ~3 X- ?5 }# V9 T( w2 |7 x; M ret0 E; ^/ E: E8 {) A
; @+ G8 j4 {0 ]- U( p: C* {* Bprop1: / T6 _7 ^4 u2 ^- L0 I0 V7 M
mov dx,offset pro16 w& Z0 L; ?9 {' @6 e' Y
mov ah,9h1 F' z# m& Y6 ]$ d4 u
int 21h% O: d" [6 Z U/ R/ k( F
enter . @% _1 C1 |3 C; P5 G N
ret
+ z, n ~( z. E- s, X
K& I. m. k0 Z) lprop2: enter8 `: x7 p; P6 Q# g; T" _6 m
mov dx,offset pro27 d" W. c7 j' v8 m7 j5 h
mov ah,9h. V, D, u- c% ~4 J e
int 21h
9 C! R' T8 m% P7 f* f$ g; G6 q# `; I q ret* o% t- Y- D% K' v
0 u8 M" \& P0 \# k5 {; k- \8 \
code ends
" | u3 ?' N0 ~( w! w v* Kend start3 {" |" _5 W& }1 i
2 b* ^; n& c' _7 g
- h( Z$ ^1 A5 Q$ u7 j+ g |
|