|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
; M5 B6 y$ ^8 g% X& D( Q ;此处输入数据段代码
& t g) b! z3 @/ s6 wDATAS ENDS5 }$ Q# a' i, g* w0 A& T
0 G. t: W7 I8 u' \/ u$ ASTACKS SEGMENT
2 x$ C+ _! J6 U& E8 P( c- ] ;此处输入堆栈段代码/ d' P7 S; u4 G
STACKS ENDS8 ~: C0 ~" h, @9 w' @' {
" T- W9 n& Y1 p! ]8 yCODES SEGMENT
/ d+ p% y) ~; j9 U ASSUME CS:CODES,DS ATAS,SS:STACKS6 g+ `& n- V4 G2 Z
.486
3 T) s/ v, ?) a" KSTART:
! h9 M) l9 X2 L+ |" U MOV AX,0f000h
! J6 ^3 ] W* y; e2 ]4 R# A MOV DS,AX
9 }* w0 ]- W; B ;此处输入代码段代码6 Z: w1 a; @5 F8 y+ Q* ?
mov si,0
+ f7 I9 F! L6 J. G$ e last:
8 p2 u3 X4 E$ p" r$ \ mov eax,[si] @1 s* ~5 q! {# ?3 q
cmp eax,5f4d535fh
* D& i( Q- A, Y0 a je over/ A8 H7 c; a. H! U% F
add si,10h
+ s- M! f2 G$ v# { jmp last
$ {% _/ w3 g; T$ s8 S3 b $ T+ x& }* X3 D
over:
: W; z( {. V. a3 E* \$ ~ add si,18h
) c5 b8 n9 I$ | mov eax,[si]
0 @3 Y& Y9 ^* C9 Z3 ~2 _* ^9 J- Y mov si,ax/ u( e3 \5 t& E2 n1 x7 M5 q
add si,9
" u0 d2 @$ F7 `9 x mov ax,[si]* H3 u- W" J2 m! w9 E$ T! y9 G
add al,1
2 R9 A% Q$ N, ~* w" [! h mov bl,64
, U. @* m# S0 T$ | mul bl
6 |% u1 t1 I1 s) O& {$ @+ G, N mov bx,ax2 X7 C# C: h0 J/ u6 A' `
. J2 N4 L+ U M$ R- R call display( E6 `3 |6 [0 m- O! d
MOV AH,4CH
9 k. J3 L- v5 q! _0 y INT 21H * ^7 o6 y- f: I4 R* l* W5 b0 i) Z
9 u) ]! f# X! K5 F) q/ t( j
display proc near
, \) a; Z: K# h8 j- x push ax6 x8 S' v* w( Z9 M! R
push bx
/ v' b; c/ R5 Z( _* C! L3 r0 f. ?6 a push cx7 b M4 ^* }8 Q1 Q$ c! x' S/ O
mov ch,4
. }# f1 M9 s& i9 m" [ rotate:mov cl,44 R9 ?0 L5 M1 U+ m
rol bx,cl; V* b( n) s+ E5 a$ Y: f4 v
mov al,bl
: r+ j- Q$ b6 |: O% r7 L and al,0fh
5 M) O' S# M! v9 g5 g* Y* K6 r add al,30h
1 L+ q" x" n5 t cmp al,3ah
, |- {2 M4 G/ {8 U% } jl printit# i, y4 n! S9 v1 J; [
add al,7h. ~: j4 U# d3 h$ C
printit:
{( u$ h* K9 c, v mov dl,al
$ b4 J3 B3 @# N/ [% r* @ mov ah,2
* D5 @0 `& B) N3 g# b; Y; k4 a int 21h
8 e+ O# x* g" b Y" |) @2 }. y dec ch
8 h& f+ L/ J' x6 d% `, I jnz rotate
6 T: J! ]& J5 H mov dl,20h
/ j$ k `4 c) B mov ah,2h: g$ ^( N4 S! a
int 21h) C. D* U7 G* z* \2 Q2 @% ^* N
pop cx
/ f B7 u' |) a/ }* Y( F pop bx
+ o. B9 Z- O$ m1 ^# c& j0 [1 s- e pop ax C. l9 d! M' C8 W4 ]& u- p
ret) H5 K+ t( A3 p" I! ~2 K
display endp, B& p% Z! y. { o' ?& k! H+ L
# V# l6 j }+ N) E
CODES ENDS# y) v1 ]6 m A% I2 V; [
END START
: n& V9 A$ k8 J. Q4 k0 o2 J' E
, g4 u+ M- ?" u: k* ]7 j运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|