|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT! U- g) p2 `1 D; F
;此处输入数据段代码 9 n0 Z, N$ {9 j( m2 {
DATAS ENDS
( @# x# G/ k; k0 h. L
2 Q$ k8 L) {' p% k7 E* P" pSTACKS SEGMENT
' y& b' v% K6 L+ a. _- d) V ;此处输入堆栈段代码
$ d8 h, B7 a0 W# n0 S& m8 B! DSTACKS ENDS' Y6 J" @: d' \
* y; t% A/ r3 ?( [) `, P5 F3 _/ s% D6 v
CODES SEGMENT
% r; o! k5 I _4 e: m; \, m: E% N- m ASSUME CS:CODES,DS ATAS,SS:STACKS6 R# z" m& V( g3 `2 o
.4867 a8 {( i3 C) t0 e# X# m
START:% K* H, ?( y2 S" {1 P8 @- O
MOV AX,0f000h
" w5 }- ]* D1 k MOV DS,AX
: l5 ?; }. ]% R- A- q ;此处输入代码段代码
( B& P y6 W; h5 c/ D mov si,0+ V+ t9 k1 q$ b# T6 j
last: : e, o/ Q/ b1 {
mov eax,[si]) `, N$ _4 J+ F+ Q* i- l6 f
cmp eax,5f4d535fh7 {" b5 z+ w# Q) L3 }! c2 `
je over- M3 v! G: R1 e' g8 e2 I, ?1 {
add si,10h
E6 Y3 h: o ?8 g9 P" d jmp last- s9 K# H/ a. e; {
, `$ m3 B% \( h2 H6 q# N o: `
over:
+ D" V2 |/ |" l9 M4 l add si,18h
! ~: W& e) N3 o9 z: u mov eax,[si]
( o' W' ~0 U z$ f Z. u! h mov si,ax- `9 y# G( x6 s2 w1 e
add si,97 [) T3 _- e$ }1 g' e7 P9 x* f
mov ax,[si]
2 N/ Z n: Y4 w" y$ L add al,1
1 `9 Q7 ^9 Y% x7 o: i- w) T' | mov bl,64) P; L: G' U6 ~. D: w% c y" X
mul bl
0 b s1 e% ?, I/ a mov bx,ax4 K0 T6 V" j( v5 _) X
% b# z! L6 O3 F3 Y, w& N
call display
, G- Z* Y R; x/ T* t9 ?. H MOV AH,4CH9 V1 o$ z2 ?* R$ p% n, ?7 j6 G0 A
INT 21H - K& H0 P: q2 s0 U- P& i
: E! T$ J r* s! G
display proc near8 O# Y; q5 A1 H# v" y
push ax
h2 @" C j8 D' K1 U6 V9 Z8 c push bx
) m0 i9 J* i d& r0 x# H2 ^. ~ push cx7 }) a8 }4 F G" s$ l. y
mov ch,4
( M) A. N2 z% w7 d: H7 ~ rotate:mov cl,4" C2 E/ F6 g, u5 G, W: Q' s
rol bx,cl5 S) G; y# ] |: @5 J8 b
mov al,bl# v& @8 a( n! W& \7 m, v2 R+ L
and al,0fh3 G( k8 o( Y+ x% g$ X) e: @
add al,30h) f- I5 c" F4 n. r* n
cmp al,3ah
+ ~5 M! i7 r9 ^/ ^7 I) d5 ?* C* S jl printit5 g( K0 @ `2 I T
add al,7h( I$ P- _6 w6 h$ w9 y
printit: B* ]! a4 }) J5 {- w1 J
mov dl,al( w& N) r& m, {. B' ?! }( j
mov ah,2$ o* {2 j+ O5 f; W
int 21h3 C* B8 ?; L3 U
dec ch
3 w9 l. ~0 S% U+ {+ M% C: C jnz rotate& K" ]+ H" U6 Q/ ?' W
mov dl,20h- B. N$ L, p' Y5 ?" t3 i* p; a3 J1 F
mov ah,2h: |; V) i) E, x3 C% J
int 21h7 M' g" Q9 i/ t; y# r
pop cx+ h4 k7 G0 S7 w) f0 z
pop bx
F; R ~! B; D( N% g( u5 V pop ax
8 D6 Q; }, n4 \" Q( e# C d ret
/ q4 D6 q0 w8 q display endp
8 ^4 q6 J8 O! s- m- v. a, t; `6 K& X& m2 ~) x$ o. d5 ~+ n
CODES ENDS
5 \: l, k0 ]: M END START- Y J: T0 D' N; B2 s' G
; l+ D* m$ ]$ z L% x
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|