|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
2 X, e0 R% e7 _' c ;此处输入数据段代码
/ Y9 l" C1 p5 X% F; `DATAS ENDS
( p* G! M" ] l4 a( Y
: [: P4 w& n) e4 y" q" W0 W3 C6 |; @, sSTACKS SEGMENT, X6 C7 t+ |! V" i; S. q* g% ~
;此处输入堆栈段代码2 y* x! A$ r. R1 b. C
STACKS ENDS$ }8 ^& a5 S, D" Y
& y! W- X8 z( }& B1 x2 t# a; eCODES SEGMENT4 s( a- R# i: r' ^$ S6 t
ASSUME CS:CODES,DS ATAS,SS:STACKS5 t# O) n/ D. R: l/ ?
.486) g1 [ ?( R' ^9 W" B
START:
6 P5 G, X* |- W+ F* D1 V/ J/ k D/ e MOV AX,0f000h$ m/ ^0 z* T6 l% y" D" D% K* K" b
MOV DS,AX3 r% D6 C; f* f7 _' V
;此处输入代码段代码
0 l9 f' U3 u4 {: }! c$ r7 S mov si,0
( W, e1 K$ B$ C' Y6 }2 A last:
3 i; e: H4 K) A& z# |( Y; Y2 d2 p mov eax,[si]
; z( X) A; S0 Q4 B Q f& h* Y cmp eax,5f4d535fh1 V$ j' k# z' R3 T+ _/ L# d
je over0 N$ ^2 ^. Q0 a ~# o
add si,10h$ w9 o3 @# j3 |
jmp last6 S5 D+ t% S8 q+ w
4 ` ~- [' k2 R$ n3 N/ h/ U over:
5 n$ y8 }6 L9 T2 k% Q& F g add si,18h: J9 O4 T: U" K
mov eax,[si]4 i, Z; B& L8 h+ e4 d, u9 B+ ]
mov si,ax+ n. @) j3 K; h
add si,9: Y8 a: S: t4 F A5 L) R j# k/ o1 w
mov ax,[si]
6 [$ C$ _; L$ l Z$ p add al,1" g8 k7 H G" q# N9 P. }# P) k. l1 }
mov bl,648 x7 } @5 h9 K
mul bl
0 ~9 h. g u+ Y9 O mov bx,ax
0 f1 R0 H, f' ^4 R" k # ^$ n: b. Y8 M
call display7 ^0 G( S7 _( s! { g) {" u0 l
MOV AH,4CH5 @+ \5 ` n9 Z+ M
INT 21H # w' Q5 H; `! m4 |( j
. t# o V9 @3 X: G3 [) z( l9 d
display proc near
' X d0 W' R- x push ax
$ f& |6 k. K; ?0 e. q8 w) T push bx
/ u) M4 g: E$ R, T5 X. R7 c push cx
1 @# x1 q5 z# B) b3 j+ ~8 N1 I mov ch,4
3 {8 g! \4 @9 l4 L4 T* i rotate:mov cl,40 d. [) s1 _4 x7 \6 L- b4 ~7 O
rol bx,cl" I$ c! J1 j5 m8 C s
mov al,bl
6 v3 M$ N3 z+ ~2 E* t/ c9 n- n and al,0fh
! c: V/ f1 X1 H9 o/ v6 i2 {7 o# C add al,30h
& T3 Z6 c* l- z0 Y* n" Y: \3 s: c cmp al,3ah
. V* w6 p- C& f9 @ jl printit
6 \; u* W3 I0 U2 N1 { add al,7h
/ b7 L3 n# q* C6 f printit:
% ?' _& K5 [4 W F# Z mov dl,al
/ Q7 g$ y4 }/ i+ i# i- \/ f6 E mov ah,2) _% p) j5 E* }1 H- k
int 21h
1 t3 O5 [1 [, @4 q dec ch
4 M0 d. P! B g1 N. X0 i jnz rotate
8 c+ e( q& }7 R- O mov dl,20h
( X; n4 w, T& P( v* E mov ah,2h* M/ r: K. D/ g) j2 s. y7 G; M% D1 I5 I
int 21h, O* v) g4 b: f% k
pop cx
; z, i+ c. l8 D& U* O0 V pop bx% G' j1 k0 F- n$ I, z2 e
pop ax
1 m/ M. @! @6 X/ `- r) g6 p ret
) h! e( j# s4 i, x" Q( ~; n display endp2 n% v# v! Q( j
5 g" k* ]* _1 T$ P% u2 P* E. W
CODES ENDS
: \; ^ r) ~$ j! Z4 @ END START
0 v* ~ @5 \& v) [" u0 h0 I( ~/ y' ~! w
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|