|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
1 D$ ~0 o! [6 q; q$ ~- `9 Z ;此处输入数据段代码
2 t x; a0 }8 f- w, p( ~8 }DATAS ENDS
# m# j; k6 E2 d9 B7 {* l
; i: W# y! D, n, a8 N, G$ Y8 fSTACKS SEGMENT) c, [& I+ O% i. ~
;此处输入堆栈段代码7 p2 \) J+ l- |6 p" u' j8 J |0 z
STACKS ENDS ~4 I1 b! Z( {, o0 F9 v* }
5 U) Z* B$ x# S4 R
CODES SEGMENT
, e* t; n& Y' _+ ? ASSUME CS:CODES,DS ATAS,SS:STACKS+ X4 \- ?5 f& o I( d+ k% P$ {, b
.486
5 x+ V% p( q/ A! |/ w9 ?' TSTART:7 D$ d' _# }3 z2 l4 u* A4 Z& |3 [
MOV AX,0f000h
( u. w+ h7 v) Q C( P MOV DS,AX6 J7 S5 u- @2 o4 g3 S# ~
;此处输入代码段代码8 j3 S$ j$ k( ^; {
mov si,0" r/ ]3 c1 d( ?, v' G# Z* ^
last:
, ]1 D/ y5 ]4 r3 X mov eax,[si]8 c: N9 j% S, h0 h# G
cmp eax,5f4d535fh4 L. _& b8 h+ G: M* d" J8 b
je over8 L \7 q, }$ Y2 w0 I
add si,10h8 @' o* B8 y( @) ~9 u9 _
jmp last% p7 I$ q; Q! g8 P: w2 y
1 k* o; }# ] e3 Q) D& r1 n |
over:
! j5 u+ M5 N: G5 d* I, l* b add si,18h
3 a( X! r7 c, u8 ^" h( q mov eax,[si]; l# V; x4 ~4 E4 i# k
mov si,ax
+ u {0 m; g/ b* g add si,9) }$ u5 k$ m6 v- A- H
mov ax,[si] X _5 J. {: U
add al,1! H! [& }0 q6 K' c3 G0 V
mov bl,64
/ e. ~7 i, j; o5 \ mul bl( b- Z, t4 F, k
mov bx,ax( o% I+ D7 U$ _. o! U
, g% b' f# b; F% T5 I0 n
call display- P; f' |3 X. I7 X: K% E
MOV AH,4CH
" O7 r% C& o9 g INT 21H " L) K7 ?2 B% B4 {% }% |
; G( [7 i" M% M- I
display proc near
( `, L1 e. V" ~. C6 n; C) g push ax @) a. ^+ T0 N7 Q% R
push bx
_* S8 H2 K* W% P, W: r push cx
# o8 q) l5 r9 v" \& J% f* ` mov ch,4
8 N) F8 n9 m; J) V& k/ W9 B* z rotate:mov cl,49 t8 D3 r) r0 L
rol bx,cl& g* w- L' {4 e" j
mov al,bl
/ @8 _. q$ b" i9 f! A6 E and al,0fh& @# g" {! g2 n" Z
add al,30h
4 v* r: \7 V e+ U, | cmp al,3ah a6 C! |+ ?: N! ~0 ]
jl printit K- {5 j* j; q7 z8 `: p- Y- ?) O
add al,7h+ [$ k. @/ V' p! s' v
printit:
2 s! d2 |! F, _7 C U! q mov dl,al2 ^- p) E4 o8 m6 C$ @
mov ah,2
1 E# O4 u0 I; o* \1 E int 21h0 S& p+ T6 g+ W8 ~
dec ch
* J( S) Y" x% c( n+ u jnz rotate$ y/ P1 y$ ]; a, @7 H& _7 |
mov dl,20h* ~ x. N+ R' D% r
mov ah,2h
0 F7 b$ @7 X! C% S) d! | int 21h
# }0 u0 s* s8 y& v$ H5 i6 ? pop cx) E% }( V( N' b+ B
pop bx" B* H4 G( E- i
pop ax# T/ Q6 E0 G) P' j
ret
- B; \! P4 C+ X1 O( C8 W display endp9 E1 F( n% C: F& V
2 E/ `6 L! c5 g5 u( D
CODES ENDS- g. M/ ~6 K+ R4 D; U- e
END START
) m7 w, e% v7 r! S7 \1 m h
* H m1 T6 T! w5 X+ q" E运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|