|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT; _9 R0 {9 M+ X" t! E1 Y) M/ A# w
;此处输入数据段代码 6 X& ~* c5 v. ?6 ~7 n- s
DATAS ENDS0 z, r. y [' O; L+ @# |
. Z- F3 V; q0 v; }# T
STACKS SEGMENT
9 Z1 E# ~, Y; o3 z/ J2 {! I ;此处输入堆栈段代码
" ?' w% ` E; [! K( HSTACKS ENDS
: v$ o3 }3 n' @) O( N: A
% P/ T; R9 C( ~CODES SEGMENT' m/ |3 p- U* H
ASSUME CS:CODES,DS ATAS,SS:STACKS$ r1 I: `7 ^$ N' f1 S1 I& ?- ]0 V
.486
8 p b% t* W+ f7 J% c6 u0 I7 ~START:
1 j+ _- a1 Y! P MOV AX,0f000h
( y, H0 E4 Y6 g( c7 \ MOV DS,AX3 S0 w, G1 c( H! s' o' B! H
;此处输入代码段代码
; {5 ]; X+ U6 P5 T mov si,08 H+ @5 J I1 |+ Z
last:
5 Q, c* ~8 K* g) Y mov eax,[si]( i( S; _9 z4 Q' l; K
cmp eax,5f4d535fh8 M( ~9 i5 R2 r9 v# z8 L' f
je over5 C; `1 A% Y0 B' D
add si,10h
: E3 h# v9 L( M4 s- |) }0 n- S0 k" ~ jmp last
, j$ f/ _$ ` z" A7 V' J2 z8 t1 B* h ) j* b1 ?) T' u' t& N
over:2 d, t6 z2 r R+ x4 f
add si,18h6 r' F4 y; R$ i$ M* l" }1 n: n3 R
mov eax,[si]
* q$ z( Y% Q4 L mov si,ax, w0 E' T& X7 K% x
add si,90 r" X E3 [- j/ o" ] H! m4 _
mov ax,[si]
( ^1 q. L' q( @' ` add al,1
, w# H2 }/ F _ mov bl,64
( k, R9 G% L+ c! E3 o: ?& t mul bl
( J# m; e4 Q1 G; M mov bx,ax6 T1 W! j3 d8 _ z+ p- m
. [- y2 P; s& x a/ @5 H# P! g# J" c$ R call display8 p+ M _( k9 r; j3 w. ]1 ]8 T J
MOV AH,4CH+ @* n4 E& {' g" `* P8 |
INT 21H . `* s6 P7 ~4 y& j7 w0 v* h, i
0 I4 o1 e% e/ w& a& Q- D1 L. J
display proc near9 ^: |7 {2 M% w
push ax5 q) \) _! q2 K3 o
push bx1 F, t0 a* V9 ~- J- b% I
push cx
, N* G* o X& q/ @ mov ch,4
* u( H4 Y5 w4 p) J# u3 s9 a+ X rotate:mov cl,4# o% B5 w/ p8 A' A4 J- {2 C
rol bx,cl, m, e }) ]- w
mov al,bl
3 }$ e2 ~% m5 C$ H0 v* U0 X. { and al,0fh
: F. C, k& N3 m7 A, [7 T2 Q K add al,30h3 k: R/ p n$ n( C; b
cmp al,3ah" ]; ~8 D; D/ c- K
jl printit: i! U- R& B* B* H$ V3 Y! u5 e
add al,7h9 _1 L/ |7 u8 K# s! u, E C
printit:
6 v# c+ Y5 O$ Q' @. A$ z mov dl,al7 O( N; }. n/ p' q
mov ah,2
/ ]& k0 b) D( o& i: w& L1 L- E7 } int 21h
" B$ X" E8 A. t# a o* T dec ch
- h, g3 v* a# D, n6 O jnz rotate m% H; Y* V' r* J# A5 A: r
mov dl,20h9 r" r% |& q* r- d1 M; |' k
mov ah,2h
0 T0 `3 ^ ^ z int 21h% _. O: h, P+ s7 Q( M+ R+ I0 t' @
pop cx" }, d! a! O( n, n1 R! o3 w, A
pop bx. n8 b* X. H$ m( m# M
pop ax
4 y7 o' y: R' O, D( w ret( V% E1 V0 o9 r6 `4 v# d
display endp' A/ G9 J+ Y, d
1 \$ S5 W5 }- ?
CODES ENDS" d) @2 \5 Y W/ }. i" ~$ \
END START0 W" ?$ O6 y) c6 I) M
6 }! _3 `" H2 p# D$ J
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|