|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
0 |- E- [% d. B. Z: ?1 E- s( q5 f& Menter macro
; [5 X2 e! C: b: `0 [) i, J0 L' J push dx( V6 \3 t- m+ o, ~% @
push ax5 F9 a a/ C. t! w+ Z
mov dl,0ah
$ X- h2 N. i) _% z6 M4 ^$ X8 |. ^1 P mov ah,2 T5 n0 G% c5 y8 q2 P' x* b# x9 o5 R
int 21h3 H7 F: k$ @. [% g4 [& o$ `1 X
mov dl,0dh3 ^; J1 M( Q; M) m n8 W
mov ah,2; c# J; A, w6 ?4 ~4 w" r
int 21h/ p% z, W; w( n( }2 x$ @2 O7 D
pop ax$ S0 c/ ]$ t( n
pop dx + }! V! ]* e& ~2 t% h
endm6 b7 W7 J" z: J; }! G3 D. K
) f* w' a) {/ X; e) Z
assume cs:code,ds:data
8 M: \% n8 }- s$ q9 f- Adata segment
/ L$ |9 Y8 G' B3 n2 z8 I6 itable db 300 dup(0), R2 B: j' c" @# o; C2 U* H
pro1 db 13,10,'_________________________________________________',13,10: X( T/ ]5 Z3 h* |& D
db 'no more than 20 characters English name.',13,10
1 Z. H6 ~0 p3 @, z5 ` db 'For example:',0ah,0dh,'liang xin hui',13,10 \ ^; l# L; m4 K8 y
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
! |6 V8 ^ p, K db '.................................................',13,10
( E$ c, E; }( m3 F3 u" i. E+ J0 d8 T | db 'Please input:',13,10,'$'
1 a0 J p7 t( c$ `( Zpro2 db '.................................................',13,10
' D1 U- ?6 n9 |) _8 r0 \ db 'The results are as follows:','$'
* p9 Y9 U" j2 A9 a- n
# L# X0 o6 Y- k& ~. J# }cont db '________________________________________________',13,10
3 s% \' Y( L& {# c- ^" T db 'Can You Continue(Y/N):','$'
4 J. u" H( w1 r: L
; i7 d% E9 ]% R; l$ n% Pcp dd 50 dup(0)( m* I9 {, K+ C; m6 s9 T
data ends3 q7 m5 o5 l2 p! n! K; X* @# t8 k
% Z& G* \# u% f- l: mcode segment
7 e/ k3 v) I8 @( U& ` Y+ Wstart : mov ax,data
0 n4 T6 Y2 `- ]. @ mov ds,ax) G2 c; f" T* Q2 N& m' h& d. n
call prop1% D) m& H0 h: I+ x
mov bx,offset table
W& ?" p# b$ l0 g9 u4 F2 O( y6 a mov si,09 C- k2 e! Q! \! |2 G7 J, F$ N/ ~' F
mov di,0
, ^- O/ y1 @* p+ c
- g* E/ H$ M7 I- L 8 X$ C% b1 t* j" n% _
call enterchar
$ v9 ^/ P/ g1 |& R7 u& yperp:
3 T- ]3 @+ C" l, v7 j* e dec si
# e- x6 g% G( S* d' Y mov dx,si
$ A0 ^2 W2 d& O' l i2 ^ f9 W) ? inc si
( e, h9 s! M7 U$ b* f X mov cx,si; i0 @$ s: x6 v2 m+ C5 v% U
call arrange. ~- Z/ b n: ^ R
call prop2' W1 |% ~: {# Z
call putchar
) j, M, l# n* n+ D% v$ E7 Wliang:
- L; v: v. E# X |& R3 c call Continue
. c- V' h4 V' u R" s5 b; [ call judge
# D+ s; D1 R, J, O; G) m mov ax,4c00h" e& h1 x4 g; D% K. E: O6 H! f
int 21h
) P, R$ d! B" c4 T: h% c4 _, c, d7 A* n: M, K* `
. s$ `: F! L0 }3 i3 o9 n* X* M
Continue: enter3 \$ w+ k/ F/ T+ D3 O: x9 R: B+ H
mov dx,offset cont7 H" |* u; w- Y! ^/ Z
mov ah,9h3 g4 P4 [! a" B: K6 ]. ^$ D
int 21h) ?1 ~. y4 e) R% F9 w
ret
5 p4 M6 v' T$ z7 T; _) D1 }" J0 t
, ^# V1 d& }1 f$ t5 j" ejudge: mov ah,1
5 X# Z! S, ?" r& R1 w8 ]/ R- f int 21h8 M' ^+ O3 S, D: R* n, Y2 S
or al,100000b
2 y% t3 C* K; X9 Q# h; ] cmp al,79h
- |% P% D& X4 l# a& r _: W" i- @ je clear; }6 x' S& X' l; x6 c1 }7 c! d
cmp al,6eh+ _6 ~6 \2 y- z3 v* v# S% b
je endj, q/ t4 D7 S7 T5 S3 o9 W
jmp liang
1 G1 m+ A7 m' {% x* F" _9 qendj: ret
3 F# M6 C9 Y+ b+ k. Q+ Q
1 G2 W- f5 w1 U& {, Fclear: mov bx,offset table
9 f: Q: u2 t7 Q$ Y3 @) g) I! v* k mov cx,300
* T( Q' F3 [8 E, J$ l. x8 Lzero: mov byte ptr [bx],0
; _5 n8 y& \. [# _- T8 W inc bx& C* n( k% l5 O+ B: v
loop zero
9 R- k. X( G/ r" M jmp start3 A. K- U, H# y! _1 H6 l; o+ J6 f. S4 z
9 e1 ?/ D7 M* p" V# X: k0 u3 H4 r
, ?+ u8 o) \7 Q7 `/ d& V4 Xenterchar: mov ah,1
6 l2 `7 X5 i: ~ int 21h6 H d6 S: E, R+ ? z
mov byte ptr [bx],al / j4 h2 N) M* G9 t2 t- W
cmp al,13
) o, X6 e0 \+ a- J" M1 v: M$ K je endchar
! R# L3 [+ W) G8 O" I8 P mov di,1
# d6 x5 Z: Y$ M! ~9 w inc bx* k% G* U! o6 n# N7 H
jmp enterchar
/ M# N/ {; s6 `
9 H4 F8 j) P# A* H/ rendchar: enter
H5 i$ d. ^2 L% J mov byte ptr [bx],' '
5 @/ R6 R3 m% \& L, ] cmp di,0
: h5 B C0 C$ P" f4 n9 Y; b! e je perp6 H: |% f: Z2 T4 T! l1 {3 x
inc si
3 E5 O9 E. o, u R" M" @# X5 C' s# C mov ax,si
- p6 Z$ k g6 [$ U mov dx,21
$ h- Q- d2 m0 ~ i, t/ ` P mul dx
2 R3 n, b% M3 @7 w4 e5 D; ? mov di,0
0 f% }3 O& @1 o/ @" i! _& w mov bx,ax
4 s' {+ k0 v2 @5 f5 `% O jmp enterchar0 |6 i9 R' I6 E* o) O
+ g p4 @: J9 u2 x! E
arrange: push si7 r9 R$ o# `$ W* \ y2 z) r9 R) C& \
push cx
" \8 F, X2 J3 x, f mov cx,dx ! ^' _) M' I ]
mov si,0
" A N5 u C( h/ y& j" B0 X2 R. j3 D mov di,21
7 h R3 V' s6 G* t- f
" }" }% o, W9 g0 {' h" ws1: push cx
( t& b! V0 S0 L; R7 Z- Y. L mov bx,0
9 f( P% l! Y% N5 B% |% s v mov cx,20# j* |) Y" q+ a1 D. q1 ?
ss1: mov al,table[si+bx]( x) w( b3 c& a z; o5 _
cmp al, table[di+bx]6 E T. |9 i3 e0 f G5 u
ja jiao+ S0 Q: y0 v8 `2 F& u; K& `8 H( {
jb s2
" q: ], a( q5 C3 e inc bx
, U( Q% b( a" M4 ~ loop ss1; `9 X# w/ E9 A( z m
jmp s2
5 E) [' l" u$ p3 c; y8 Q% g
3 c- p+ w, u# i j/ ? S+ E" Xjiao: mov bx,0" O" i% P' b4 E$ G5 W I) _3 I$ ~/ G
mov cx,20! u. t- r4 m4 F+ o8 m7 G$ ~
jiao1: mov al,table[si+bx]
# _& W" Q5 r2 A$ F! n- q# R6 d xchg al,table[di+bx]
' l) r, G: W! j4 E mov table[si+bx],al
0 c& R0 y7 s" _& j3 K8 L inc bx
7 H- Q4 _( i! u loop jiao14 ?& U# S5 A" ^. r3 u+ d) m& c
, I- K* M" T1 |3 q9 Z
s2: add si,21
2 E- {( n9 a$ C3 i ]" E add di,21
/ w+ }4 f6 ^( G5 o; X- y3 ?: S pop cx
# n6 L, ?5 E7 z$ N/ x3 w( N1 d loop s1
# w* k; \+ I3 ^5 [7 N6 i7 y8 n4 [$ t; m% K+ P2 M6 b
pop cx
4 q4 Q. x. k7 [4 q! D pop si
$ i+ X) f; S7 O loop arrange
% x: [' h$ i9 P3 J4 f ret
" g' U4 G, y+ L, j) y
- W$ E0 P% a$ c: oputchar: mov bx,0
& |( B$ ]# V0 a/ n mov di,1
; q* ?2 A2 F. F2 I
: d) e: W9 E# t ; {5 @' j9 a5 A* z& A0 ]! K3 t+ c
mov cx,si
; P% q3 m8 h- p& } H: @/ gput1: push cx
1 i1 [5 o: B$ ]: s3 A" o( ~ push bx
' y/ Z$ [; G# U& h ' I! t+ V8 s# W* K
enter6 D# U1 u. _# k
" O* r' s! e7 g+ q$ [& E5 W) N mov bl,10
4 w4 L% S! z4 E. K mov ax,di8 c) ~0 B- x5 j
div bl d" ?4 \; |8 _% {: a! K4 R0 |0 l
mov bh,ah
0 x% x% q+ I, ^6 p9 m add bh,30h
/ S& h& a3 N$ a, t5 G3 H add al,30h
# U. x7 R/ o8 {) H
/ E1 R P7 y) e0 s# U m+ m/ a+ b# u% F mov dl,al. J1 r4 C- h* `! X- W0 ?8 T
mov ah,2
. C/ w5 w9 `6 u& ~# @2 I int 21h q. _) s1 s+ C+ y& W$ ~
mov dl,bh
$ P( c/ T& t$ a( J- @7 E mov ah,25 q T$ o9 M5 U6 x
int 21h
: m1 P. e! h3 i/ j/ s \ mov dl,3ah
4 G( L! s- h+ `$ t$ [/ w4 p mov ah,29 r6 C8 g! d# L; G# w& S
int 21h
u1 M, R$ r) ?, s8 N+ }6 ^* g pop bx
' n9 O- z2 o1 {( l mov cx,20
; C, G% g: U7 |0 E push bx
3 e2 ~; X4 J+ j2 c" m Mput2: % Y+ E% r, R/ ~$ x9 ]7 M
mov dl,table[bx]) A6 F. S. T* T& j- T
mov ah,2h/ G4 @3 l; ^ U2 ]; P7 c
int 21h) q5 w) e3 Y! `7 o9 M! X
, f9 H* }1 N# [5 g
inc bx3 J7 T& r& [3 f- O c% b* T
loop put2
: z( `7 V% d- T! V. k, _ inc di
/ j$ c# F& @* |9 z5 g! Z$ @4 t pop bx
/ M& j8 l( i- s9 I7 s1 e& H add bx,21
- @+ R) |/ t) u# {- q/ D: ~. w1 n% d pop cx
: y& c8 T, x, y6 ^* E : e' \: ^& a0 m8 K9 o X( ?
loop put1! @" q! N0 s) k1 \
ret* |: c0 r$ H3 x. d$ w: z( N2 O/ h
0 R" M1 V& C% Sprop1:
& B' u) L& n3 E# ?4 V- D2 S# [ mov dx,offset pro1: C1 n0 ] _5 |$ |! X3 e: r
mov ah,9h
Y9 \! f9 W" h3 j* t) s int 21h
) F& T; \: g- X% H: E+ ~! p* p enter K. A; v n# P6 S5 c0 Z% d1 a6 F9 ?
ret
0 s7 P7 B# N! z1 I# F1 `" Y6 z7 ?' b$ m
prop2: enter
: w) X/ o6 {. ~, a* { mov dx,offset pro2
2 D Y8 T2 v x! ? mov ah,9h6 a, r9 K3 x) _( f5 d
int 21h
) p- K! H% V5 ?2 |9 O E* D ret, f; p o$ \0 n# h/ V0 ]- Z/ H' r6 N
" v5 e9 v# ~; ]code ends7 ?( L P+ g% i0 G7 U( q
end start
- T0 }0 P( d" Q/ H _1 ^# h$ D$ {0 t9 `9 `0 { j- O; a% ]
8 B/ I% }* y0 L& c" o1 n9 D- m
|
|