|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
. b' c0 ?0 ~* g- p) F/ r; ?5 r9 K ;此处输入数据段代码
: ~3 W, z H" M/ BDATAS ENDS
: v6 ?5 T$ P9 C, e3 y, q2 B) R( K
+ N- f7 ^ E4 z6 F7 U, M2 s6 }; lSTACKS SEGMENT" ]) O9 ^0 j# o; C
;此处输入堆栈段代码
8 C5 f+ _7 w, _" N2 }) BSTACKS ENDS! c/ ~: G5 f; F" H5 j* q" v
) o, a* q# q% i" ^* U1 `CODES SEGMENT
% w( J) G3 _/ ^$ F2 L; _; D) S! q ASSUME CS:CODES,DS ATAS,SS:STACKS3 d5 A5 _* R8 O0 P9 Q
.486
& `. n* m$ V* b" QSTART:/ o; R* A% D7 \6 {- t
MOV AX,0f000h
% o" y* |3 i h" {+ G MOV DS,AX
6 O, l2 R! H- b8 g* m9 V* W& z5 e ;此处输入代码段代码( J! M' h9 L' m
mov si,0
* a6 t5 l9 R& \* T; {4 m! e( ] last: . T- s- H+ p; f2 v: x
mov eax,[si]
% n- L; U) ~1 M+ u+ a) M3 { cmp eax,5f4d535fh
% Y" F: u) l V" k je over) @! Y, C; p9 {: ]- c0 c T- p; @
add si,10h( R2 }# y: J/ s$ q
jmp last/ U a/ \) T$ y' S
) r' v2 |, C) Z; O4 { over:
' b/ H& W) w. o5 ?% |) C+ H6 B add si,18h; x, B- n/ }2 X# r$ C \7 `
mov eax,[si]
( Y% Z# o- s7 ?5 B mov si,ax
" b( a1 f& ]* B! F/ ~' P3 g/ o add si,9# D7 M$ m7 V& H
mov ax,[si]0 g% ?$ V" T$ y1 [$ l# V+ i
add al,1
+ {3 A' ~1 ~" F mov bl,644 P/ k X) a% R& s$ [$ f
mul bl
& Q1 j; o; u2 y: t- `& B$ t0 l mov bx,ax
7 f3 W+ N, [. m( w' h! ` : I1 k6 z9 \ K, X: z# N1 @. S' v
call display
- x9 F8 d0 A" F8 F MOV AH,4CH9 [# x+ ]" U* ]2 E% I0 n7 T' A
INT 21H + I( J8 v0 f& I/ {# o+ ]
1 p9 a. w: v8 O( d. H+ }' _
display proc near
: g+ @3 @6 d8 s push ax9 @& s$ _; q# }
push bx
0 }: l8 J3 Z) J push cx
2 ?. X- G0 M9 v! y) |; j( a! z' Z mov ch,4
8 C' H$ \/ k: a rotate:mov cl,4
2 L/ E* {/ D e3 I+ F# i rol bx,cl$ T4 l4 a8 X. x* b& S& V* Z
mov al,bl4 P d( F4 G- q! ~, E7 X
and al,0fh
3 Y0 I; J$ X" c) V6 E add al,30h' v) I- {/ B" c, h2 h" |5 _
cmp al,3ah
8 u6 H' Y& o7 t jl printit
( ~7 }2 a( W0 c& M add al,7h: P2 o5 ~, E! K# R; M
printit:- N; K1 V$ r+ \0 M7 E. { n
mov dl,al
/ t( v9 G1 |5 a: V, D' j- { mov ah,2# g) C* h- |6 P! v$ x
int 21h$ Y! ~' j5 `4 G1 X: B# p- ~# \* ~
dec ch# N5 B h# R) j
jnz rotate3 g; U0 j9 U) o0 s5 y3 h
mov dl,20h3 l: s# i# |8 u4 g: j" _9 D
mov ah,2h8 ?% w f% n* C7 _
int 21h7 o6 w& E5 d1 Z& K
pop cx
# s: R( @. z' s) j* O- y pop bx
% N2 V7 y/ |+ s7 i3 m. ]' I pop ax. y, J$ K! m$ c3 N/ G& L
ret& I+ V* T0 i% V7 h& @
display endp. @) A* F) B4 x. W; i
1 F/ h. T) ^. w' h8 i* P0 j8 k
CODES ENDS
+ S' u# a7 N6 w" ? END START; [" _9 U0 Z- H, {# \/ k O
( _' _' d! C" N
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|