|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
8 K( M. H- q$ L8 X$ \* S# k ;此处输入数据段代码
8 i* j. g7 b/ ]0 [DATAS ENDS$ |, l" A, q- R8 Z0 G0 @# }
- P A% H( K4 y R
STACKS SEGMENT
) ?, q8 ^/ v! D4 _7 w ;此处输入堆栈段代码
0 {$ m# b/ ?2 b0 J: jSTACKS ENDS
, W a! F$ a, {( ~
' N$ Y8 E* q+ {* G5 rCODES SEGMENT
# ?0 b: T( K9 \; X ASSUME CS:CODES,DS ATAS,SS:STACKS$ _! W! I3 T0 ]' R+ n K, m) n
.4868 F1 W0 ^! \/ z- y
START:
6 S5 w: j7 S" a$ L+ D6 s$ ~1 g MOV AX,0f000h3 k' C" l* c6 V; e- B! B
MOV DS,AX
( \, ]) ?0 u$ [; B+ K3 A5 d ;此处输入代码段代码) ?2 D' E4 e) b. q
mov si,0
, a- X1 g* K+ d5 Y H3 x/ g. p last:
. O, U. m" h6 M2 V mov eax,[si]/ T! r t! P3 o, |+ d
cmp eax,5f4d535fh
) p9 ~! U: Z! K2 ]$ Z je over# Y, \4 o$ c2 G: A. ?6 _7 }3 ^/ a
add si,10h
- ]: Q. U) j2 T& I1 J( O( C jmp last
! m- @& Z' Z, V5 Z+ x5 f: G * N9 l7 W0 _% n/ I6 I5 e4 g+ k
over: W1 F5 W) N, m; ^! f% z& O
add si,18h
0 o5 ]9 D- X$ R: A# }0 F I! y" H mov eax,[si]& ?" P, b' N2 P# R
mov si,ax$ v& _: A% {1 C. f: a8 r: w
add si,98 e* ^4 v- X( ?' c, D# z6 K
mov ax,[si]
@8 w+ N0 h8 \7 |) { add al,1
1 R: D; Z: y1 n: m/ N; f1 M( d mov bl,64: d- ~' J; i# l- g
mul bl
2 U* Q5 I2 I; G1 {, o$ [ mov bx,ax
7 e) l8 O( y& G. t1 a+ r3 L2 _ $ C; O$ J0 S" C* i- F( Z# S9 F
call display5 Y' q/ V- s) F: J# `( A
MOV AH,4CH
" f0 i3 ?7 J: _ INT 21H ; A( o2 y T. w
9 s3 P+ s6 o5 T1 n! w display proc near
) x( y5 k g% c) s push ax
9 I8 z) o; s9 ~* S/ l1 }/ c! x push bx& t% z/ u& W5 L4 M' @8 e! x+ `
push cx, k5 j! a1 c& @2 b
mov ch,44 S0 M) S+ v+ h6 t! G; r+ I$ `; f3 W
rotate:mov cl,4% @; X' I4 R7 z, o$ K$ _' u# ~
rol bx,cl
- J+ c8 x8 _0 h. T% X# f# X mov al,bl
( L; W# m( e; t) N: b. @$ y9 }- Z and al,0fh
! r: }' k x" A; x# d add al,30h
0 a; ]. t2 i( K! M. J/ G+ W cmp al,3ah
0 V1 F* Z- J0 F- r/ v5 j; k jl printit
6 v9 _& ]/ C- z) T, K( h/ W5 B5 u add al,7h5 `2 [7 U" i$ J5 L
printit:
/ A8 P& l: Z& @ mov dl,al
8 b4 y, @( ^" F/ I9 A- \3 v mov ah,2
$ H* w) t" r L3 j' H) B int 21h
* s/ C) q% {# s4 B5 A8 N dec ch f5 U7 ]2 `; j& T' V0 L
jnz rotate+ ]& n3 ^2 K+ c- T& `
mov dl,20h$ l* C* O2 W$ n( U* V
mov ah,2h1 c1 r' t1 Y6 J" e5 ^0 b3 z
int 21h& j0 P, H. M) m7 ~
pop cx
. H% ], q; t" n, y- w2 u ~( W pop bx
) \+ {9 ^' @ }7 c m0 g; b pop ax
2 B4 O( y( f/ z4 F) p! p ret
! y. w9 s9 ]; C8 e/ E* | display endp% ?8 T3 J& Q4 e% W7 `+ ~* K8 _- O
5 B8 s9 r: L1 K: h8 X( \
CODES ENDS" ?9 F2 |7 t3 c$ x8 F! Y
END START
2 w" U1 w' x' }" @- s3 _0 B- I( ?7 C K# j4 v1 Y# ]
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|