|
发表于 2012-6-1 12:38:44
|
显示全部楼层
我看了一星期小甲鱼关于王爽汇编的视频做出了课程设计,代码如下,哈哈好好学吧
% T; U) j6 e- I# ienter macro* [" u5 X; a. b$ V5 h- S* A
push dx
% S( I+ `. ^! o1 B push ax) h, x) Q- c2 m$ u1 ? {
mov dl,0ah+ g8 Z5 x, g+ W: p$ S
mov ah,2$ k) M; g! {: @! b4 T5 D* ^
int 21h* S- M1 L3 J& n+ ?8 `0 W1 S
mov dl,0dh0 b$ }# ?" M, R- Z2 l0 } {
mov ah,2
9 `) v: C/ s; S5 f+ q6 T int 21h- ^+ N" {. r9 H& Y& `) R3 W
pop ax- T6 G7 k$ n% X2 Z" t
pop dx 0 _9 x7 n7 p. e* z8 f1 k$ Z# C1 ?
endm% n) }$ D8 \$ E' k- w
+ h7 {( i# G5 d; Z2 i" z$ F0 ~: ]3 cassume cs:code,ds:data+ j0 ^$ n# E i& {) a% H
data segment
5 ?4 Z; S3 S, atable db 300 dup(0)6 q4 {3 n) t8 N" G
pro1 db 13,10,'_________________________________________________',13,10
: s, f, S O3 n' P6 y; j2 o" i db 'no more than 20 characters English name.',13,10
X9 T$ t! L+ H: U db 'For example:',0ah,0dh,'liang xin hui',13,105 I: f" E' L0 M- V8 y. H
db 'XXX',13,10,'XXX',13,10,'......',13,10,'...',13,10
d* {' I, _( w! O$ J db '.................................................',13,10. m$ N5 `, ~! J
db 'Please input:',13,10,'$'! I) r1 Z+ X: y4 _6 Q8 f! c* \9 b
pro2 db '.................................................',13,10# j" Z/ q8 [& s- `( a
db 'The results are as follows:','$'
+ S3 d. [, L# z. ^) j+ }8 m5 {$ L8 X* g4 O! X4 {/ a$ X6 q: b
cont db '________________________________________________',13,10
3 Z a/ X+ T4 l4 B db 'Can You Continue(Y/N):','$'2 w- M) f$ P' S. t3 R; K
0 X" d' N, n& w1 ccp dd 50 dup(0)7 W" P; o! F- T$ L ]2 l9 ]
data ends
' H- _* i5 {2 j3 I2 C' ~0 ~
0 Y: c+ G: t+ Y- O5 |code segment
0 X0 ?1 P' j( `0 Y, V# P4 _start : mov ax,data
6 G0 s- m- I. ~ mov ds,ax
: N, x5 a' h; G call prop1
( u1 W4 D' q8 w w mov bx,offset table. S9 }$ Q! a$ I( K; E
mov si,0% Z* e8 _: n6 X [
mov di,05 e$ ?+ n$ a/ C5 J6 V0 F7 R
$ y: ]5 [ G: Q( L0 W9 X; M: C
5 ]6 n% {6 Y1 S& B7 f call enterchar _& u6 d% m6 x' p5 j1 {4 e
perp:
. m6 d( p! k$ ^/ \- p0 J dec si
- T" s& H+ S' P1 |4 n2 \ mov dx,si1 ]% K2 K, t8 b: [9 r" R
inc si
1 K9 e! s3 {% C% h8 ?; u/ _; { mov cx,si7 o4 W( Y! U0 T& W7 Z2 x
call arrange
" ?1 Y, x1 p2 @+ K call prop2 @8 d: p6 Q5 r, ^' V% s: t0 k
call putchar( e. H% ~" X+ F: e
liang:
2 m0 [$ S$ t) s3 u/ ?( ~ call Continue
1 Q! q6 U- `5 [& l0 B: L call judge
% Y4 _9 U, g4 y: P/ R1 [5 w& i mov ax,4c00h
. `7 F: z5 r5 {- S) o$ F3 A int 21h
) V' q* N$ [' Y% Z
: @. W8 `! P$ |$ l1 `5 T! Y8 x6 y' U% r- r
Continue: enter: ]/ O# Q5 d; G+ I
mov dx,offset cont
4 d N/ Y- v1 g$ U: d4 X mov ah,9h1 l) Z. t0 G2 O: ^6 s/ i
int 21h1 J2 l$ i0 \0 C, ^. s% K
ret # j; C9 Q& i9 }& {4 m$ ^
" e! I! e9 e* N+ ]) E2 d) E3 L
judge: mov ah,1% w4 _' F2 ^8 x3 U* ~7 t0 X" q. i
int 21h
3 A t& u8 J4 g! Q5 E% L1 K or al,100000b) Z3 W+ {& ~) R: K ~* J: I5 e
cmp al,79h4 d j' Q. O1 R4 u
je clear
( u( B6 F/ T, g+ T9 } cmp al,6eh
0 g2 ~/ c1 Z+ H- D5 N* e* L( c8 j je endj [5 H" r! @8 I1 H8 J
jmp liang
, o8 ~, B' L1 Nendj: ret 9 S4 x7 c/ P2 q) c) {; r$ E
5 b7 l! B& o: Uclear: mov bx,offset table
5 ]& `0 `* `# c1 u! r( D' B mov cx,3002 N, E0 y& A8 l, D4 f2 r9 |
zero: mov byte ptr [bx],07 p8 {! o7 x, i6 K) t- E* P" {
inc bx
2 h, p$ b H, a) @( s* ~ loop zero# M' B: u+ O; m; l( J) f
jmp start
9 F2 o- P7 K, O& ?' F6 M2 q: H+ e) e& ^& f8 F. y
! \; l& X- s% `
enterchar: mov ah,1" s, n2 e U, `5 m) a' z# T0 d, C& |
int 21h
/ L$ Z' [1 G) ?/ [8 z mov byte ptr [bx],al ) ^9 I1 L( G7 `/ O* G; ^4 D
cmp al,13" m! ?5 U( g& f U9 ~% z
je endchar & C2 a/ z. f- t: b. X5 m E
mov di,1
4 F3 \7 E! P$ C0 r3 f- ] inc bx9 O7 H$ N; I% [+ L
jmp enterchar6 F2 w. M+ {2 q" `6 ?
- e" A( D5 U; x2 N, s9 ?
endchar: enter 1 z! Q& o. c+ T% X4 F' t W: H
mov byte ptr [bx],' '. v' R& D- c6 M7 ?% H
cmp di,06 Y! u7 V- l) @8 Y
je perp
. ^6 V! ]5 Z) s3 R inc si
# O6 D. C$ [, {, C8 z mov ax,si @; U7 ^/ F6 g# k5 O. m% N/ a
mov dx,21
: E* g2 E: P6 l7 P0 O mul dx1 I4 [# u+ |: ~9 _. b/ j" H
mov di,0# v" c; s/ U3 u+ A( X7 Z" j
mov bx,ax / k6 \4 ^- z g% y5 M
jmp enterchar
% R3 _% b4 K) A4 Z3 U2 M0 T
$ Z5 X' `$ E: W) B7 V; n$ Z8 Jarrange: push si; c' ^0 d; r6 f, M" Y: [
push cx - [) N f6 j4 I; e, N4 B' M) v% ?4 C
mov cx,dx $ u: w- }8 p7 y% U5 J2 V7 v
mov si,07 n1 J/ W b% _1 D1 [! o
mov di,21
; ^- ~6 Z9 ~2 L }1 A0 R) f
7 r3 h' X0 k5 c( ?s1: push cx
( b+ s6 Z% q4 P mov bx,0
; t! g5 P9 A' C7 L( E6 ? mov cx,20
* q2 v4 `" f7 w2 d3 Rss1: mov al,table[si+bx]
! G$ R7 m; r$ @/ N' \ cmp al, table[di+bx]
( I" v/ i3 z0 _# s& W ja jiao* R/ Q+ l1 p* G( N! C) Z4 F
jb s25 s3 I. z. @( v: j3 \
inc bx
+ r2 e" A& K& y% f, Y$ j loop ss1
" A8 F0 L& h3 \* C+ P jmp s2. ?7 u: o4 R8 ~$ Y
+ g" P; }, [" q* X, `jiao: mov bx,0$ T# i4 Y, X7 @
mov cx,20
! Q* a% o! w9 a+ d8 q$ cjiao1: mov al,table[si+bx]
6 t c" g% A9 c% o/ a8 p( Y xchg al,table[di+bx]
$ m1 u n7 B! k% {" C% g mov table[si+bx],al# F# R! T) I6 q9 S+ e
inc bx
" M b3 @. d5 z- G% @% b& ?/ F loop jiao1$ u- M+ o: A. X6 M! G" A
P* ]1 T5 ]# _s2: add si,21
) F/ W1 D, L% S3 I% ~$ [ add di,212 u8 u& m" w7 b
pop cx( T7 v G: _" _% d; \
loop s1/ f. d/ _9 C/ E' g; N
, h$ M5 A/ r' W0 a5 d pop cx
) ]: b& z0 A% m, X# E4 z6 i pop si
; T& T& R/ y. \ loop arrange9 I7 ]" b; D2 [2 i) U. ~& C0 Y. n
ret
& m" z% Y3 z" P! N4 s: l
! B0 E' H; P) Yputchar: mov bx,0" c7 N) @0 ]! z0 ]
mov di,10 O' H. z5 F- ^& O* D
# w7 E" [7 ?- B3 P1 m/ _* _6 E
/ O4 K* {' T4 R' d- e! k mov cx,si* O6 |( K+ A3 t' V" h
put1: push cx8 x+ w. p- W+ p
push bx" F; x% g$ u* R! v) R
2 s5 i! U ] U5 L/ r
enter
/ x& W/ O. ]( E1 Q4 l6 } - k& K) o2 [: ^$ S- C# x; K
mov bl,10% v$ b X7 J- d" n+ n9 M+ _
mov ax,di7 V { ?4 J2 @7 q x' w
div bl4 i" ~: t' i% \0 s1 w z
mov bh,ah
9 t' w7 Z7 F" B1 q, ^/ V; g. Z add bh,30h
% M. \! E) A; o* Z add al,30h
! l9 M3 M, V5 @6 g / B- y" e) f9 B A% {, _
mov dl,al
7 B4 [& N6 ?) _. d' J y mov ah,2
$ O+ o7 L5 K3 }. @3 |; @( \ int 21h3 z0 w4 v0 l% W, b2 ^; ]2 {9 q8 e
mov dl,bh
! ~' M% H. d& T7 P, ]7 P mov ah,29 Q- P/ y- i# m
int 21h& A4 A- p6 Y1 O/ l4 q! d# [
mov dl,3ah) F1 E( Z: c- {
mov ah,26 }, e9 n: e; B: S( h
int 21h7 ~- y6 A$ j$ T# F: V- C# V
pop bx ) u; ]7 p3 P0 \0 C* t$ ]# w& R
mov cx,20
4 a' c4 M, a. p9 q* U. R push bx
+ m/ c) w5 v q; ^) j: W( vput2: 0 f m& Z$ k, n! L6 V5 v. v
mov dl,table[bx]5 N# h* T, _5 [$ X
mov ah,2h% T" p! [' X% ^6 V
int 21h
5 J+ F$ J& f! X! H0 e7 Y/ I
& L- Y* ], p0 s: W+ w inc bx6 ^& n+ N [: K K7 L" N
loop put25 D( y" K4 ]! O; \$ C- m
inc di
, X* }- X. L7 K4 f$ B pop bx. L/ O$ J6 F! [; u' B
add bx,21
- _2 Y4 Q4 S6 i H8 I5 [ pop cx
3 D: Q- T6 W' {- R3 [5 @7 I 2 F# S [8 X* T9 h$ r- H
loop put1
/ n' ^: k! f9 ]- |2 y ret
& r3 Z$ |/ \4 R* S
4 z+ X) H5 X% Oprop1: % z! v* c7 v8 J6 Z' a) [
mov dx,offset pro1, A8 X2 }# C- P1 @. `- T8 [
mov ah,9h
* }1 g! m" l$ u int 21h: a8 k# b+ \( k' T! n8 H
enter ( h( `2 `0 o' g, D1 T8 f% I
ret+ A, C( Y+ Q% w$ h6 _' G* e b* h
4 i7 n- G9 w3 c2 R, p+ P
prop2: enter
8 k; |8 }3 B# P$ P# G/ R& l mov dx,offset pro2& L& {$ j! j3 k1 n8 r9 I
mov ah,9h% K. w# j7 G. E. k- P
int 21h! V1 s, E* [9 c! S3 K
ret
# `" _) E% x5 q4 X/ |* H2 C
. G1 D( ?# e( A: h2 S7 ]code ends
# X6 `- B+ v6 A8 z; ?end start
N3 n' ~0 j+ F* G$ f3 p2 W t# `1 i: ]. _3 c; g; B7 x
+ |% W( T, S4 i0 E0 Q# y6 Y( c
|
|