|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT% a0 X# c) f! D9 @, H6 Y1 K8 X
;此处输入数据段代码
7 ]3 ?0 u0 U2 T5 FDATAS ENDS
* [' w% J7 }) P+ ?8 w; _- u; b
5 \2 D& G3 h! O: xSTACKS SEGMENT3 d) R7 m& W+ h
;此处输入堆栈段代码3 W$ ?& s; b0 b- Z S) y
STACKS ENDS
' u x# @% `; Y- S6 x" U( D$ G: D# @3 x, G8 R
CODES SEGMENT
% h# o- m7 ]$ B* Y: E ASSUME CS:CODES,DSATAS,SS:STACKS
1 q) H/ M+ i, K* Q$ O; J6 W.486( ?+ c1 X$ J2 R# ^* Y. b8 m
START:0 G$ O4 I* S3 v% `
MOV AX,0f000h+ z8 N, U# h, H/ ^' y
MOV DS,AX- k$ P1 @1 z' i k& ]: T6 M
;此处输入代码段代码
3 U) Q1 I' k8 v; x+ h$ B1 f mov si,0/ [. G8 t/ F D9 `* a3 ]& h. O
last: 6 P0 U3 a* ?6 h/ c1 b% ^* D- Z
mov eax,[si]
r' Z- @6 E+ V l cmp eax,5f4d535fh M: O6 u) e+ C* k, E& [+ q, Z
je over% G0 g1 C- i0 l: x. C- y
add si,10h; X$ \- j$ G$ |
jmp last& t; @3 b" \( F5 d! }9 k- _
" H' P3 c( J# u( _; e: {
over:
' @2 U4 W' l' x) E, Y: e add si,18h
" _- @% v( N% J& C, p% o mov eax,[si]
: e! j: a/ B" N2 | mov si,ax. S& `/ i, J8 ~0 T; d
add si,9
" Q1 g0 q& e- A4 D. Y. ?1 R" K mov ax,[si]7 U" u& l& U' j* ]: [
add al,15 f w, o9 p/ c T: A
mov bl,64
4 ], \; w' U& }" v mul bl( p( J2 i; l. X5 ~6 I i) m
mov bx,ax
+ ]- r, v" W5 F2 \: { 4 j3 @ O: D' h0 w& m
call display+ u) t5 f) P6 C& x m
MOV AH,4CH
" u) p1 C# p9 J( L INT 21H 6 a. d$ W- O# X( w' O$ A
9 |. W+ l: u. a4 Y i* K* K9 F6 L/ K display proc near3 |9 l- R8 [# J
push ax
, i! r% g3 G( @5 L push bx( ~8 J7 U4 N! Z' p
push cx
' E* f2 W; U) l# e& ^# ~7 X mov ch,4; d- y8 X% `9 D7 k" I' }
rotate:mov cl,4
" C0 D; |0 b' Z$ r h! {- m rol bx,cl" W4 K, o& Z% @9 B. m3 M9 ?- }
mov al,bl
; k) i" ?5 B0 `, l& `! l' D and al,0fh) G2 D2 w9 p9 }) {
add al,30h
1 n" C! V& M% g: ^' Q cmp al,3ah. t' m) C0 ?1 i, ?
jl printit
5 ?. V# v! \: s, n add al,7h H. c" z2 V6 v( _* M' ~6 p3 F
printit:
' C8 S8 f* O6 W: f9 p1 W h$ @6 J2 ] mov dl,al! T* ^9 L n) c* \5 K$ j& l
mov ah,2
J8 `( C! F# E! c+ e$ ` int 21h
( L0 v. U4 c6 V dec ch# g. Y2 J' B# Q( f
jnz rotate# O/ k/ P: z6 F8 E. p4 l
mov dl,20h y0 ?" y& u( R g
mov ah,2h
) Q! g0 h m, b, V7 ^ int 21h; Z( Q- `, |9 J* W5 u
pop cx
9 f6 M* [. A$ C% W# o5 c) e# o& t pop bx% U$ u" p( t4 J1 A7 N2 [
pop ax
2 B3 p1 ]* N; d- S0 C+ d9 E1 ?" |) g ret
& I2 Q: g6 d, X4 k display endp! m4 j3 V3 s* N
) p1 r+ R2 \/ `" |% Z" \CODES ENDS2 p, q; M- p3 x( U
END START- }' i4 G2 K0 I! z0 r' P& r
& ^5 E* b; D8 Z: w1 z* T3 A运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|