|
|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
, E; _5 O% q; P" k, P0 j. Eenter macro
8 y) P, m* u- G, x push dx/ u1 C) T" r1 A, f0 {
push ax7 a1 R4 H5 [- W" z
mov dl,0ah& V0 e/ L! J+ c* u; H8 o& Q2 e6 Z$ Z
mov ah,2
' `, I& z" `- V/ r0 m8 H8 l6 p( F8 c int 21h/ R, J- n5 |4 V/ {6 B$ J
mov dl,0dh t/ P4 B" o& d! O
mov ah,2
* z. R) z, Z5 E int 21h
! y7 J9 Z, I4 Z( X: N5 k2 E O pop ax
" u& k! K9 e7 d6 m) b pop dx
1 t- z% B" B' y" j- Q% X2 Kendm
0 _& U% a& S- [) v6 g; M% W
# ]7 L) y& R& {; a; \assume cs:code,ds:data
* J) o% d& W; c7 \0 Q# odata segment
4 h t- d1 c: U( w4 W @. otable db 300 dup(0)4 Y/ n# t/ s; P
pro1 db 13,10,'_________________________________________________',13,10 }3 V5 f4 x7 Z, m5 M2 x* [
db 'no more than 20 characters English name.',13,10
9 h) N# Q1 i, R db 'For example:',0ah,0dh,'liang xin hui',13,10
# R& C5 p, s- y db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10! s0 d9 G* E) S- j/ g5 X8 e
db '.................................................',13,105 ^1 e l k1 W/ _5 M# C+ I( R
db 'Please input:',13,10,'$'
+ {5 A4 s3 k7 s+ K9 ?3 G" Zpro2 db '.................................................',13,10
! A4 t2 `5 k. d. z# s) O db 'The results are as follows:','$'
c u- W9 R* X. O A' N" |$ D
! z" b: Q0 ?( P/ R" V Y% ccont db '________________________________________________',13,10% ~( G- r w# y+ ~! I
db 'Can You Continue(Y/N):','$'
p1 H& R2 _+ P. A$ y; V$ E/ Y# P) s9 X- L, L% N2 N
cp dd 50 dup(0)
. P B$ }# {% p$ }5 Sdata ends
4 r9 M9 v- V. w$ ]
* g2 W& x$ H+ T+ \code segment
& }" B6 F3 W5 z F- a1 n5 }& n c- nstart : mov ax,data) R! x, g N( Q+ F
mov ds,ax
' m. L3 M% C( j- J( w: g call prop1( O* d! l! ~, h" G& u) N
mov bx,offset table/ j9 Z/ X* R3 V* N8 Z2 L
mov si,05 ~' x7 }! J3 ^: n
mov di,0
4 M0 ]5 w7 I( S2 ^+ g # r. ^5 P8 }0 d% g i% o5 o0 |
3 Z! \( k, @ j4 w8 t3 z- R
call enterchar
3 ?3 V0 K9 `4 y) S' Nperp:
1 @9 C d U/ I; J! x+ E dec si L1 R& h6 N% t
mov dx,si
9 R! ]- k5 t- C6 R- W! T! u inc si
3 b% q& k: N* z* ^( J. x" O mov cx,si x; G. Q% s: q* k! @
call arrange9 P; D: s8 n, h& v
call prop21 T- m8 `- K0 @2 j# a4 n
call putchar0 F: a p) k! Q
liang:1 p+ s0 ]; O4 r9 V
call Continue
7 A+ A$ m1 h% F: u9 B# _% N: r8 E9 [ call judge) b8 c J' Q0 E# I/ \
mov ax,4c00h
% s: U& r: F( F: X% n5 j7 F int 21h
; H9 a# A6 g% B: T" ?5 @
1 E& v) J: n4 {# ?+ G/ A8 M9 @# G7 x1 q/ Z/ c
Continue: enter% h) r( `7 H4 G m% L8 p
mov dx,offset cont9 _9 `. X9 V1 B9 d% X* R% M
mov ah,9h: k7 `- x8 T9 g$ z+ p. x" C/ q. I6 c
int 21h
; I6 s2 L1 `3 M7 C ret / C2 Y2 Z. N; d U3 S; ]4 K9 J/ L
1 G; d, Z4 z3 K7 @* D8 I" {6 }" _judge: mov ah,1/ {4 H3 |, i0 n2 g6 A
int 21h
) i2 M! r+ w: m( x6 A or al,100000b
& b, t/ X8 r, W$ F cmp al,79h
- V; N, n" N7 |/ m1 I& t je clear2 R* ~+ C9 D& b3 p. h
cmp al,6eh
; K9 }2 C( [7 Y0 v( ?# y je endj
0 c" i8 f: D- M9 P" f% J jmp liang- [/ r! {& }$ J5 F" k6 u$ j" @( [
endj: ret
6 [1 N$ j2 T$ O9 ]" x& t
m2 \7 t$ z3 a- C$ h$ c! \clear: mov bx,offset table
; S3 x, |1 ?7 k2 ?+ J8 Q& F mov cx,3004 f0 l' R" e* l( b( W. V
zero: mov byte ptr [bx],0
" H# ]* D1 U/ I- @8 ~# e inc bx
9 b# \4 u) o1 N) R* K loop zero7 O! e- p, U& T1 d9 {
jmp start
% e* a0 z, l% ^$ W D
- A) I7 |# v: H. g8 D
8 o1 n2 D, f6 R, s; G# l$ venterchar: mov ah,11 q5 c# t5 T6 N, \2 M
int 21h7 |5 S7 _6 D% s7 s8 Y8 B H5 Q3 z
mov byte ptr [bx],al
' r2 D! B' K) S- t cmp al,13
5 B4 v' E9 O, r( |+ h( s" H je endchar
H9 N! {1 v- E2 B. |' O0 M mov di,1# l* f) l7 O# F3 r5 x7 s. b4 @
inc bx3 V6 L/ e! d- x2 n) X4 S; T. I: H
jmp enterchar
) A. @& W' {# o2 B1 E! H& \% p; ^) x7 o" h
endchar: enter + c% c: ~; V8 L* @& Q) \/ ?
mov byte ptr [bx],' '. q! Z" l; N- G5 n
cmp di,09 T/ o. R- G7 N; Q# ~$ G/ _
je perp
! @* S! `/ g- i% L- K. A8 O1 D inc si
% \& E, v1 T( K0 m+ t5 H4 H3 v mov ax,si
r3 N9 r+ [8 u4 s G- w! ^ mov dx,216 c3 A( K2 U% q* F& y( X. G
mul dx
' u4 E0 J% S' R% |. V mov di,0
_, V/ \$ S) c c! s8 ] mov bx,ax 2 t1 M2 t; p9 r' B4 U
jmp enterchar
) ?( C. a- `7 A" D) ?! x
* D6 M8 J; B2 M5 K& X9 S$ Xarrange: push si7 \' C% ^. |# w
push cx ! Y- Q1 |( n2 F6 ^* Z8 ~5 [
mov cx,dx
$ M" Z2 S# O, l4 D5 j2 b mov si,0, r: }1 n! S/ o' \" O' H) @' V
mov di,217 Y) }: x" T' E
4 K" o( ~( J. s- `
s1: push cx) U6 V1 i" x: F N. A2 u& h
mov bx,0$ E4 E# ?2 S' O9 r# [5 @
mov cx,20
1 q% O" R) h) y0 D+ x8 Css1: mov al,table[si+bx]
' X3 M7 k/ B$ P0 ~0 Z P* U( J cmp al, table[di+bx]0 ~4 |' M7 q! H. j. r& @
ja jiao4 \1 _. K5 m. c# \2 f
jb s2
& m' T, ^4 @/ ^, E inc bx: g! r& {, v1 ^9 M6 B
loop ss1# Y4 j% L/ o5 \" @3 z- b/ [
jmp s20 G! a/ |9 v4 G6 o6 y8 W
/ q4 B5 Y: j' w @" w- B, a7 [
jiao: mov bx,0! B7 c4 R! m( M# }: T: H
mov cx,200 E& w, E+ ^! z+ g( v; G
jiao1: mov al,table[si+bx]2 b4 l8 Z; O$ v8 c3 Z' ?- B" m8 X
xchg al,table[di+bx]
0 z5 f% N. M! i7 x6 m* h9 [" n mov table[si+bx],al! h! p' E8 h$ H9 Q$ p) [2 g
inc bx! {" _* e; }) E* x5 ?
loop jiao1
1 {. M, H1 u! q/ y% O A
- A/ T4 S: ^, _' m& cs2: add si,21
6 q7 \2 k9 ? \' z& G add di,21
o6 ? D- O2 ~7 ` pop cx
. x) ~ d3 f8 e1 O' n3 V' S- ^# J! v loop s1
0 o( c# \$ ~& s; o# J) B# i7 e
; K1 W+ g& V* H: u# D pop cx
X. B% E) R3 S/ e7 s; b. k/ @4 } pop si
8 a a" T9 L! P: ?% } loop arrange
5 j' G) R6 l# _2 w0 {( } ret
# ~9 @4 Y- M- X5 d% v. }, D
. @- _4 J! k+ W* l# f7 N0 Iputchar: mov bx,0
7 H3 N4 G, Q7 J4 L) t mov di,1& I* ~: U y5 f* K5 k' l
# c" H4 ^- P$ W/ A' |0 A' X ' `! `7 k7 c" n; g; @7 K* M0 i
mov cx,si
$ B; m* u2 V5 l: @" Bput1: push cx3 j4 Y+ ]$ E% q( p2 z2 H: u
push bx
K1 R' o, ^- F; o
. r$ m2 d: g" l# i- ~" Z, Q enter T( k( @' R. T) F: m4 [) R9 t
3 Y. u1 u- m O7 l. u
mov bl,10) |, F7 T O5 t" {
mov ax,di
: Z9 @6 w% \! ?5 a* e, ?/ M$ u div bl
( R4 f. p, b2 b6 ^( A mov bh,ah
9 ]$ m2 e: q% [8 G! S add bh,30h
4 _ _/ C7 V1 P8 J4 b9 q add al,30h
6 ^" V; e( g- D4 O! u: P
2 B& n& Y7 J2 R* }; _2 h: j0 Y5 q7 f u mov dl,al3 M# }) z/ |! {
mov ah,2, C/ B% v+ k: Y3 u F
int 21h
& H d( C; i2 H mov dl,bh2 i# E! w" D- E; x( E5 o
mov ah,2
0 ~" ~$ K! |- L3 q! d1 c/ I int 21h S- s% d' E9 R G7 V
mov dl,3ah) A9 Y" k5 a% y( ~2 k! L
mov ah,2( @. C& t0 ]' h8 g/ J2 Z* u
int 21h
& t% g6 Z3 Z: p _ pop bx ; C7 K8 ?* _! Y( S# [: q
mov cx,20; c+ U: R$ [! {* c' L( D
push bx7 e; G$ ~ u& }
put2: 1 w W5 O; d, g1 l
mov dl,table[bx]5 @0 R/ _/ k! ~* ?7 j2 T
mov ah,2h1 \, R3 i. ?/ X- q% ~# v1 q( ]
int 21h
+ X9 k5 g5 p1 R# Z5 d" | W$ q* j ' @' }( T- }# F1 h V5 X( f
inc bx
9 p5 a; B, F# h, ~' U- V. U loop put2
9 f: N8 o* ?( Z inc di
( T, {1 R7 @" W0 x) M6 e; q pop bx
! d6 T5 Q1 X& v: _9 g add bx,215 Z3 m' n2 ]9 R# h7 Q
pop cx. @$ D) c! a7 A5 I" G& z- V
# d- z8 H. X- Y) J' i3 b loop put1$ h( g. _" }5 q g/ }
ret6 p2 j/ c6 B& a
! a) H5 G. N4 ?
prop1: ) e$ _0 q* m/ T' ?$ E1 j. i
mov dx,offset pro1
" H% m4 t# N4 }1 O, E! @ mov ah,9h
* F: g, F/ x8 Y# Y7 d int 21h" A u' C4 g( }- r
enter
0 b+ f- J( }( _, _' i" p ret# y* ~! r- v: L- S9 r0 r0 G
/ J0 `2 r/ B' k/ [9 Kprop2: enter
; T F$ _/ z, K e mov dx,offset pro2" M4 e) K* S \- S' h
mov ah,9h
" Z0 ^. s/ q2 |9 X! h" V# t int 21h9 S a# i4 X; E. j* k D$ {
ret
# q: p) ~" T: k; R6 m! k6 O+ D! k6 i1 r! l- ?
code ends d$ }2 \; n: ~+ \) p3 s5 z
end start
) H9 t" s9 ?) T' q! S K! P, Q% W( p* D2 t' F% \ e2 {
! z5 f" {2 H8 u5 E
|
|