|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT* M1 v5 s( {1 {% B4 _0 ?
;此处输入数据段代码 + X3 X0 ]+ ?0 Q# [# Y* }
DATAS ENDS3 D; g7 W5 p: m0 u1 G
) m: F) [+ q5 Y# t( W9 ?1 [
STACKS SEGMENT
4 r. e9 \" @1 | ;此处输入堆栈段代码
; ^( O2 P3 q ]7 j5 vSTACKS ENDS
, v# k h+ o# P7 w9 O3 \
2 ]3 |3 ?: U, k, v; G. g7 ?CODES SEGMENT5 z) F9 o# G" @& _# f
ASSUME CS:CODES,DS ATAS,SS:STACKS# d) l5 I( \2 q1 V! n/ l8 @
.486- ~) Q$ A* N% c3 c4 b3 O
START:
8 x/ v8 q( |7 q6 p- r* s MOV AX,0f000h
: @5 Z9 C5 H2 g" T. Y MOV DS,AX: O; O" |; u' x( c8 }3 R2 M
;此处输入代码段代码& @; x& R6 a" q U, F0 n2 P
mov si,0 s* |: @& @. \% b1 U `
last: % r' K& O; d8 e5 ]# @; G9 F. Y
mov eax,[si]6 O- r0 C! H, E2 e* q2 T6 n! O ~
cmp eax,5f4d535fh
6 g0 e" R. g4 P$ E L: k \( x' ~' ^ je over7 X: L/ E1 K4 w6 `
add si,10h
$ b+ W# t9 m- O. i jmp last5 O# |4 X! t( B1 a
( h2 k- C& ^& X over:
{4 G3 H* U) y( P$ \$ W5 a; j" ~/ y7 r add si,18h6 x( K6 h6 q0 n1 J
mov eax,[si]
- T! J& v5 A4 r$ U: Z" u! A mov si,ax
5 F% Z6 `" S1 ?! \" N h/ W+ A4 j add si,9
! _# s' G6 Y8 b& G r mov ax,[si]( q. w3 X) k1 \+ g1 {
add al,1
: j* A& d1 D; p* }5 L; F( W mov bl,64$ U/ w7 Z4 F- O# n% Y. R; c1 L B
mul bl
' n# n! V# w8 M mov bx,ax3 m8 {6 ~+ K3 a f" u
4 v; r) b. G- C/ c6 a- [7 h) ] call display, P) B! d$ p0 r5 Y
MOV AH,4CH+ ^( C Y" ]2 t
INT 21H / L" Q3 N& s" E. M$ w
- ]5 A4 n7 ^7 o8 Q
display proc near* d7 {) y/ G* v; A! }2 }
push ax7 ]! ~3 k/ @9 F8 i/ g9 I
push bx
( b% ~2 ~( w$ W0 W& E push cx; D* d1 r5 T; i
mov ch,4# n7 `0 g( j( ~0 v4 c& M& q$ W
rotate:mov cl,4
3 W2 D7 }/ g6 Z4 d* j2 ]0 p% _7 f rol bx,cl. K! v& A) b6 n
mov al,bl
6 x6 E1 j) q( }. I- q8 L9 Y, U and al,0fh* C1 D1 }0 r% o! B/ A$ D6 w3 h4 v
add al,30h f4 y0 C$ O+ e8 j! @/ O* @! [
cmp al,3ah7 |1 W9 m% L% ^5 s
jl printit
" H8 T1 g+ ?, Y" L& F add al,7h1 u! _( u1 E, Z7 y) ?
printit:
7 Z$ o! C" i5 Z7 n7 A mov dl,al5 V- g7 ]* |' }; X
mov ah,2
3 `7 g! P' { `9 {8 D int 21h( N) E x+ Q# [4 b% p9 w: J
dec ch
! G7 o+ [, w0 d' J8 b3 z/ {) I7 t jnz rotate, L4 d. w& H& H. X% Z7 t
mov dl,20h
5 f. U" [" m6 j+ K+ d# A5 N+ i- Q mov ah,2h
; P6 P) V# o" p& `6 `8 A$ a int 21h* {" o! v0 c: Z
pop cx
& X( D3 O2 H; |# z& a2 k1 ~. X pop bx" q- E4 {$ E2 S$ W1 ^" F
pop ax2 R% K5 c9 W9 ~
ret
U, S/ Z+ v& d$ _& w7 E display endp
3 `& l; d5 \ [: ]6 g, \ M2 L' I" g
CODES ENDS& q+ y2 s5 A8 G4 l* m- B5 d
END START/ H- j* n$ M+ E: s @1 D) {2 [
$ v+ F- A) T! U- x9 B) L运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|