|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT3 L" M" p3 V, f) x3 b2 C2 r
;此处输入数据段代码 " z" N6 i* d( U+ s0 [: p, n1 k
DATAS ENDS3 Y! I5 o# x( b: X! q
8 i- Z+ p# \3 QSTACKS SEGMENT
: I& d9 k9 H& R, u2 P ;此处输入堆栈段代码
1 X8 m/ |! z1 X- P# L3 s/ HSTACKS ENDS$ ?* y' ~1 X6 k& ]9 T! ?
; i; ?6 g( V' C" P1 o" sCODES SEGMENT- a6 i4 L% h* @4 O% k
ASSUME CS:CODES,DS ATAS,SS:STACKS( T8 O3 {+ ]0 C+ u5 \0 @# B: W4 u
.486
, Q2 P0 c5 e% I. p5 f$ R& pSTART:* `& T2 o. L0 `# G- u h* N) N
MOV AX,0f000h
( z$ ?. T* D2 a) ? MOV DS,AX6 {. N6 \/ {. {' b( l
;此处输入代码段代码+ o; ^! n, J7 n
mov si,0
" \/ ~& N9 C# x) h last:
" y0 h5 n! c; d, k& G' `. G mov eax,[si]
H: `3 m7 F7 z) K+ G$ t cmp eax,5f4d535fh
( }" k$ W. d* B' [ je over
. t- U8 l/ E( r3 [ add si,10h) G: M/ r) K9 c# f
jmp last
- }4 w* ~; O' g2 G2 B' z! r+ M
. H5 y: C" j- b9 |/ v over:
, g/ {; m* y. U7 f7 B. q add si,18h
' }2 F! L) p. i; ^" G mov eax,[si]
& D7 V9 _" _( l- F mov si,ax6 G2 U$ c3 i( C( |; E+ U' K) p
add si,9. f1 k$ B4 i7 A; {
mov ax,[si]
' @" b- x. G7 [' |7 R8 V3 y$ t7 B add al,1( n- U# D5 j: i4 j7 p8 Q0 _7 S
mov bl,64
+ x6 M( F+ Y& q# z# Z) Z mul bl
! I4 M' u: E* G8 ` mov bx,ax2 p, W: }# C6 W0 U2 j' r% i( N
: K2 s$ L$ J; K- p% m' r2 k2 q call display4 [( I9 z) X4 {5 X" z; e3 ~
MOV AH,4CH7 N2 R: P4 \( E" o! k5 v( V
INT 21H # M( a% q) y) [1 {% ], L' T/ C
5 s0 C% u7 o! r( i: G0 V' g display proc near+ O& p$ }: r' B: Q
push ax" x2 i" i9 [) k$ x& P& r
push bx
3 F6 a7 @1 D/ c6 \/ m push cx5 M' x* d/ ~% n y
mov ch,41 Y* X' U6 I0 Y
rotate:mov cl,4
+ R4 r0 E' p8 m& Q* z rol bx,cl
2 A/ P, J( H$ y6 R mov al,bl) N. j: X$ N: p" Y& @" T- k5 X- s
and al,0fh. j! g v& V' R5 V: x* c5 H
add al,30h
- A2 N- s) ]7 s8 L+ o8 F; } cmp al,3ah
5 J( s( L( Z( C( g$ R* n jl printit+ d# Y7 |3 ~% W* A; l6 j9 K
add al,7h
* n/ l. W- b# l& S* n" L printit:9 Y$ |' Z, U1 X( T- h0 f- T
mov dl,al; p8 Z6 a* M) b+ `
mov ah,2
7 L& d$ a# J# l7 X1 ? int 21h
7 g0 O/ @, X9 R; J/ A. z1 l dec ch R. e3 Z- e' ]/ U. |
jnz rotate
8 z1 M) x: i; J; A: H mov dl,20h/ E5 @2 \/ g7 O& W% A! Y! a
mov ah,2h
3 S# w M. r1 H7 U5 ` int 21h
& e* {$ X2 c/ W1 ^) w7 R3 e pop cx
- K- J: s' ]+ d6 T: k pop bx
3 I9 W; }4 v9 M1 ]# z) \ pop ax
. @$ ~0 Z5 o% ] L' i9 u ret
1 ?$ J2 t2 A' G1 f4 B3 h3 y% j display endp- W* h4 ^+ ?$ w+ g( A
% V" O8 ^) [5 kCODES ENDS
5 _. {8 W5 |4 z& p4 A/ P9 z i+ r- Y3 D3 G END START) k$ b" k. R+ E2 i0 A
. f9 w: Q. ^# W9 D3 R9 o; C运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|