|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT, g$ R1 w6 d& h
;此处输入数据段代码
% Y2 B7 D6 R$ \+ wDATAS ENDS' H" s1 v8 _& Z- a( ~; d
) ^/ h! i5 M G3 m! h7 ESTACKS SEGMENT m$ n4 @! ^* }; {
;此处输入堆栈段代码/ ?& {1 o8 Y: P+ L Y
STACKS ENDS) x0 }6 q0 \6 \: \, m1 U9 S
' Y' P4 x# D, k" w6 s
CODES SEGMENT* M6 D' I% J. U
ASSUME CS:CODES,DS ATAS,SS:STACKS( j9 Q: u% l D4 s- V1 s
.486% v3 \' s/ N+ W! P- ?8 |1 r3 Q
START:. z$ p4 ^* t8 Q, F
MOV AX,0f000h' m# m. G# g3 O3 h) t g
MOV DS,AX+ q( l1 P. Q5 t/ O
;此处输入代码段代码
/ N6 n2 I' |% M4 c mov si,0
% \2 M: @4 \# }# y8 ?2 o& G' n last: 7 x2 z/ ~: X' U" f3 g7 y* V
mov eax,[si]
4 e' n" K( G9 |3 C& Q" q" X; n cmp eax,5f4d535fh8 n8 y5 C+ S9 l; v6 q
je over
7 t3 n) w% R% }- x* e add si,10h
8 Z9 @% d1 G) r. x2 M% D+ ?2 ] jmp last$ M9 p& l u6 R: X3 a
5 N& _( G D0 Y; o. l, O
over:1 ?3 r, y6 {! O7 I( p
add si,18h
) `* n/ M0 n4 V' S2 X$ R% l mov eax,[si], x/ x" G+ }1 r
mov si,ax
0 M3 v8 \: ]# i5 V' e, s add si,97 p0 @) Y. h, G! j" @$ {5 v1 O
mov ax,[si]
" \# `# a' y7 m" t add al,1
$ C; W, K, ` N, g1 ]6 E mov bl,64# M# n( W9 k/ _; _8 [3 Y
mul bl
% @( \2 I* b6 y6 R3 Y ` mov bx,ax
# ^$ v# U' P: G- \
' p& A9 n" k9 c) G" ^ call display" A9 K. J: s) V& R2 d/ `+ N5 i% q
MOV AH,4CH
' T$ A3 M! H0 y; \$ X INT 21H + Q: X' O/ L; y3 s: `
: p8 ]) D3 w& K+ ]5 I, @& P1 h display proc near$ O; P8 i" Z1 s% q/ j: @
push ax
3 E! l# J ?9 I" J7 w$ ~. S/ @3 g push bx7 r1 A4 C9 e; s1 O) D Z
push cx
( ?; ~, [' C8 f3 @ mov ch,4
8 d& H4 M) N6 i rotate:mov cl,4# C. y# ~' ?) ]2 x
rol bx,cl) `( N) z7 S( k {! H. n
mov al,bl/ I+ N4 a, i* t; n3 Q1 K
and al,0fh
* o2 t- ]( x: ^% M5 r add al,30h
, K# F) }4 A9 W cmp al,3ah: o: ?3 V9 S: a9 G$ a. S# g; ]
jl printit
: i6 I$ |8 M3 R8 B add al,7h2 ` k% S5 x' e+ e
printit:
$ \" y3 T# m* N$ O0 [4 b& _ mov dl,al; s) c: ~' R. Y& [4 W+ p
mov ah,2
# T1 J' d1 X ^0 ]# k5 G int 21h
) b) z% S4 |* m6 A dec ch
: j t# x: G6 s, i jnz rotate
& Q# K6 ~# t2 i: T mov dl,20h
, ?0 M+ }1 E7 E) B. r1 J% ` mov ah,2h
' P A* D' T. u int 21h
s9 X% c! [" h+ C7 w, x pop cx
5 v; i5 M' \' s0 P+ E4 C* ~ pop bx
5 @% r& ` d: d! T pop ax* ^4 ^) U0 p* N; W$ D
ret: P& U# t# s6 l+ y5 W
display endp. k5 u/ @* \# V# P; S6 y
# I F1 z0 S! V& e' F5 h1 K* KCODES ENDS
* X- }' Q% X3 X% N END START
& U% f! k, [" ?( V1 S* [
2 m( e+ c5 C5 y5 L$ E运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|