|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
9 B, Y0 E6 x& M! N3 y ;此处输入数据段代码 6 Z; N" ]! i3 u- \4 b
DATAS ENDS
; `( V. p( i3 |" Q6 K+ J1 C0 g) u" A
STACKS SEGMENT; _+ i7 i9 n9 U2 S) Y" d5 X% L
;此处输入堆栈段代码9 F; t; Y& l; l* p6 U
STACKS ENDS7 q+ ]0 B. s* J; V& e5 u5 r
6 j% b! X9 \; ~8 J1 n' G" ~
CODES SEGMENT
- W% j! S- @- R ASSUME CS:CODES,DS ATAS,SS:STACKS9 \7 c) {' m5 @) j* O. d; M8 b# R
.486- e# q# w- E- f' Q; |! l: y% L* Q
START:
M! _9 F7 \3 j6 Z MOV AX,0f000h
6 r% Z( S/ }, \. m7 j6 `. Q MOV DS,AX
# T p% L% Q7 a6 O% ] ;此处输入代码段代码
2 ^3 S3 n5 r D4 { mov si,0( ?% e$ t' n9 B; \ v6 O& d
last: ; N; a2 ?* M2 k+ G% ~+ B
mov eax,[si]: J* R/ s7 B2 N0 a
cmp eax,5f4d535fh. s3 ~; o7 c4 H6 j5 C; d
je over p1 Z( f) @ m: ?5 m
add si,10h, S& _% M( G0 H* u3 E4 t# A6 j
jmp last; g, d. @% \. V5 T z+ c2 K5 d
4 Q4 s4 J9 N9 Q( G
over:- a; P/ X4 X0 ?0 \& G- P
add si,18h' T: `8 I- A/ {7 Y; u T7 m
mov eax,[si]3 K/ f/ w3 x$ C
mov si,ax
+ k1 M3 Q9 p6 S6 c: Y! b5 b3 t! } add si,94 ]& i( S) G* Y/ u$ D
mov ax,[si]
$ x6 j$ ^( D: s8 \- l* m add al,1
; _) _6 F+ W6 f4 x# d. P5 N4 ~7 G mov bl,64. A. O2 w5 P# K7 \0 L& H3 I
mul bl
" p; e3 z5 Q* x, L% t6 z5 m mov bx,ax) J' `/ [* ~+ n3 O& x7 p9 n
1 w+ w5 T/ K0 D0 Z3 ~
call display
* m7 ?6 a$ J( \4 V: j MOV AH,4CH
' j7 v e( r! b. t1 X7 H V" g INT 21H 4 T9 F e% j7 h# a6 \. J9 T" q5 n
. u8 f, C7 r0 H+ ?8 \
display proc near4 K H o% x; z. t, F
push ax& U& _5 j- C. i6 N& r; A# |& P
push bx
0 e! ?+ z7 ?, K, } n ~ P push cx# o+ k5 U2 N/ i6 x0 m$ K- [
mov ch,4, p$ O) Q' c' i/ k$ O1 ~
rotate:mov cl,4$ A/ r) [* t3 H4 M+ Z3 D0 F
rol bx,cl4 s; u* a* s) f9 `: p+ O. p- j
mov al,bl0 y) L- ?; Y5 e3 Q! f3 W2 n$ d
and al,0fh
* d! h6 W8 M+ b+ z4 S9 ?* t" c9 ? add al,30h
% V; f# e$ p5 c! H* p$ v7 P cmp al,3ah2 f: ~; N3 G& r* j* m _
jl printit2 c2 S! O& }0 {2 ` i4 k
add al,7h
# L2 C+ H% c r3 x% g printit:
I# I5 U7 s4 \; D7 y' P mov dl,al
5 v8 L/ J5 `1 F# m7 x! m( ]6 L/ @ mov ah,2- A+ ^3 N" I* Q# \# j
int 21h
* P/ x1 W3 e' ^2 ? S& B* ] dec ch
4 p% z, {7 v; p2 J+ J jnz rotate2 n: o; W8 G: ^- _% u) G2 u0 Z* T
mov dl,20h, x& d# o. c2 a
mov ah,2h" k O6 v- e4 Z5 Z, k4 Q6 i2 G( o; E
int 21h8 a+ Q1 d ~! Q. @
pop cx( ?; m3 O! K4 R5 U9 N+ e
pop bx; B( s/ n( S0 ?7 A6 p, s
pop ax- H5 C6 A7 B. H8 t7 O( l m9 j o
ret
' `* |1 [, v( d: M% _/ y display endp
' }7 f4 E1 T8 t# \
& t1 `" `( o+ M$ lCODES ENDS
- [- X8 ^# Z# K. H# A3 M; q& b2 T/ i5 l2 } END START- O; a8 S* L" S C* Q
2 i' |2 q o% V
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|