|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
" W- \. y2 E# J) C3 U$ n ;此处输入数据段代码
. M$ N* p: J# q0 mDATAS ENDS1 P4 g8 R# |1 ^( l2 Y/ v
6 u# Z6 o/ q; r' e7 p: d1 J
STACKS SEGMENT
* M; E" o& N) J$ Q [3 O ;此处输入堆栈段代码6 C/ }; Y; |% E. `/ @; u. T$ M
STACKS ENDS
" ~: z5 A5 y4 G9 n: n0 a z* s) Q# G1 l) m/ _2 r
CODES SEGMENT
& R( z3 D1 @7 ^+ U ASSUME CS:CODES,DS ATAS,SS:STACKS
0 e6 m1 p+ A8 R6 o' l2 V. S- b) `.486
- L) G! v8 F+ n3 U. J) R2 v: I6 d" SSTART:
# x- y' r2 A, Q0 J MOV AX,0f000h
5 I3 f! E {, _1 d+ m MOV DS,AX0 g6 [9 s1 P$ u+ u
;此处输入代码段代码
- I/ H/ T; E2 N D5 y6 U+ D1 k0 t$ z) g mov si,0
& j: [8 S1 Y9 G( { last:
4 b! ~& z# M1 m# n+ E mov eax,[si], \4 L% E9 L. l+ c0 @
cmp eax,5f4d535fh# X3 ^; V, m$ N+ m# Y
je over
4 r: X a2 b: L% T) {* N add si,10h" i% M6 _- N$ L8 B3 I! r0 [
jmp last4 F! J+ b2 t2 y$ Z" m% B1 H% J8 |' R( f
) s. B# [% `' R' ] over:0 B4 m7 |" M- a% Z& [$ a7 N% d- T4 ~8 E
add si,18h
, }. E2 x; l; t$ A/ T- O1 ^* h$ m mov eax,[si]& @8 m' B$ p1 Q9 a4 k. _" ^
mov si,ax. h, }2 C w) G; F8 Y' r
add si,93 d5 j8 A# d1 @; Z/ k' a+ \8 R; L6 o
mov ax,[si]
# Z* ?( g: ^3 L& `* u# V" J add al,14 T" K. R6 Z) y2 ~
mov bl,64# g) R% ^9 P- s
mul bl
/ e& e/ g& q$ s- Y% j& ^ mov bx,ax
( ?. n0 G8 Z- f, b+ H
* r9 P: h e; z4 t. G( W: T call display
; t, a2 G6 g! y MOV AH,4CH
+ v9 G- [4 O: [7 B INT 21H * G$ q z+ d) R9 D2 c- c2 W5 K# M
6 z9 c& G3 ? O% Q1 |# I- @
display proc near9 U0 Y! s' ^* c, k" h1 n0 z, ]
push ax# i# Y9 H2 r# x' \7 ?0 I
push bx# t v0 W: A; A* r
push cx
/ w/ Y. W H9 Z* T: t0 V mov ch,4
4 M, _# R8 C( Z! y r# L8 t5 a rotate:mov cl,44 ]1 J, ]8 @- B* A& v8 \
rol bx,cl
# \0 o. Y1 N, j! g+ V1 o mov al,bl
9 F3 }8 u" ^9 f6 [6 a2 A/ @7 C and al,0fh
. `. d8 u) }1 u' ]# m add al,30h+ x {9 ~! z/ ^) g3 f0 m, q* ^
cmp al,3ah
, L6 \ ]; Z/ z$ ^ jl printit* ^) }4 e4 U+ u) O
add al,7h
2 B' v# I) F+ o* U1 n printit:3 t( V3 \$ d0 ^" k/ t8 }& w
mov dl,al! D' ]: E1 p$ v& @& K
mov ah,2
+ P+ U% b$ Z& d# f9 L5 C int 21h
7 g) q2 ~1 S9 } dec ch( F+ Y. E1 A N [
jnz rotate& ^8 ?. w0 P2 ?# [8 }. h
mov dl,20h9 ~5 M3 P' f, r
mov ah,2h
& t( Y3 h1 t& v int 21h
; f4 d/ \4 ~0 t1 U pop cx
* \; ]- E$ ^' |3 g: t9 w. `9 z pop bx
3 r" _9 W; P- G ?0 }# H pop ax x- L4 f+ Z+ u1 q+ s0 M4 m
ret
0 d' A2 L3 @3 w" t4 [ display endp
4 Z( Z1 h9 S' F: r0 G9 v& y# ]. {/ H. x W: Q: t% c5 I
CODES ENDS
+ }) w: t2 H! K END START$ Y2 E" }: K0 G7 c9 R8 }! \! [
$ k7 x* E* _' z. k, C: T9 u
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|