|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT: z+ v- w& O1 X' J' S
;此处输入数据段代码
( r( r6 n; |1 ?! D2 Z( A0 \& CDATAS ENDS5 _; N9 A' n$ p" w% T. ~# B
, h, \' X/ W( a
STACKS SEGMENT
7 _: M) k% y" u( G ;此处输入堆栈段代码
4 ^0 X% q5 G6 Z4 r) w) h. a5 xSTACKS ENDS+ ? M" H: J- K9 M% G: K
9 R* P- }% D6 c+ s7 j' j2 D% MCODES SEGMENT9 D; G. ?, o, M2 @/ J' X. M
ASSUME CS:CODES,DS ATAS,SS:STACKS& [% H1 o# d2 m! a5 F) D d
.486! s. l% z4 l* i( v
START:
% b9 R0 U- i. _6 c; y MOV AX,0f000h: _$ H$ L ~ P
MOV DS,AX6 ]2 t9 B* [, x& l
;此处输入代码段代码' C3 j3 l# f/ w6 c
mov si,0
8 d1 g+ d" l0 y6 O( q S last: % `7 y5 }2 D3 P+ w( g+ v9 V
mov eax,[si]& x, M& K( ]( Z6 C$ L2 Q# o
cmp eax,5f4d535fh* I7 o$ ?, @. K7 |" G
je over
# _+ b+ l* N7 ~7 G9 I add si,10h
+ g% [! p: }" I$ g; B" r. w jmp last
1 o- ~# y# o, F( J: K0 y/ G& T
3 L3 N: F9 Z1 ]- n% b8 J; C& u4 m over:$ `6 W f( E- T7 {+ P
add si,18h
+ a: \- Z1 D) ~ R; d mov eax,[si]
( s v* c0 |3 q! l% \1 ^: R mov si,ax
g& Z/ E3 W5 V; A/ C+ A; x add si,9
/ S5 f, f3 \" c! i# K# l mov ax,[si]
/ L4 n/ M% s7 t2 K add al,1
) B# i ~5 A E8 p( X mov bl,647 h, Y* z$ \7 [: c$ H9 y- z0 @ m
mul bl
/ N7 [. u2 ]/ n' P, w7 Q mov bx,ax
8 s* T* Z: @: Z5 K
0 ^: L2 ~. B# Z* i- P& W' h9 F. y call display- T' h0 U% P' s4 G, N* [' v+ Q4 Q
MOV AH,4CH
/ |+ l/ R( W* Q9 s7 g INT 21H ' R. B; x+ B" g2 y- r
" V0 Z1 M* z8 |* ?/ h
display proc near
1 \2 ~# l d& }# g/ {# o# W push ax
" I2 T& z4 K- ]1 X! m3 N; l push bx
; M Z6 Z4 I. w- V' j push cx: B8 z& L5 ^( t( x. ?* O9 r
mov ch,4/ Y6 M; {8 c; Z
rotate:mov cl,4
" R7 v `/ c* X7 d7 Z/ P" k rol bx,cl7 D3 C+ B. h3 W
mov al,bl
V2 b! _* o2 l: p: \1 Q6 | and al,0fh f8 f; h/ x1 [- A/ b1 E/ g+ X" d' t
add al,30h
% W# a3 S/ l6 x cmp al,3ah2 v$ C2 U! y: \, c
jl printit. O5 [3 d) c( [& b
add al,7h
9 @5 B6 T8 j$ h* ~; a printit:
" I" r( W3 n5 [) r3 O7 G mov dl,al9 a) J- v- Q# O
mov ah,28 O3 ~7 h; ~% c6 T7 O) U H
int 21h2 N/ h0 @9 V# r0 D# G, P0 I, R8 f
dec ch2 C# ]* h% U! Y+ Z7 E8 n% ~
jnz rotate
; ?7 P4 G5 v' X mov dl,20h
- }5 D+ W# \ Q$ e. n mov ah,2h X( H$ \0 a5 O" _9 U- N
int 21h
3 y2 K$ g& p2 v8 k: u1 e pop cx6 ^# T" L/ {4 }7 b! e& l y. f. ]1 E
pop bx
% s! {, W! e( }8 p0 @ pop ax! @! R8 g3 I( E
ret0 z' X' c: `1 n! C; z! B8 T
display endp
& h" E. z" l3 B) Y9 T. M1 l5 E( k1 |4 D3 J2 t9 ~) R( a5 f
CODES ENDS
# |+ w7 R( U# ]5 p' V END START* n c2 H, _6 B8 o: b
/ J+ W: L! {/ u
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|