|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT# r0 u! X! Y, \* C9 S
;此处输入数据段代码
' ?& j1 |* p* y" \DATAS ENDS e5 R( d! m' P! I: Q5 e+ J8 n" T
+ G! U- n/ K2 J7 ]4 \" y3 }; ?5 s
STACKS SEGMENT
) t7 c: j# b* [ \0 Y# e+ o ;此处输入堆栈段代码
+ A o, M4 D: B5 V0 |8 L oSTACKS ENDS3 l. B, {1 D- s$ A* k$ b
6 }9 A( r4 u- ^: I$ P
CODES SEGMENT! T3 Q9 N0 n, F
ASSUME CS:CODES,DS ATAS,SS:STACKS
* u! M: ~; H% e) ?" v4 B.486* A" `3 O4 Z% C/ B7 H
START:. ~( _5 G- \/ f. i% ]1 B8 ^
MOV AX,0f000h. W( n! h6 g! l1 p% G/ a+ m# N8 Y7 h
MOV DS,AX0 @2 \ Y _( P! ^2 ]/ F# M0 k
;此处输入代码段代码- S" G* D9 W; r+ ?( w( ^ e
mov si,0
. v6 I9 l3 M- y+ @! f last: - a% h& x% l0 S; G6 A8 @" J; e; G
mov eax,[si]* v O, x; M6 ?! t' F! _/ i" a! n
cmp eax,5f4d535fh
/ x+ z; N" ~* u. N* x) C1 K je over! Y# s. P' B) @
add si,10h
# K9 U- k; b6 i2 o1 X% ? jmp last1 U& | [$ t1 S2 v$ }/ l) W r
9 Q& Z$ v9 @) q# d over:: j3 u2 S' C6 G G' }( j* F
add si,18h
8 u1 [4 C$ \8 @" l a+ O- X r mov eax,[si]
: X, w$ s8 ]2 q/ r5 S7 U: F mov si,ax0 M/ B* b, p0 ~' g) U
add si,90 ?3 k9 W' @$ ?& |" ~2 b8 E) x1 h$ q% k
mov ax,[si]
6 N) x k8 p r add al,1
' S" Z: c( U! K { mov bl,643 S7 V D- \7 x0 X$ k8 S( p6 \
mul bl
6 M0 R T* U6 n- |; @ { y mov bx,ax/ W. ]: P+ t; x/ W
; K# A- ]# A) l6 R/ J# V) B* a0 J4 Y call display
/ ~% I D0 K5 W* V2 z7 z" z$ V* ^ MOV AH,4CH
% v4 [' U* u0 b; X; W& f INT 21H 1 |6 {/ ]6 {/ F2 }
' b+ v$ i' [( u- C3 j! ?
display proc near8 e: y; s1 P4 Z5 x9 p& z
push ax6 _( G, R/ `% }- X2 d0 [
push bx6 I5 T5 b# |3 j. s
push cx
/ S* C Y( w3 C# ~0 X3 w mov ch,4; R. L7 g$ s6 [9 h0 g3 T7 @* P
rotate:mov cl,4
1 b1 s% `0 Z) f+ s& W( n rol bx,cl( j$ U' `& V$ M5 j4 i' G7 \
mov al,bl: D3 M) N0 [! f" F2 c
and al,0fh
3 k& |. t) g" `" ]0 V. s. { add al,30h
0 R- g i, j$ v! y- {% X ] cmp al,3ah8 `' h1 u7 n2 A9 O
jl printit- P" z. H9 z9 ?% p, _
add al,7h
; K/ Y& L+ h/ j& J! d6 x2 [3 n printit:
, S x! V2 i) H2 O8 Z, u) K mov dl,al
. i( G' r7 t/ m, |% A6 ?# O5 L; b mov ah,24 @1 q- g: A0 \& T. {
int 21h
1 A4 |% @2 a" p4 z5 n dec ch
( ~3 G, [' o" L( p5 T7 ^% H4 } jnz rotate3 ?# N, ?7 g- Y$ ^! i( v1 u- o
mov dl,20h- ]1 w3 F$ v; h2 S' P
mov ah,2h8 M8 L% E" Q. b/ {4 q. M
int 21h2 i" E/ x9 l$ @# E7 }$ ]6 k
pop cx
1 x/ g4 T- i! r pop bx# d1 d. C$ e' w, a3 ?( ^ N
pop ax
+ x' O7 ^' N" ]' Z* `9 T ret
! p- V3 M5 R8 G# b display endp( a! ]/ ~- ]* E, L5 I; ^2 k3 u
- k. [' d: `* ~6 H7 M SCODES ENDS
# m( t" v+ g: S1 d! S/ j% @2 ^9 }& ~5 H END START
3 I; c* }+ c9 a0 x6 F" G& ?9 F
! F+ O7 ]1 Z {" _8 a2 `: S% A9 N运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|