|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
7 H" V6 D: r oenter macro% d) i+ w# _: {* ~
push dx7 d$ n) X1 T: b) u! @1 q( N
push ax
, V6 h% f& F9 |5 R( o! @6 t mov dl,0ah
& V0 c) c2 Q) x- ]3 w2 ?4 B mov ah,2* @ U4 o' Y/ m- t1 U* t/ u1 Y8 ?: O
int 21h# {: p8 k6 o7 Q0 I- Y. s4 a
mov dl,0dh: _7 v" C. K: g
mov ah,2% |* }+ w A/ `4 @2 o
int 21h3 m% P" F. c: e* E
pop ax
8 j- U- i6 S/ |+ k pop dx & ^2 N3 e) j5 T O2 S
endm- k+ y5 o$ M+ T$ d/ G
- K- G! K3 Q9 ?3 u6 M2 G
assume cs:code,ds:data0 N J0 N5 X0 h1 t$ |
data segment8 E3 ]6 }0 s) l4 m
table db 300 dup(0): W' I1 E/ e! o6 e+ l" z( Y" B
pro1 db 13,10,'_________________________________________________',13,10& x, [8 i7 s6 f7 C+ e# R$ v& E
db 'no more than 20 characters English name.',13,10
/ g# P, k( a; P2 h J db 'For example:',0ah,0dh,'liang xin hui',13,10% R: w( c' [. d: q
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,106 l( ?' t5 z) O; z7 L* n4 M
db '.................................................',13,102 v( F1 q' A7 R7 e Y
db 'Please input:',13,10,'$'
' D6 e+ {! h: Apro2 db '.................................................',13,10
. V2 N% n+ x7 T4 q db 'The results are as follows:','$'
# @9 m( `' ^0 J% |( Y7 |# ^; c
cont db '________________________________________________',13,10
6 u/ n% X" w5 e7 i# Q8 j db 'Can You Continue(Y/N):','$'
7 g: i, c1 ], z2 A9 A( v# X% Q+ p& A0 F2 h: @2 M6 o
cp dd 50 dup(0)' s$ r6 k" y7 {& I2 Z
data ends' g' s. \: O/ b) f$ {
. K' Z4 z8 f+ C5 w. ~& Wcode segment$ M2 h& C' ^7 Y2 {( V; G Q
start : mov ax,data
# ^: T8 e3 }5 g, o mov ds,ax e- P+ H) b1 {0 V* X
call prop1
& v# h/ a2 B& M" a: p& a mov bx,offset table
* o' a/ j' A! H: F mov si,0- J# a" h8 J& e" w5 ]
mov di,0
, K c4 ?- g/ m; F/ a6 o ; j0 a( I7 m& ]9 K
, Z3 z* r1 L: R1 F' y
call enterchar! U- q% r& w4 R8 Y/ |
perp:
+ ~! Y8 B4 P* J dec si
# a5 |9 P! g9 @3 y$ m1 J mov dx,si
' X/ r& C8 f+ X* Y, } inc si ! n. a, E1 A8 d4 t% E
mov cx,si) Z6 Z* f- f9 O0 t3 n/ }! ^
call arrange
0 k3 ]1 u3 {" E6 b call prop2) V+ ^0 Y L$ D% n6 R+ K
call putchar5 ?4 j4 `7 E! J- v, Z
liang:: }' u7 h+ c. _, u( E5 m" c
call Continue
3 R. v* Q# H7 v2 x4 {# Y call judge
" r$ k, W- w. l4 \! S2 \! ? mov ax,4c00h- m2 N+ E5 V: [ ~! z+ N
int 21h
5 R* n1 @3 |/ W
& ?4 r, \7 f2 ^
% h [; w7 F0 f, c# Z3 kContinue: enter% T! C' s' r! u6 N9 k/ E5 `2 g
mov dx,offset cont( c0 J! d0 h2 U7 n
mov ah,9h, Z! S7 T# F1 W! O$ l5 T
int 21h. ~9 C: f' A2 ^5 R9 B7 a
ret
' { s# i4 J" {$ Q
+ i) D# c2 N p' d' L3 Xjudge: mov ah,1
f6 G! \/ i$ E4 _ int 21h- e- d* V6 u( h3 t5 O
or al,100000b
h9 f5 Z" E& {! Y cmp al,79h
& w# _0 I5 z, j je clear# V" }9 [% y( g6 D7 c
cmp al,6eh
7 J7 q$ L* I( E2 R4 i; M4 t je endj
a$ m: j7 n: L( V3 I8 m jmp liang- n! r5 @$ o7 V! h n- [4 E3 h3 b P( |
endj: ret # C7 v7 }3 V5 H8 D+ B
% @( M6 L2 u0 J
clear: mov bx,offset table
" z. f! D0 ?2 t# {+ r8 x mov cx,300
8 F# D( w3 f' v; Xzero: mov byte ptr [bx],0
* G( i( F/ Y* ^2 E9 j# \* L& q inc bx% P/ A$ V- \$ K
loop zero1 x2 C: h k- n4 p$ \- R
jmp start2 {0 Y6 e' l8 d* q6 @! v
4 s8 C2 E4 E# }( ^& b3 l
& L) r. ~ o9 j* M$ v# j
enterchar: mov ah,13 q% _' ]$ _, F. f$ T
int 21h! B3 L: I5 R- ~$ p! w6 A
mov byte ptr [bx],al 4 M% U* o: K7 x+ X% {
cmp al,13
; Z4 y" j7 C) I+ Y je endchar 3 u' |1 F \2 N) Y. R7 `
mov di,11 J) P! {& ~% e( l7 x/ a
inc bx" ?- E8 O& ]" N% f+ Z/ N+ F
jmp enterchar# s$ q2 d: \3 ]
2 w3 a6 p* R, x% [+ P3 ]7 d
endchar: enter " K0 t- H" D; S1 H: h h3 X/ ?
mov byte ptr [bx],' '
: f, r* b6 Y+ s2 f7 k cmp di,0
! b! ~4 t' W0 d# V3 f) n je perp9 r3 k: J9 u9 \' W! p: @/ L& {% e
inc si
/ B: U$ u {' ~ mov ax,si. }* E1 [# R7 p( \8 Q! R$ v- i4 r
mov dx,21- k& T, `# c9 B* a1 F$ r. e
mul dx3 t0 M/ o! P/ X1 v
mov di,0
6 {: m3 `! i4 P# }5 g5 O mov bx,ax
. f& [$ e2 U* d; v: `" U1 [ jmp enterchar# e! ~/ l) T" H' d) g) p$ j
/ ~& L& N, j; Q N$ ~8 p
arrange: push si
* P: z* a$ m. n* W# K push cx
$ Z, o" J% t4 s. Z \$ b mov cx,dx
+ D$ D- K4 ?( t+ b9 ^4 W mov si,09 n) ~7 p3 d4 X( z l5 n) ?& m
mov di,219 y: L9 c8 A+ n% h2 P
4 B% K, U6 [2 q: P7 `6 g( P/ h% j" ]; {
s1: push cx
1 S. ~7 W, B t mov bx,0
1 I4 Y+ E* o; {8 ]0 W& y& p mov cx,20' B( _1 S/ X5 l
ss1: mov al,table[si+bx]% P. [$ r' M& @0 d+ {
cmp al, table[di+bx]
6 r7 n6 `6 q1 W4 t ja jiao9 R7 p. ?. ]8 ]2 ]- y% v
jb s2
- E, j( X% `0 R9 |' q inc bx
9 b1 p) o4 f7 x* n; _- ^/ L5 ~ loop ss1: Z7 `3 V: o4 x) D
jmp s2
! F+ C |- B ]6 [0 X5 x# I# w) T9 t$ x8 B
jiao: mov bx,0
3 @& q2 H/ D& T3 I2 c mov cx,20
0 j; T$ E) z0 q: R0 C! p9 N3 |jiao1: mov al,table[si+bx]
6 Q! Y2 J3 p/ x' ~' k1 y: L/ h xchg al,table[di+bx]& \2 F& l+ F% r/ h( t
mov table[si+bx],al! o# x7 y" K4 P" u5 V4 }( F
inc bx
( F3 n: c. x/ Q. [" b) e" a" l loop jiao1- R, L6 e b( [. o+ H }& O& Z
5 q. n3 k: Z. u) ]% xs2: add si,21
" b8 \" j' W% Y add di,21
, t8 i7 K9 o+ j8 g2 H5 e pop cx
: O* B$ g: P, v- W$ c9 z; }; Q+ U" L loop s1/ V2 X+ ]" c S. o5 J1 @
% `& ]2 _+ _# q
pop cx
2 U* W1 \" i2 s3 K; F pop si
0 w9 N c' D# S+ f9 } loop arrange
; W! _7 C: E2 }4 k5 V& ~5 \ ret
! E, t9 _9 w, E3 T& l) j# S
- D" @( `9 W! [, G0 D/ Bputchar: mov bx,0
) K& S8 v( d. ~ mov di,1
. t7 p) F2 l7 h& Q3 L 1 G2 ?7 W, F( ^+ y& j2 j: r. `. K
' X2 }( W, I- H5 A2 \" s0 h
mov cx,si
% J, c! r% @4 Eput1: push cx
: Y1 w4 M# K, X! _4 s+ \ push bx
7 y6 c4 H& ^6 Q) o0 `4 ]* O5 P . M" _8 ?4 ^- G9 U( a
enter2 }) p/ \" ^% C
0 `/ d6 S. Y* V% @) E) b
mov bl,10
4 P% H" J p% D) o$ ? mov ax,di
3 @" o" z; @. L1 z& N div bl
6 H( u7 Y2 w0 A5 ~ mov bh,ah+ _3 r2 Z- @# E. W7 ]' e
add bh,30h" v6 @# q# _: \
add al,30h
% p6 T- ?0 s) j( N
# P) }1 C2 i. w" r* a% h9 r( F' A mov dl,al
+ e# \: w" n1 R8 z mov ah,2 }$ R$ H! A2 W, [* B. a' @3 W
int 21h' D; e6 M8 Q8 z$ W/ k% x7 c2 m* }
mov dl,bh3 r0 _+ m" `( w: Z' Q4 b
mov ah,2% p9 q' z3 G4 W2 L, y
int 21h
8 t( K I" T& P5 a: a# \, I) j9 v mov dl,3ah$ l4 |9 q5 |2 S- M& }
mov ah,2
% X( y+ F' F% n1 x+ `8 y2 Q int 21h/ R$ e# t1 ]2 I" B# Y
pop bx 5 y# y2 Z$ y: d7 r4 h
mov cx,20
3 ~ `7 T# X/ e push bx
# V: ^1 ^4 ?, J* Z3 _put2: # l4 i0 V) Q+ ^; G: M
mov dl,table[bx]0 h" G9 V% {* |& a- }$ y
mov ah,2h
# T! V0 @. T8 m5 z- b& ~ int 21h
$ w; }7 `, Y: C f . t' u+ W+ U- f# u
inc bx
' l, g: ]9 Q9 V5 K loop put2 l' Z, x% y- Y; V! g% r- J
inc di
7 c( d+ v$ }8 _3 W3 j pop bx
+ n' o2 l1 n1 O! y9 p+ o) A5 Z add bx,21. u1 S4 ]9 O" }0 ?
pop cx
, ^0 r- x8 p: Z ( m6 N) \, ~- O+ W2 ]% |& [! O/ z) D
loop put1
- X; y2 U6 g7 Z8 {- x- W# g$ k' T ret+ W/ \4 u/ b! u4 A5 P
8 j7 ^- |- {2 @( Z" L3 H( Oprop1:
/ Q! _8 F9 Q2 ]) ?$ C/ v4 j mov dx,offset pro1: |, M* @1 |0 R( d* V! t
mov ah,9h" ^8 M' R4 S( p- W- \9 r' b% j5 {6 J" Q
int 21h; q, M' G0 m5 s* i( `0 u! G
enter
$ Y" _, d* K: U% D, P ret6 X) }4 P5 ?. d
* h K: w3 L# h8 Wprop2: enter
& ]0 U& Y$ a, G mov dx,offset pro2/ s0 O( E% S$ b0 _2 T
mov ah,9h- ^. h2 h1 y/ ]3 L5 T, J: D2 _
int 21h& G8 r; F, X0 F& T4 Y0 Q
ret
' U5 }& b6 g% f; D# n
$ e$ }* ~4 U/ Tcode ends
* P2 K! N- K+ L. E+ J3 j2 ~# m! Hend start7 [6 k& P$ O% x$ Y+ Q
5 H% d$ V' y0 ?' u; B! c
: h4 F2 _+ i: n0 v7 d |
|