|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
8 |! `! h& t; O* Q$ A2 S' z( w ;此处输入数据段代码
% l: P& m+ ~0 @# {( u0 F8 x- m8 {% o8 LDATAS ENDS8 e; [9 w# n4 y5 {, l& g
8 w6 d7 x$ T$ u% s
STACKS SEGMENT
) [* U: u9 ^% L. L: Q ;此处输入堆栈段代码; m0 }, P4 }" V4 K# H: S ?
STACKS ENDS3 z# p5 ^- O! l# O% }: [; P0 q; N" Q
1 d: l& ?! D* f) I
CODES SEGMENT+ Y3 I* U! j0 ], ^: U8 O3 T
ASSUME CS:CODES,DS ATAS,SS:STACKS
0 o) i/ U+ O2 D1 |/ B.4861 ~$ N: R8 t- a& ?2 g+ G+ w
START:+ J: W$ X9 [) P$ T" X0 A
MOV AX,0f000h" p' y) a$ p( `% w+ h2 m
MOV DS,AX
, ?9 z" Z* W, J3 N( c ;此处输入代码段代码
: V, _0 K! c, v! c5 } mov si,0
/ ^* s4 Y# D: z0 J0 C last:
# ^5 o; l3 B4 @% F mov eax,[si]. h5 q3 h' y: N5 K9 g, ~: P& M
cmp eax,5f4d535fh
. R0 l. A: O, \ [ je over
}% X1 D Q& K6 G$ y add si,10h
3 v! d& p, q# s" p' Q jmp last
) N9 o: j: L# u& Q9 \ 0 S( T2 ^4 N P: i
over:# h8 L8 O4 i: w
add si,18h
; a5 h9 G! G1 |( K mov eax,[si]
5 Y) o [& t* t/ g% U/ i mov si,ax3 s/ }0 [' q1 ]1 z" o
add si,9
5 y9 i6 E7 l3 s) {) G! Q/ ^ mov ax,[si]9 E& d U( x4 @+ |3 \
add al,1: ^! N! x1 J" v4 g
mov bl,64
% t7 F; k2 F) g% V mul bl+ Z9 p8 V- d9 k- c
mov bx,ax
w6 y( a8 C+ F/ y- c) V4 ]
" B( M8 t( E8 N call display9 v. N9 {0 H( x6 K! X- u# c: p
MOV AH,4CH
* F6 ?$ k" k6 m8 w" u INT 21H
# _" T' G) a7 ?& C v% s: g8 b8 p+ P $ ?$ h9 k1 Q8 g3 K: i
display proc near( {5 ~* N2 q7 }" d: s
push ax
! Y! O4 E- [- E% \+ r! o3 k) p7 k push bx W6 }- W6 Z' Q# |
push cx
* \% [2 `/ `+ I6 I mov ch,4
$ x+ x" G' M9 l5 A E+ m, ] rotate:mov cl,4' T! b: c3 e% v# F4 a
rol bx,cl
! H6 s% ^- U1 w$ P# b6 Y+ [ mov al,bl
# m, F$ L. H+ L# ]+ x and al,0fh
- H) }/ e2 d+ P/ H+ {, O/ \ add al,30h5 \. R3 H! X" O$ {
cmp al,3ah( p6 W+ x# e5 T$ m( ~9 g- Q) A
jl printit
9 P9 Y& A9 I+ f7 D3 D add al,7h {" B. }) L8 Z
printit:
" [: r7 o+ J y& g mov dl,al
* q! P$ Z& k* ?2 T mov ah,2
. b; q" E( C0 Q3 j3 _1 A int 21h& Y# z0 N) B/ ]; k- k
dec ch! C; T* q0 ~, v; Q2 I' W+ n
jnz rotate! S" L) H: T" z. H
mov dl,20h
+ [, A6 |$ o# c- E, s6 c( A! U mov ah,2h! i( ~. \$ N; ?6 U
int 21h
! Z- U: H( \# V( ~! p- { pop cx
* ^# L# M" z) _* `( q x pop bx, Y7 M9 a1 H8 A0 g
pop ax
7 d% @" }0 u6 W3 W ret8 _$ @! X) r- K5 X7 z9 o* U/ \
display endp* ~* N( i2 W1 g# ?; @7 [
: b( A! ?6 H4 N/ v
CODES ENDS
' k2 |' x6 |1 C END START
5 I) s% `& F! ]- j! v
# \+ L9 e1 O* M运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|