|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧: D2 r7 {6 ~& R
enter macro4 F! q( q( o1 u! L: [) F. z" h
push dx* h' y* r6 O7 y \7 P/ M9 h
push ax V0 I5 V: c# s$ r/ b2 y0 N4 I
mov dl,0ah( ~% h5 c+ u) `6 M) d4 \8 W
mov ah,2
' p) r) m7 w8 n& l3 }8 |9 @ int 21h
4 L) a9 s6 m H4 ^8 c mov dl,0dh
# p! L/ X' j# b+ x mov ah,2
/ S, e4 R$ L# j& k9 p3 `5 F) ~7 C int 21h K$ t4 ~0 `& g2 {, \) t, X
pop ax
7 r0 e1 P3 L* X) S pop dx
$ s' L8 F7 w! Q8 q3 P& Nendm2 S: L9 @; Z* ^* y* u
' E' A7 Z, Z2 c8 T% O
assume cs:code,ds:data
3 C6 I% n/ u5 L' R1 j# ?data segment
: R: ^% ^6 t) ~, r+ d0 Dtable db 300 dup(0)
/ V( [! j2 o M- F( Npro1 db 13,10,'_________________________________________________',13,10
" z \+ O% ?8 b. h% W/ V3 |8 T7 a+ c2 V db 'no more than 20 characters English name.',13,10
. Y3 b. S1 b: r db 'For example:',0ah,0dh,'liang xin hui',13,108 t. [# a# S' M% i( A7 d5 H' b
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10) \6 } [5 A6 ~# D c& u
db '.................................................',13,103 H& ~+ ?1 P6 f4 _8 u: I7 {
db 'Please input:',13,10,'$'# l; \* U$ R) R8 O8 [
pro2 db '.................................................',13,109 \* E: y& S$ f. z. `; F" S9 v- E
db 'The results are as follows:','$'
3 D, M5 m* z& H/ O
( H4 g& C" {+ y2 v+ `, s) Rcont db '________________________________________________',13,10
- D6 ^( ]" J: u1 s: X# U db 'Can You Continue(Y/N):','$'
/ J& q; V2 U0 s8 z6 {; g: W1 X8 i, U4 [: @+ T4 l
cp dd 50 dup(0)
/ G$ E! |& q$ @. Zdata ends
4 k0 W }# O9 g0 y* _/ M
; p, Z7 z( p8 I! L3 k5 L4 Ucode segment. l! s9 s; n$ e' O) g
start : mov ax,data2 M9 K6 R# E( c1 @/ P
mov ds,ax- _. Z4 l4 I- d) v
call prop16 g9 z9 o* p8 `" ^7 G. {9 ^
mov bx,offset table. U( Z1 ]' H6 _5 { c3 [6 H
mov si,02 X Y! B8 ?* v# r' }+ A6 B I& d5 o
mov di,01 S- z' X, c' B/ w5 h- X# w5 B* `
! g3 z$ \3 \) `. z. o
" l" d. E5 q6 X: v
call enterchar
# L$ ~( ]5 M: A/ W4 }0 {) g9 P! eperp:
, g5 [2 U$ j, ^7 q1 o+ h; | dec si
' G3 O) a2 y+ c( g) `5 W$ ?+ b h mov dx,si
# C. F3 r) H- F4 |9 Y- v4 Y6 l inc si
$ t* }3 R+ |/ A7 F7 m2 S x mov cx,si
, {. d( s6 M/ A+ e call arrange2 x3 x: D" G5 ?& H9 F6 H( {, [
call prop2/ y1 I- k8 Y1 f
call putchar" k) O$ p/ \* u" [! r, A
liang:0 @5 ~; y8 w$ ]- y2 @: u
call Continue
* U" d0 {* p# ^& h call judge) \. v! o6 Q/ ^2 o6 Z1 @# c) T
mov ax,4c00h1 {' k9 i1 w4 V5 S( g4 E& A
int 21h
9 O, ^" h( B) o$ A* r$ T [; `+ ?" H" v5 \3 @, j3 \
% y; i S$ m2 Z+ H$ c8 b$ B% l1 RContinue: enter
c- N" B* Q& D3 |- S J% Q" G mov dx,offset cont
1 L* ?2 e) F( T' A1 v- g mov ah,9h0 [+ l1 y/ Z) [, Q, A
int 21h
- w1 R5 J: z8 Q2 ^ ret
- t3 k- e) ^$ R9 z/ u
+ i* D; L: N# V1 ~1 s" V- Gjudge: mov ah,1
+ b# g2 T/ p0 D' u8 o int 21h* K/ V% _( X5 i0 i: v1 k
or al,100000b
: p! E9 G: n( I, D: c M8 ] cmp al,79h9 V& e. ?- @7 Q
je clear
5 r' @) c6 f$ z cmp al,6eh
6 l3 i% M* k+ k6 w je endj0 ~. \3 p# Z- _2 ~0 q2 _$ v
jmp liang: L7 s+ q% z, ^. o# c! G7 t
endj: ret ( e0 M' z6 c+ C
+ g3 d( ^8 A/ d, t c/ q' U
clear: mov bx,offset table
2 y5 c" K) C# J5 L mov cx,3008 t. y& L9 @. {. k1 D9 D2 t- H
zero: mov byte ptr [bx],0 U7 U$ I. R# z9 n% k
inc bx
, k- _$ j; \9 C7 U9 Z" O loop zero3 a o9 j0 L V( t
jmp start
- ^" J( t* X' h- }
0 N$ A0 `. m% z: W& W: V, q! A9 N. X0 R
enterchar: mov ah,1
$ ^$ K* d) r/ ` int 21h
& k# @1 c* H' x! _$ C mov byte ptr [bx],al
+ ~5 S/ @8 ~/ p* |2 C) Q" P& X cmp al,13, D( ?% X* \ x! ~
je endchar
, V2 |% G) }( ]- o mov di,18 E7 E; j5 A( U3 ?! ~5 b2 {) @
inc bx w4 J0 p) p) g% \' u& j6 f
jmp enterchar
+ d. _. Q/ C2 u, ~+ U9 G
7 D7 O0 S! P- Jendchar: enter * [5 p! M0 P& G* v
mov byte ptr [bx],' ': C6 i" ]. b( x0 @9 g
cmp di,00 K# V5 u+ f9 a( m2 r( q
je perp
/ o5 [# D2 b4 k! a6 _5 d7 `4 A: ]) G inc si, q* C3 O0 w2 m" f
mov ax,si& t! E) }$ B0 f0 j2 k
mov dx,21
% ? ?1 N) }# I# \0 n9 ^ mul dx
& _+ N4 K2 b8 `& b; l- {3 X mov di,0$ B7 Q: B8 Z( ^& G2 O
mov bx,ax
; y* |5 t9 J2 F* D7 P jmp enterchar
0 B4 `# b" [: ^8 O- u6 ?4 _ i! g; A0 l
arrange: push si# F) K7 f2 C# c% E4 W! J. r9 ]3 T4 j
push cx & T/ m- b p* }. U' Y" p+ V# Q5 p
mov cx,dx " k$ _6 `! _) k% M0 V0 N- g$ }
mov si,0
. T6 ^* |0 q8 r' N0 P mov di,21. C5 |$ q; [, [. N4 K
! x" c3 `) L& l$ Os1: push cx
+ h# G! H* E* D6 a- r mov bx,00 G# R7 ?- B' V/ h5 e* c$ f. s
mov cx,20
; S2 i' E8 z0 P4 f8 @1 U$ N4 P5 v3 Tss1: mov al,table[si+bx]
/ N9 U8 b+ b. M7 }. D) ] cmp al, table[di+bx]
8 n6 x$ s7 ^) ? ?- a0 T ja jiao
8 ^' D, I4 y+ Y- p# Z8 ? jb s2
% _) q( S+ L$ i- G8 S inc bx
z: f5 v* `/ p0 E loop ss1
4 D. `. Y/ z R) ~ jmp s2! F6 G4 Q* Y/ e4 L
, b2 b, n# y2 yjiao: mov bx,0
- U8 L, ? U$ r! T: G7 u mov cx,20
& s$ z# y: w3 y6 r ?- @jiao1: mov al,table[si+bx]
, _) F" S/ ]+ {% i# c# ] xchg al,table[di+bx]. L# o; x; t7 }1 H2 P( d6 q3 R* o4 ~
mov table[si+bx],al/ B7 T% e' x* ^% [$ A
inc bx' k' v# S. X5 P0 u7 R1 C# }
loop jiao13 M6 e1 ~. N2 O8 S k
, J7 N- b! Y7 V2 b( `
s2: add si,21
, B# L& U% q3 j% g8 ~+ o add di,21
0 g# ?+ j5 w" y7 q, ]8 S! r" ? pop cx
: c+ y2 l3 h/ D# \ loop s10 C3 K# G5 V6 o3 A2 E
$ _% B5 G q. S7 r pop cx
7 K9 A# }1 j( m) `- f pop si
+ j8 x4 P6 J9 I6 w loop arrange, j8 y" t, L1 S; U6 E
ret( ^2 X% s. U/ Z( K) F& U
& H2 \5 q: C7 M$ w
putchar: mov bx,0- z4 L5 P+ _* k, t
mov di,1
$ n3 f4 T0 }* z' \
2 F" d$ z# K" L
- C" A& J* v4 y1 M Q mov cx,si b7 e4 g- @, [9 b8 n1 N$ u) p
put1: push cx4 D2 C: F+ A9 J% H6 |; ^
push bx
6 b g2 y% c* h8 l% `
- p. C8 W# N- T2 q7 A enter& E, f1 e: l( ^$ {
- \% ?- U5 ~7 `- p8 C& F- _0 I& Y
mov bl,10( F& h$ {+ K8 x0 k/ n
mov ax,di
) s$ M/ O! J8 y7 T/ \ d3 a% ? div bl7 I+ q) F6 i% B* T$ k1 [# Q
mov bh,ah
) y: j# `3 a8 |+ ?8 N3 K. y* q add bh,30h2 R! K1 L3 @, a" r+ z! K
add al,30h
$ g( D5 {; n; f4 A# V ; K: S/ w2 _! ]7 [& t& v% o
mov dl,al
" p# S" T' F9 h3 h- O mov ah,22 l7 K) P3 x3 t1 b, e! x) \
int 21h2 `% s1 \' A9 A* g* v, t6 v# y/ l# p
mov dl,bh7 h2 u# m$ d+ R* M7 s2 D
mov ah,22 B n. r; h$ }
int 21h
0 i W. E2 W2 I, \1 ^ mov dl,3ah
1 G g. X3 O; Q mov ah,23 R* v9 A+ b* N- t
int 21h
7 T; Q' v8 ^7 N$ f' j% x& D1 `* s pop bx
! Q0 n$ s# ?( Q; {( x; R mov cx,20; P: ~6 {' @6 _ p# v3 } `2 ?% c' A! k
push bx/ }( J' F7 l. N3 o! H
put2: * A3 t" c, S) C( |9 A
mov dl,table[bx]
& o" A3 ~/ M1 W3 T1 A( y; D mov ah,2h
& |. G4 r3 C, [$ v' O9 g b* ? int 21h, W. }, r1 E) h. l
+ A3 u+ V' n4 o* h
inc bx: g( s) s! T9 B; w* L1 E
loop put2: N" L- q6 P% n" _% ~
inc di
4 w: A7 Q8 E% f/ @+ B* D! J pop bx: F$ u2 |( T2 p3 u
add bx,21, J0 G; ~* _8 q" A, ` p0 S
pop cx, w0 P* n* K. @8 {- u- u
; ?1 h' O8 B3 a! H loop put1
7 K% f3 r- c* U0 k) T$ k9 T/ N ret6 p/ z! W8 F* J0 d
, j- s9 W& U. ?3 ]# A) y
prop1: 2 D" t9 P- g D+ r" Q3 u* M
mov dx,offset pro1
+ a* }; Q" y! Q5 k mov ah,9h" b8 B% a8 W" a* |
int 21h- O0 S4 Y, L6 F" r
enter " l7 Z/ P' [! u" e2 w1 ?
ret
0 Y& I7 ^0 M: u" V1 f
& \3 _4 p+ s; ]& [: A6 g6 gprop2: enter. U% T4 A0 k2 y( A$ Q0 }! b# m
mov dx,offset pro2
m: F% g5 }2 Q# I mov ah,9h f0 W' @3 G$ w# w! F8 ]
int 21h
2 d! S1 I/ V5 P% [ ret; d* B, {& M$ ?" o+ i0 b7 v
. j- {" V5 r7 l9 Y; \( B% E- K
code ends
) A O; x* _, Cend start2 F8 H! R2 c' N: p& K/ _/ S
, x2 e% c) B& S; \6 ?
. Q/ p5 ^0 p6 ?3 N! R) ~7 @) V |
|