|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
0 o i7 N9 x$ U8 L ;此处输入数据段代码
5 y3 ]. \: p H I7 T/ yDATAS ENDS
% {$ F; V1 J+ x6 a2 Y
/ S/ W4 p8 K, A+ K+ KSTACKS SEGMENT# p. y- S: {5 g5 o1 C, c
;此处输入堆栈段代码
: E6 L) ~/ z; x: Q; T( tSTACKS ENDS
1 e; ~2 R/ b* @5 X, N0 L7 `! b i8 b
CODES SEGMENT
8 }. ?3 X$ [6 ~3 Z1 h+ ~) z ASSUME CS:CODES,DS ATAS,SS:STACKS
- A; c6 A: t+ q8 [( O: Z3 [" I( s- j.486
. C& l. n' w" P/ N! kSTART:
0 M5 c2 N4 w7 L% d! k& W# C( b MOV AX,0f000h
2 _! ]) `" u: y0 a0 u6 u MOV DS,AX
4 c9 m7 r5 o7 n0 x* @+ i0 { ;此处输入代码段代码' v8 ^. z8 l5 ~0 c+ |4 ]
mov si,0
8 q2 I, V6 s9 f% B' A+ ^) u% D, y$ O& y last:
# B& N( J- H3 h' c, x# [ mov eax,[si]
% U0 Q$ f! X; l8 g9 O+ F) C, F cmp eax,5f4d535fh9 T& n9 P, i6 x+ Q8 c% L* k
je over" x& D- t/ R% V+ I+ @' l r
add si,10h
7 w8 u( q+ P3 a/ e8 d jmp last% E+ J- }2 y1 [
; I4 q+ q2 P/ i" O/ R( T
over:
1 T: y3 a* N6 J2 H, v$ u add si,18h+ |* \- T' _. k, q, G1 S
mov eax,[si]
* d6 J% X7 e+ a4 s6 { mov si,ax! W8 Z/ Z* n d
add si,9
4 g6 f% E( }' k+ m& i mov ax,[si]( t* [3 d/ I: o( S. X
add al,1: M( Q& I* o( g! R; q: [
mov bl,64! y4 b9 m/ b: i1 j6 E
mul bl4 _+ ?" C& s! ^2 F+ z5 c+ U1 n% ?
mov bx,ax
- o. O" T& f& I6 o
+ Q3 z1 l5 l9 x, t call display
6 c1 b* G/ C% E5 n7 q2 Z MOV AH,4CH
, f/ |3 @6 Z9 |5 }, c/ z4 L+ B! q INT 21H
' S5 M- i* E& f2 y% U# J2 L 5 g9 j: [8 Y( Z s* E
display proc near
, p5 I+ f% P4 H push ax X% I' t; ]8 C- ], n7 k! D
push bx
) T7 Z5 i% n! @3 Y: M, s4 }7 U push cx
9 i+ ~% ~" [ J# S mov ch,4
2 l: |( Y& F- e+ ] rotate:mov cl,47 k# `" k8 p/ ^
rol bx,cl7 f' W$ z8 }2 Y, R: G5 z3 j
mov al,bl
; E8 ~2 V# s% H, j- |9 Y and al,0fh7 P: H" j: d, Q3 `8 V0 T. m& [
add al,30h
% D8 [# E: g9 A/ b& v' Z" y w cmp al,3ah* A B; r6 H, A: M% q; _/ `/ h) K
jl printit
( O; U& j) R* F7 M {/ E2 V. w add al,7h
' X( R }' W7 A printit:
6 S/ e5 t/ c! c: P0 F7 N mov dl,al$ l) a4 Z: \* C* I( l
mov ah,27 j2 ]3 s! |) r0 s
int 21h
0 t) t) O4 x" J* U3 x; r dec ch
+ y* p3 `' K5 I$ Z& r" f jnz rotate
1 s1 s! b u. e6 [% {1 h, y; |' v- \* _9 a mov dl,20h' c# ~7 o7 L. J- h, D
mov ah,2h
9 U+ q' J* e7 ~4 b( d% [# F; F int 21h( j( v0 O9 A2 K Y: }
pop cx
1 @4 f7 W! q9 I" w) r: |4 B8 N9 f pop bx; T5 \6 ^4 W4 Y$ H0 H( {' {
pop ax! w M6 _" q. u: @2 b; Q9 t6 b* ?
ret, l; Y) X, w" `/ f1 }
display endp+ B5 K6 j9 J, q
* H' d- C# z: S0 P6 g( x
CODES ENDS
0 p% I d0 n$ ~1 r- s5 b END START% z7 u9 `1 c& z$ m: u) C
; ^/ W% J' C, j9 R$ a+ y; ^2 d
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|