|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT1 S3 F& L$ E- O3 ]) |8 o! t
;此处输入数据段代码 8 k8 M" w: p' Y' ^* ]
DATAS ENDS
5 H1 } l) M. r& a; R/ B' c! t5 z/ d* y- [2 N2 \ P2 X- o* y
STACKS SEGMENT8 W6 |# X5 ^" u& C5 h6 P2 E7 c! ~
;此处输入堆栈段代码
" x0 B' l1 y- F( m4 \ g+ y2 L& lSTACKS ENDS
. a6 l1 b( B8 e$ l+ u3 S9 q* p6 b2 `1 l, A
CODES SEGMENT4 T2 Z8 b( j: G* ?* {2 {- @ `
ASSUME CS:CODES,DS ATAS,SS:STACKS
2 d9 c/ {" a9 B2 h.486# u0 D6 ?2 F0 g9 p/ ?
START:) `( e9 P5 Z% b. N) v
MOV AX,0f000h' H2 _/ h; G9 A* e: H
MOV DS,AX- S0 E: v: B5 W$ i1 k- o2 _
;此处输入代码段代码
" i7 B+ ?% C4 D( t3 s, ]& ^ mov si,0# ^9 j7 B5 r& t" s. {0 L
last:
, t) U& L: O* L8 C2 L+ J mov eax,[si]% P6 K5 N% t! e
cmp eax,5f4d535fh
/ @. {: e# E6 @: i9 R+ `# c" [% m je over
% `9 u- c W' W3 N add si,10h
6 i% s! T2 o+ M5 |- J jmp last
* U* K% I0 Z# ?, X1 e' e 8 ~+ o O& c5 L( c; m
over:
/ Q3 t s$ b* V0 N4 k8 @5 v add si,18h9 J. c0 x' Y0 u R6 Z0 Q' ]- T: N
mov eax,[si]. X1 L: j0 N0 ?+ |1 D
mov si,ax5 G2 F& o/ o' Z( }0 e
add si,9
( m: w/ ^ F6 i' N mov ax,[si]6 g4 {8 ^& u8 T3 i
add al,1
- k) R7 b. ?3 R" [* Y" \# g mov bl,64
) `# {' H$ A2 F6 R0 Y- X* Y8 V mul bl/ f8 a/ a1 h, q# N# N; L' Z
mov bx,ax
2 |7 {5 O5 a* E: H# O4 m3 i7 Z$ _ 8 r5 G1 U" I& R5 L$ M F- l
call display
% T; p$ C6 Z4 S" s; n/ k MOV AH,4CH) z9 q5 k N7 F: j% X% T1 l3 W# z6 j, M
INT 21H
- _0 ~- b4 ~% k9 ~* N2 x% R4 ~; R" ~ - o% X9 _ l4 c
display proc near
; d' S$ j9 @6 t4 u k9 H) C) y push ax
1 q8 }& y# b3 y1 C# H push bx
$ L* T' V. V! u( z9 [; | push cx0 c7 s' }) k7 I9 ]1 G
mov ch,4
* H0 [8 R4 P# Q, ?" V rotate:mov cl,41 a# g) V! i$ Q1 B: f* F3 o# c* q
rol bx,cl
* ` w3 o4 M: k# j5 U4 T mov al,bl
# @: M) Y4 y$ z8 l& @' ]) ` and al,0fh8 K. c, r5 w& p+ n" k# Z
add al,30h9 J) h" s3 Y8 e/ E' C
cmp al,3ah% P. c8 [; H4 ]: _& P, ?. J" N
jl printit
* X) ?8 i e2 x* O( ~ add al,7h
% t+ g8 L ?4 n printit:# L0 A9 |: V$ O a
mov dl,al' h8 L5 K9 w" B9 F/ G
mov ah,22 S/ E2 y' E6 Y& x
int 21h
6 p: ^2 k/ s5 g4 C! z dec ch
8 G. h, b4 n8 U2 F jnz rotate
/ m' P' d6 ~7 C8 \ mov dl,20h
2 I9 y3 R' Y) d1 R2 Z# q6 ^ mov ah,2h
# U; n/ y& C1 O int 21h
4 K4 ]* ]; i6 l pop cx& p8 f# q# ]4 V3 p" S
pop bx( V) P: k$ m( [" l7 `
pop ax9 L' y6 z2 S9 h
ret
- D7 _! ~, |) F5 u* n7 | display endp
( p+ ?* e" X% n& O8 n: q9 q
6 M/ d3 E. _6 c5 a1 i+ M }CODES ENDS
1 p, c: U4 R5 [8 p% H END START
7 T: n' u U; ? ]
9 p# e; K0 P3 {0 i* A1 t' ~% w运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|