|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
7 [1 U* ]/ I" K) k$ Q% \ ;此处输入数据段代码 * v$ S ?3 W# |9 Y# w
DATAS ENDS
6 I9 [2 }5 j/ H& R7 x
$ X% }' n8 y0 n7 ?. g5 t& [; PSTACKS SEGMENT& C8 q' C% k" w3 k L6 }2 ]$ g
;此处输入堆栈段代码
0 _' a9 z0 s& B+ n. _. F+ I' RSTACKS ENDS: j4 @, ^5 d |- R3 h
& T6 Z/ M$ Q. \
CODES SEGMENT% q" Y [* m9 A
ASSUME CS:CODES,DS ATAS,SS:STACKS
" l( z* J8 b w1 i9 a, {.486
% b; x- [$ \+ k7 P6 w QSTART:
3 M% P6 e+ } y8 t0 s MOV AX,0f000h3 @4 h3 ~. H' ^ [' W4 ~" R i: f
MOV DS,AX
- V7 h) w" O& G, C ;此处输入代码段代码
9 x2 F/ G3 ~0 _3 h8 ?; t mov si,0
+ G) r9 F8 D/ [* C/ g last:
; M! ^- V( u6 o8 {' a* ] K mov eax,[si]
% e+ Q3 ^9 z2 i [' I1 | cmp eax,5f4d535fh, u1 V1 ?5 s+ {. _" ]" R
je over2 j* S0 K& w# [4 K' r
add si,10h2 M& s% w8 q- u" R5 D
jmp last& H" F T) J7 S2 w
. b: j- J7 J& Z# e: X
over:
* a9 I* H) N* B7 {& Y. n add si,18h; N$ ?! p7 P$ Y1 F
mov eax,[si]# q, i: j' X. V% k+ D9 H
mov si,ax
" `! a+ ~) i- p3 U/ \3 Z add si,9) {$ |0 {; E; A, P- [* L
mov ax,[si]- Q; |) `3 Y' w& Q b2 M( l/ g5 h
add al,1
3 W+ ]1 g5 j% G$ K; P mov bl,64& m& D' W! r1 a7 f
mul bl1 b K$ ~8 ?8 O8 m5 n
mov bx,ax
0 j$ I8 ], U, ^6 n
3 S. Y O7 u2 g' l! V% S( t call display
0 {/ `7 ], J/ l+ p/ ]* h6 b MOV AH,4CH/ v7 u7 y: r! ^% B) j
INT 21H
$ C8 J; N8 ^: t, T# v; D! s
1 A4 \5 a9 L. F# _ display proc near; Z3 B/ a) S, d5 |7 t9 d* ?" a
push ax
! p ]3 O* |. {/ J; K9 v1 K1 f$ [ push bx
; [7 N/ b: W- u" E+ Q! R push cx
; G, m) a& i: n mov ch,4
8 ~9 W0 q6 y# ? o$ r rotate:mov cl,4) y+ z2 @1 z" s4 E" W6 @3 O( S
rol bx,cl
" \# G* J% g5 N2 U8 `; @ mov al,bl* P# \0 B( P& N. f: X0 W
and al,0fh
$ e) f1 Z4 z8 x) r: s; _) s add al,30h' }" P( g6 `* y: p; \+ O5 s9 U) \
cmp al,3ah0 C, J; z0 L4 C
jl printit
1 w8 `. Q* u7 D! S/ } add al,7h+ _; n9 P$ D) U, q
printit:
/ P; E5 @. m- M t/ u8 M2 i$ m4 h* j* j6 F mov dl,al
0 B" J; u! o: N4 K1 w% ~ mov ah,2
( O& q- y: w' R9 z: r6 U+ ? ] int 21h* b( h8 @, W) K* W
dec ch
, Q4 f& J @6 L( `' `& ?. D5 L8 w jnz rotate
' P+ k' l2 S) }6 T# U- b! u- A mov dl,20h
6 U9 {4 G4 P% h1 c mov ah,2h) I. g5 S9 M. A2 {* Z8 u
int 21h6 v1 }4 X. q& d( M1 f
pop cx1 m( z5 Q( M2 r0 M4 u$ q
pop bx: [) B2 W7 |& ~# k
pop ax" y8 f! \ Q1 s4 P! z1 }
ret
/ ~' M$ \0 ]' b6 c& y display endp
+ B+ j! H$ B) ]; c) H t% d2 f
8 \1 s$ J# p# U1 f/ f, C8 B1 RCODES ENDS
7 ]' j4 {; }: |5 g- F3 O END START
& A' Q+ i3 n) k$ @- R- V- J* F/ f6 ~ `% _
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|