|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT0 G, P* U% x# G1 F2 k/ o, w
;此处输入数据段代码 - ^( y6 t3 V* e1 k' y+ T# U
DATAS ENDS, }* G' k8 S+ { K" R9 v! Z T9 G
\- }+ a/ A. ]' K' }
STACKS SEGMENT* O' C v! @( @
;此处输入堆栈段代码
8 ?2 q) C: o& b5 q) S% ZSTACKS ENDS
3 ?7 x7 V. U J# W, a# H3 k0 i7 P3 A
( \) f7 ]8 ~3 i. y; mCODES SEGMENT3 }3 |6 f* w/ T
ASSUME CS:CODES,DS ATAS,SS:STACKS
6 K( e+ o, e; W" B% T" F9 Z.486& b8 A7 p9 C8 h X- x- S
START:
& q+ ~+ e) ^7 v/ ?5 B MOV AX,0f000h
# @4 w. ?- r; I& [) _0 A7 q MOV DS,AX
& ]3 A- P- O; n9 S. v- t ;此处输入代码段代码
4 S& d& i$ e# G! E$ q mov si,0
3 `7 ?$ n) E, J5 ^, |1 |, P h last: , D( E2 t7 X; l6 ^" s9 [
mov eax,[si]
1 W$ ]( t1 Z& D- k cmp eax,5f4d535fh/ e, A" w1 M6 j0 J
je over
. Y. J6 q- X: l" t4 w add si,10h
" l! J- Z c& p( z$ j6 r' D* M jmp last
& E& W3 L, ]4 j/ A7 B
3 E; A. s* M, u7 x1 r over:! R" z) u6 E/ A! b
add si,18h7 n/ @4 d9 o& u
mov eax,[si]
& P: T) d! [3 i+ G2 q, L. t3 _ mov si,ax. S7 A! f! e. }
add si,9
( N! {. I( O2 D5 g2 D, s9 O mov ax,[si]
+ d* x# H1 H7 W2 W add al,1
8 I6 x$ X6 H2 c# @# x, M) _ mov bl,64
: |2 _! m/ ^& c5 Q3 t9 h, o mul bl* C# j# D1 g- O7 R! f1 h
mov bx,ax
; ?$ b5 g9 `/ A9 U " ?, l2 M: {/ ?! Q) M$ ~
call display0 X/ { r8 y5 L& |2 n( O5 _, J8 j7 w
MOV AH,4CH
' K1 U' ~/ R0 r' O# k6 L INT 21H , Q. S: V9 u5 c1 V( P7 |5 ~
( L( s; C Y6 ?
display proc near) c& @/ X" e' j' [- b) D$ S9 d4 T; O
push ax4 H8 }1 |+ B& f$ t
push bx1 v! Y% b, n: ^
push cx
5 o" t4 W; c% _/ b m mov ch,48 [, [" v1 d+ E8 A$ T# T- q( b
rotate:mov cl,4
3 X: c4 E. s9 g rol bx,cl
) C9 m5 b# L' d% N mov al,bl
4 f& S7 E9 {' R0 p7 X and al,0fh
7 Q" p! t5 M- w5 A; L/ f& h add al,30h( l4 u ?2 z- F. x; o8 d0 }
cmp al,3ah- d7 g. I" D7 U. y4 N
jl printit% m7 k% h0 E- v+ ]
add al,7h
3 b5 _% J! T, S9 P8 T/ a printit: A% x' O* a& _1 a
mov dl,al6 S& m% k) W7 L
mov ah,2
( ]$ a- `. {! X2 _1 @8 ` int 21h2 z) {7 z' B! D# P; D
dec ch; ~; R1 Q6 U2 h$ X. A
jnz rotate
7 L* v8 u' T9 G3 H R. P/ M mov dl,20h
/ r7 d4 b/ q8 L' ?- s/ |* U2 ?; h mov ah,2h, B' g2 o; M- \* o& E3 b
int 21h' i7 a2 j9 e* N* b
pop cx- k* L- R, l! E+ T& W
pop bx0 z- M% T* [7 Q9 [
pop ax
: p! e: a) S# C( V! G( _ ret# j' d- W5 r( _2 y' b
display endp
. ]. {3 v1 Y6 X& ?7 z% l( v- [: Z; N
CODES ENDS8 F% t- N2 O! q# H
END START
) g. k4 r b6 i$ d8 Y, r* I) M
0 \5 V! S2 i( v, \+ w R) f8 Q7 l运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|