|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT7 d. g7 u. {' @; i, P7 l
;此处输入数据段代码 $ Y2 ?: w5 |, J9 Z0 G0 a2 V
DATAS ENDS* S3 Y6 m6 B1 r
( ?7 c. E* ]7 _0 C% V5 W8 t
STACKS SEGMENT- {6 o7 A7 _* M) |& {5 l5 i
;此处输入堆栈段代码$ u1 |. G) o0 p3 [) v+ `* J
STACKS ENDS. m. R$ Q9 s; O7 h1 N" _3 p
- j, _. y4 [# j; g- [CODES SEGMENT- ~8 l' {, d: O" K3 |- M; g
ASSUME CS:CODES,DSATAS,SS:STACKS" D: i4 |: i: d7 [
.486, _7 I2 y" t8 |4 \7 \) L0 m
START:# t, H( A; q' G# L6 E/ G
MOV AX,0f000h2 T: k) ~8 a) m
MOV DS,AX6 [& ~* _- T8 ]4 B
;此处输入代码段代码" c( u; l9 W9 r* Y3 M2 ~- M; ^
mov si,0
+ j2 j7 ]+ e5 w) N7 Q' W last: ) `5 D! |' j" k8 {8 z7 L n4 z0 O
mov eax,[si], O4 T2 S! F9 S" p9 {/ @+ q
cmp eax,5f4d535fh
) R, ]0 u& W4 Q0 t: c1 H( P) k je over% g: e% b5 C ^% B% V. y5 S
add si,10h: P6 w0 T y t# ~
jmp last. A) J$ @$ ^, r W% d6 P% m
5 |+ N; {- f% l% D over:
& D' M4 ?! ~1 y* S5 j! [$ g5 n& y) r add si,18h
3 c0 O4 H/ p4 a$ L+ {: z mov eax,[si]
! Q. x1 Z& H+ ?6 \7 l mov si,ax6 k: G; F# _' m4 F- b' i/ K
add si,9
9 o. }4 {# [% y0 C mov ax,[si]
0 ]4 j$ N" `. l; ^ o( l add al,1
' v1 W" @ H3 M- O1 I mov bl,64
! L5 Q, p9 |9 ?. U* k mul bl
7 d8 L+ O+ n( F. L2 ]: F mov bx,ax
( ]1 t; P' f7 w& H6 Z- g
- E5 w2 R9 L/ V+ J call display
z7 E+ ~1 T5 K+ s( T2 ^, u MOV AH,4CH$ D! u& ~) x* Z, a" g+ V x' L& |
INT 21H . m4 y8 f3 I% u3 e- U
6 s8 F$ T a5 p/ o. R5 K5 g
display proc near5 i7 |1 M- q( S; W
push ax
7 {9 F7 Q1 k8 p. w; E' M push bx
: Z2 s2 x4 s; B' U# P push cx
1 |) ?# O* e" e4 b0 J: J# i mov ch,41 n. \/ U% t6 A: w2 q. ^
rotate:mov cl,40 V8 C, D) q1 `* f$ I8 }' x% W
rol bx,cl
- h5 ~4 N6 G7 Q' S, Z3 c0 T( D3 K& t( o mov al,bl$ Y3 H5 v9 a8 H( \7 t
and al,0fh0 {) l. ^7 u5 W3 T
add al,30h
( D) G9 f' E6 p cmp al,3ah
$ d" M3 |% D! G! B7 M. q jl printit9 a' n: D- U3 d; t8 u0 \( D
add al,7h
% G9 G+ C: \! q: ` printit:, l- B) k5 c+ i2 c3 Z5 v
mov dl,al
4 ]/ z* z3 b" \ mov ah,2
- u% O, V* z3 f2 z3 }5 l. e0 ~ int 21h9 L& ~* W* W: P0 p
dec ch
# n& n% R/ M* ]2 F jnz rotate
; S" }8 t5 O, r; Y mov dl,20h" m$ u/ K8 w2 h, L, j6 j
mov ah,2h
1 A) p& _' s8 j% W* R- K int 21h
3 ?% o% r1 h3 x: j7 S pop cx+ e$ V# g! w6 J/ S* Q1 ^
pop bx
: M6 C# w: \6 v. @( z% { pop ax7 E( u t( `- g2 @
ret4 ]4 s2 p* ], b, r+ [3 ^9 E& g
display endp
$ a' d9 } [6 D2 U4 u. J# u
; B. G* h3 e: U# Z9 D ^CODES ENDS% g6 p0 b6 u; L3 e
END START
7 ~: M/ u h6 N! a- l0 [ h
. Q# J/ \5 t8 f( M, J+ {运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|