|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
% X Q& _4 o- C" B+ e2 _+ ~ ;此处输入数据段代码 % j/ j% `: ?% O. z
DATAS ENDS1 R: {- p3 {+ i( u2 x0 t0 ~
$ B2 O- d/ I6 tSTACKS SEGMENT
. Y# b: |* b8 E9 ~ ;此处输入堆栈段代码
& n" g& J6 e Y' r% T/ dSTACKS ENDS
9 a3 R6 s- v2 d( k o
) q6 T4 H8 ]( U$ SCODES SEGMENT0 G* r; B! |* ^" j
ASSUME CS:CODES,DS ATAS,SS:STACKS
8 w* g4 ]0 ^7 T ^* q8 P. `$ ~* C.4860 M; [( t) R! k! g
START:9 c, Z9 l6 ^; E, I
MOV AX,0f000h4 K4 Q" m) |8 {. _( }$ C& W+ I
MOV DS,AX* O( C( P- o/ A# L& a) D. {
;此处输入代码段代码
" e$ J c" r; |0 F mov si,0
8 d) @+ T2 P0 b& ~' ~5 G& M last:
0 V5 a3 B, W! I( [: V4 ~ mov eax,[si]0 A$ t; P# E9 f; o; } f
cmp eax,5f4d535fh8 {# Q$ N1 F# Q! s1 k$ k
je over
$ H D( P9 Q# w( n8 k/ U/ x add si,10h0 T! ^0 F- O. d u3 E _) A/ Q
jmp last
4 `+ W6 }. m j' z& b0 L8 G $ _+ C( H2 X" i. w* w
over:8 v% D$ K$ T( Y# Q" r1 W* \& k$ Z
add si,18h3 }. i" `# U# w
mov eax,[si]
4 F1 R5 {4 @1 V0 k( V+ E! k& _ ~ mov si,ax
+ f, D: _9 s# p7 Z8 ^ add si,9
1 ~/ i5 n" t# ]* q2 ` mov ax,[si]
! N! c0 \& M( q K- p add al,1
7 [) y" I+ N1 O8 I mov bl,64$ c; {5 J% a9 S. V1 ~2 n
mul bl0 V: b0 ?; a$ ` h
mov bx,ax- k" {0 m8 h3 y1 z- L9 B4 y
+ D: {$ t+ T, X: E call display4 l* t$ [, h( f4 d( ?
MOV AH,4CH
. E' X- D; t: O. E9 x$ X INT 21H
3 k) W2 j7 K& ~ 0 ?/ x- ^# e+ _6 i7 u6 [* J
display proc near. @2 V3 f6 m6 v& W9 J+ X# q, |: y- `
push ax' l3 J0 R% E4 M8 Q0 ?' D+ r2 E
push bx
) C6 T3 n! u8 [# p4 N/ \- p- u7 d1 C push cx! P5 ^5 L Z# a( Z3 H: H
mov ch,45 V* @( c: u8 g+ |, g# L1 ?7 {
rotate:mov cl,41 d ?" z$ g2 z
rol bx,cl2 H* }. y. B; G' o# T! a
mov al,bl& T' _' L1 E4 ?- f) w, H
and al,0fh- D: [3 T% C; r& _+ p
add al,30h
2 `8 z7 c. y- J8 ^9 D cmp al,3ah
- D0 H0 J: A5 c A9 N A. m! j& U jl printit
: R4 K! U. T7 N' ]5 m' Q# M add al,7h
8 W1 N" B ]0 J$ L1 O5 p0 f3 }& b; T printit:
0 g: u, k+ B' w6 C. s# K mov dl,al9 e/ o% |# {2 n2 h5 a8 m
mov ah,2
. u* V7 R% r; v* ~1 h; B int 21h
. \2 `' C0 c% `8 G1 E3 y dec ch
* v) w! C5 n: o" F8 h) E, | jnz rotate
7 s p% d( _$ N7 U4 ? d mov dl,20h
) N" U# B0 C/ G- u- ?! l* A; u8 d mov ah,2h
7 `% Q4 G7 S' ^& g. d2 z1 T T int 21h
: j& N p" n9 g pop cx- j3 \# o A' s
pop bx
, ]/ Y; @( L1 y& F# S# h7 I pop ax1 T8 c8 i# G- ^- x3 ]; x8 B
ret
. [' I4 K$ ?1 Z/ K6 y6 S, N display endp6 V: X6 S: ^* \
% |# b; B) w7 C* T! Z8 }* J0 g& Y
CODES ENDS
: C, ?3 |' v3 O END START }) D- t3 F2 s$ e& d, L
0 r' x0 a$ E' w# ?$ T) F, L
运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|