|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT
; z) `5 D1 V% m. b ;此处输入数据段代码
9 w4 G/ q2 T( `/ \, y1 W+ K5 RDATAS ENDS
3 [% B. \: a: {+ I
- H9 c. [1 d; g N# HSTACKS SEGMENT
4 [9 k# z& [! d ;此处输入堆栈段代码
6 U! |6 X2 ~, m; N9 LSTACKS ENDS
9 P8 a# i% E+ r+ J$ z3 F: ]
7 x1 Y0 y0 k2 [& N/ [) {- w# `, |CODES SEGMENT) _) t; I3 O# ] N% X9 r- ]8 ]
ASSUME CS:CODES,DS ATAS,SS:STACKS
6 E. z8 e! S G" T* W6 u.486% U/ ]+ d" e$ a. e
START:% ?3 I9 p! D( j' x: X9 \& h
MOV AX,0f000h
0 w5 G# ?2 ^* s7 B! d& I) ` MOV DS,AX; i8 I# J, Z, x6 U7 b. f" V" @ D6 m8 x4 _
;此处输入代码段代码8 d* j8 n: ^2 \# e) `. a+ \2 {
mov si,0+ E+ A- L8 k% e8 N" a
last: , x5 n; e2 b& i# U* U) V
mov eax,[si]
& |; y& y) M' p% y# v. ~+ x cmp eax,5f4d535fh) w% x* u( I' F- g3 N& A; A' z
je over
3 @" H! { u. F1 ~' L6 ?9 Y, g add si,10h
2 N6 Z2 M' L9 p! {! @" H5 s( `# H/ S jmp last& [$ c. M; h' F7 a& ^9 I
* ]" c/ j* v* T4 K over:8 |: p1 ]; y. m) Q/ p4 F
add si,18h
8 A+ ?$ u2 F, o6 o [7 d: m2 G mov eax,[si]1 F" Z0 e' J# a+ p5 [
mov si,ax
* p& ~* t, V. }3 g& @ add si,9
* j# C' \3 y! a/ j; u J$ ?/ e mov ax,[si]# s* y w+ P: Z8 E& ?
add al,1. K: R, X: y2 @- _
mov bl,64( T" |! j2 y2 ~ m
mul bl: V! W+ p* O- j8 G
mov bx,ax2 s( j' o$ k/ U
* e1 _3 W* _, P# U: _ q q1 ^, g
call display
& W1 {; D; [6 G/ x- Z+ n MOV AH,4CH
8 u3 b8 q* h# a' M- K W INT 21H
1 b/ {3 V( J, S
* H- q4 u0 ~1 f8 R c$ Y, d) j+ J- c display proc near
7 |$ s# g& k7 R E7 [& p$ G+ U7 o push ax
' d* l! e) w% s push bx
( T7 t3 V9 D K! n* N7 {0 y push cx6 ?7 ^8 L* m) m i& W; y
mov ch,4: Z& _" O5 }5 [
rotate:mov cl,4& I, T, J# b0 I. m4 L& A2 D
rol bx,cl
8 N9 ?/ u- I3 y" T mov al,bl
- I- ?" k" ^. r+ o2 q2 u2 } and al,0fh
' U0 M5 [* t7 E- x add al,30h
" m4 x6 v' x5 k0 A: w# ~- T4 L cmp al,3ah- t# t9 }1 K+ [/ P" U0 y; Q- ~! P
jl printit
! N; J: M3 ]8 \8 [7 { add al,7h) L. G& x# r5 L' L) I; C7 \
printit:
. g5 i- I- W5 d" D mov dl,al+ Y& t1 ~1 y* |/ \7 h. @
mov ah,2. S7 q" h- l. R
int 21h
& n& o# I8 D; @, K" @9 _4 x* J' |7 d& F dec ch
4 x+ T2 T. g: [: i) S/ k jnz rotate
; w0 j2 I4 C. q mov dl,20h/ v1 d$ e( Y& N/ M1 I
mov ah,2h
4 c" `7 b: z$ ~; \) M; m( A int 21h- D0 C& u( x1 X/ t
pop cx, S9 l5 b; X( C$ E \0 B; f( H
pop bx0 v8 h: S+ k3 \8 k: t
pop ax
' P* h a* V8 Z# ]1 y+ m# i: @ ret w9 N4 ?* f: d4 M
display endp6 N$ I7 l8 I4 {
, H7 B7 i' }- x8 W9 T/ M4 }1 G
CODES ENDS
& w4 o: j @0 e0 \* M n$ |4 j END START, u9 l) I8 Z7 ~) n
+ F: V; O" y E% B+ @# ^- Q运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|