|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT. q( b% u. A) F i5 ?
;此处输入数据段代码
/ H; T' A% c7 T7 J1 Z; z+ UDATAS ENDS
" h; @0 v0 ^; `1 }6 V( Q Y$ ~ w7 E$ d9 h) J: z0 i. M- ~/ Q7 x: l
STACKS SEGMENT3 T- ~* r' C2 k! B& a* W! h
;此处输入堆栈段代码5 w2 L$ o8 v4 m# ~7 u# N
STACKS ENDS. L: e# Z3 W, w7 H" q4 ~
( C4 X0 r$ H( S; J) N
CODES SEGMENT
4 J1 Y H: d' j ASSUME CS:CODES,DS ATAS,SS:STACKS% b' i+ b7 ^9 ^ \+ i3 E
.486- j, n. d' W5 G
START:& v# I' Q* W; u$ l, b( f
MOV AX,0f000h8 D) O' _ U# h9 ]" M8 Y
MOV DS,AX" c7 _+ |' n O) i6 Q; T
;此处输入代码段代码
; R6 `7 Y' D6 G1 S* b* J2 r8 m3 r mov si,0+ G" E# v$ d" V, _6 L2 n% h
last: & P( r( e# n' f5 ?" l% F
mov eax,[si]
% g# b+ N/ ?: W0 T6 W* U cmp eax,5f4d535fh
& P& c: Z- ?; e9 f( F je over
* i) M4 X" T. F F0 J4 P$ D/ \* | add si,10h" I# S" |& Q+ X
jmp last& z1 R% T# O( D
/ Y# {6 K Y+ ?4 S9 p
over:
7 [' O; L7 C0 H5 F$ N* q) g' @$ [ add si,18h
+ \% D, ^; y! c* |8 ~ mov eax,[si]0 [6 v! y6 x9 H Z
mov si,ax
$ k: d+ i' ^3 \9 B' N/ } add si,97 E+ K* h5 A. }" t( F4 w0 _+ i
mov ax,[si]
: g% G7 r6 u1 ]7 [" q+ J9 J0 j9 [) a add al,1
* n6 N) D/ l; g3 z. h+ v3 H mov bl,64; ~4 ?( V5 B+ V7 y0 _
mul bl
$ p: ]' ]" z& L9 s mov bx,ax7 r1 L" m; l) l# j/ D, X% V
, I! P0 M7 }0 d2 C1 X k! W. p; s! N) p
call display
2 z' U' p, o- e MOV AH,4CH6 X9 t8 v N( ?# X) T2 ~$ b
INT 21H / N; l" @+ g; ^' b
7 `$ E/ B. N# v6 r6 o( w+ t" U6 I; k
display proc near* i0 g0 e$ i ?, i \
push ax
: V$ m" O: C. o$ X0 ^ push bx n4 F9 f0 r! C8 _/ A* ^% j
push cx
8 g' F% ^2 b8 m7 h' r mov ch,4! e. ?! a8 F- @+ d4 N+ }
rotate:mov cl,4
1 \8 m( {5 }4 i+ A; c9 } rol bx,cl
- W. U7 }8 g+ Y D mov al,bl/ M6 Z, ~, g* P2 s" l
and al,0fh
- Q! t6 b3 U8 `& w+ } add al,30h& b, F8 j" _. B, a! ~
cmp al,3ah# m: q, w" I6 x: R7 J9 w, Q, \
jl printit, J3 M5 \' V) j! F0 J
add al,7h
& F( f' P- g% Z+ ?) M% e" k printit:1 ?# Y, y& w8 Z7 l7 k
mov dl,al
* F( E8 p6 }/ i9 m) {9 H mov ah,2
# s# A" Y. h$ O) v X int 21h* @! w+ v$ s! l$ g, s: y: `
dec ch
2 D% G; z" R3 h! o. V jnz rotate
0 w3 L0 E: @3 j% l) d mov dl,20h6 p2 e; w$ b5 e) Y3 ~. c( r
mov ah,2h
' V# H- g+ q# L$ u int 21h$ Z. J% v: a3 a& T/ a' B4 C' v0 z
pop cx7 N% R8 l6 a# w& m% C. \! `
pop bx
& `( i* F9 z% y5 a( z pop ax% ]- R+ j8 ~$ `/ V( ^, O
ret$ {, ~ }$ M) l2 N) S0 w
display endp+ [' F6 A/ |; C" Q( \; l1 v
+ E7 {6 p8 b9 r# w3 l: CCODES ENDS
7 v6 V1 L& `+ w END START! {) ?* @" g) W3 O
0 e0 U: q+ y* _ ~ h% p. V9 S
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|