|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT3 n$ c7 M+ u {. o% A. ?
;此处输入数据段代码 ' H. x* A7 P: i! j3 {6 n1 a
DATAS ENDS
& ^ B! k. l; M: ~' \1 v# j/ K9 t5 E( J1 x- j
STACKS SEGMENT1 E! N! I% T' y+ N+ A' M0 |: f( H
;此处输入堆栈段代码
4 j9 @- o, p* f* b/ _7 TSTACKS ENDS: a. ?: U5 b# W1 h2 B4 R6 {
% r! ^( W, ^3 yCODES SEGMENT+ I% l, E* b( g- z$ @* f7 d* v
ASSUME CS:CODES,DS ATAS,SS:STACKS7 ? f W; h/ M, Z1 c! f8 k
.486$ X2 W; O9 t* z% w4 Y7 J4 Y) {
START:" s7 |# [* H" u9 s
MOV AX,0f000h1 M! S2 _# H) ~9 T3 v5 z5 M
MOV DS,AX
: g/ {$ u+ b' y3 C' w" a ;此处输入代码段代码
6 Y% @& ~' e+ ^1 |! G; ~ mov si,03 K; W8 G9 V$ [* d$ X
last:
+ X: o0 Q5 `4 C. n' Z& m, a6 u mov eax,[si]' |1 [3 P- f1 p* U- A+ C- Z
cmp eax,5f4d535fh3 H( G) P: s: @% U& p. W4 B
je over
1 R$ I. ]$ a9 t2 y) R5 f add si,10h2 z0 s' }* \/ `, ~
jmp last+ D' `; ]/ R* E& g/ m& Q% w" Y1 K) M: l
! B3 x; R2 _" l' S9 B' m8 n( `6 @ over:
+ s) x- w( U. S) \* p% l add si,18h
; J+ l" ~8 o" N# G mov eax,[si]
+ T+ o0 b9 W; b( J6 } mov si,ax
) y) X: w# M" I8 H# h! T; N! w add si,9
; {3 A5 e5 u. n+ U. l; ^ mov ax,[si]
! W2 v* x6 _: i& x add al,1. C3 N% ~, t( _3 {9 [9 @' Q
mov bl,64' C5 r: w6 `- M: F7 |( D
mul bl9 {+ q& X0 s' D2 W
mov bx,ax
1 a* O" C# ^7 l T3 M" X6 L$ S, u
6 b; U; y* n l% i call display: }; m( T2 V' y/ Q! k* P
MOV AH,4CH
7 h! f; u( C9 b; [% z INT 21H # g) `3 H/ c P; R
8 l& \) G' z% n t, @, i
display proc near" N$ ]0 M- u( j% M3 n* u
push ax
% P- k5 ?- @* V% P$ g& s P push bx
- t4 \( P* @1 Q6 f( K% P% m% _+ ? push cx
[; F4 ?% d6 x$ u+ P( ~1 ~ mov ch,4# [2 o1 e2 |& ]) f
rotate:mov cl,4 S0 Z- K6 i/ y6 G% m7 ~
rol bx,cl
' s9 L8 M+ \" T, ^6 m# l mov al,bl
3 Y {5 t4 b9 u and al,0fh% S+ q2 ^$ @8 b2 ^% Y* r6 |. v
add al,30h# j0 w* W' ^/ N: k& k) w, N: ^
cmp al,3ah
1 w. z/ H- A4 f5 ?' w3 H jl printit% N% y0 a6 r6 ^7 R4 N
add al,7h- l d0 [# P4 Q5 T, l; j% d
printit:0 U, [) ~2 o% d
mov dl,al+ P5 \/ C* n3 o% m. `( L
mov ah,2
' Q# \1 B4 v2 E( N5 `6 t' T int 21h
% S( V0 d, q2 I% n' u7 U6 M& L/ c dec ch
. K0 V- a4 l. a$ e jnz rotate
7 _( e+ S- y. y' x8 R mov dl,20h
6 w0 o* P {' W/ z, \ mov ah,2h
V6 r2 ]. n( d int 21h( O+ P$ U- V+ s' }
pop cx9 U" {& m* @& n7 z: \0 J
pop bx X( w% V8 f: l: G) r$ i5 M7 g8 e Q
pop ax4 O6 ^5 t' v9 C6 w( s2 ~) q2 O
ret
3 M# O' ^3 s+ {" A display endp
1 t+ T G5 C3 J2 x( e
5 D) } m8 m% b uCODES ENDS
, P& x. t, f3 P$ G" j END START) L/ ?( g5 E) k+ s) V# k1 m: {; R3 A
2 {1 A" @6 L% V) E
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|