|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT* o; U+ j* v1 C
;此处输入数据段代码
1 ^* p- [1 r% @# ^DATAS ENDS1 _. n; o: Y0 I6 ~7 a' \# b5 S1 k
- K8 t3 k3 o9 r6 y7 FSTACKS SEGMENT
( e' `( I% |* a/ p. k# L ;此处输入堆栈段代码( z0 t4 x; J! J* ~
STACKS ENDS2 C" m. P k! q* M5 K- Z( q
) {# B7 E' C; D, Y: ECODES SEGMENT
# M* Z& v: d6 v$ t7 o$ | ASSUME CS:CODES,DS ATAS,SS:STACKS) b/ u) V* z4 S
.486 q0 y! v& Q. l, j7 U2 a& W9 |9 b
START:
# q8 \' n' K, g2 Q* x2 R S! d MOV AX,0f000h# U8 h. I3 F6 e. R9 @$ T) ?
MOV DS,AX7 O+ k4 j% d4 C4 i! A. r. y' Q% T
;此处输入代码段代码3 X% {9 z/ `% T O$ D! ?
mov si,0
$ T, g' G( D2 ^$ c% Y9 i( _7 b last:
5 t" f- q; `/ z) P# ] mov eax,[si]
! ^1 w! ~1 J4 D% m1 C; n cmp eax,5f4d535fh8 O" c* q6 A$ r2 o8 ~
je over
9 v; e* M" Z, G& ]3 W ?9 y add si,10h
, y. ?( f5 ?# D. z, i5 e3 Y jmp last0 V, C/ b; a( H) c! W: `# X( p
) f: s5 v6 E$ K
over:
0 R) L8 H7 f" y5 @8 m3 z1 u add si,18h
9 u2 P* r( h @* D _ mov eax,[si]$ F& w* D" L0 Q; K; \
mov si,ax$ F( a7 l7 x% V- n9 p; _* |
add si,9: @9 Z4 n$ ]' d" Z: J- c
mov ax,[si]) B& w+ v/ j# J0 ]
add al,1
* r9 M: p; o( e* M! y2 z# \$ K mov bl,64
2 e! L6 a, i* g$ e mul bl: _+ a& H8 R. B! }5 m
mov bx,ax* e F$ R- D. a" B9 s3 l* ]6 ?
7 o* { @9 D) f8 w call display
, Z9 V0 n; p! Z5 I9 A# m* D MOV AH,4CH2 j, ?5 t( a$ O2 D# l) q( Y7 N
INT 21H
1 O+ [6 g2 ^ e0 L2 _& A$ M# t5 { : i6 G( b2 r f: t) w; |6 L
display proc near
/ N6 K# ^6 r0 _ push ax
' Y0 H4 w* c, P; A push bx, ]. x- {# w& ]5 C; l% b
push cx
7 `2 c5 p/ h; f0 A: X) U mov ch,4* Z, ~" I j0 Q' S
rotate:mov cl,4
0 D1 v0 n, u1 P5 {5 W8 s2 u& x rol bx,cl
* P" H" H& M8 v: D7 K: Y; E, _ mov al,bl5 v& [ v( u0 T$ Y4 t6 U
and al,0fh+ a3 r! J& j) W: K( L! W9 C
add al,30h9 x5 h) G: {2 k# j0 G2 `
cmp al,3ah
$ x& T4 u/ Y: X$ Q6 { jl printit3 h- r" i; n! ?/ F8 e
add al,7h
0 j# l% v' `) T7 ^6 `. j printit:) Q* f# Q: i2 c& J$ H
mov dl,al
$ ~0 l- M! f3 r( v9 R' \" x2 i7 N4 d mov ah,2
" J! e# E% q2 {. e \* _# } ^ int 21h4 g3 V1 Y8 K+ t- t
dec ch$ }2 u% _% ^, K
jnz rotate3 z( N7 y5 x2 t; [4 m7 D
mov dl,20h
/ M4 h6 q/ l& } mov ah,2h0 W! C( o! F7 b( X8 Z# e& v9 Z; b
int 21h
1 x5 y- Y6 C, t- p* [: G8 Q: y pop cx
7 i) t9 q* [! d pop bx
2 ~; h& U7 ] i6 X pop ax
0 M# T. m$ S4 A: d6 ]" I% q ret/ } @) f# q" C/ E9 q# B+ T
display endp: h1 R$ [! k' y" A
( }8 ~: s7 g7 D% B) m# H! p5 JCODES ENDS
3 u* ?% J3 ?# M; M END START" p- w* |# P4 ]1 j, g+ W
8 f( G4 x; g3 v- U
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|