|
|
发表于 2009-2-12 17:29:22
|
显示全部楼层
DATAS SEGMENT, |: {8 C- I" Q- j: `4 G
;此处输入数据段代码
K" H2 W9 f% o( xDATAS ENDS3 P) [5 D! q8 N+ E- g7 q6 W8 K4 h
7 w+ t' `& O- F; s! \
STACKS SEGMENT( r5 u6 n$ L9 ^ v. D4 ~
;此处输入堆栈段代码
. l) G) ^2 u& M4 G2 z/ e0 h( r$ t7 zSTACKS ENDS* ^) C4 m) Q, B! M
- X8 K, g& V) w0 g, g8 UCODES SEGMENT
/ @& m. Q+ z$ J( j- { ASSUME CS:CODES,DS ATAS,SS:STACKS9 e5 Z8 k; e3 k! l3 \ x
.486' u9 x# [; k* Z* U& c z) @9 `
START:
/ R! J; A. c0 ~& e: I3 k MOV AX,0f000h1 Q9 ]4 r8 {0 J
MOV DS,AX p7 H3 `. W% {) R
;此处输入代码段代码
* L7 L6 e0 s& z! ]- h+ v7 k mov si,0
- n( f% n8 S! c5 G last:
- a$ V6 ~1 T, U: H) X/ E! t. ]; B mov eax,[si]
5 O6 F9 ], \, ~+ ]0 S cmp eax,5f4d535fh* _& Z3 F! I9 b9 F T
je over! x* {# ], H y: @% i. s
add si,10h
) W$ H( I1 N* f8 E/ L/ k" b jmp last
1 Y1 A6 O9 j& R# r
# a5 q. P) H/ [) I, J W over:
1 v0 F. m7 t/ z5 P! u7 J8 r- {5 h6 f add si,18h, i' U4 B) P& J* _
mov eax,[si]6 _2 K$ ~' k. V/ B
mov si,ax8 [4 ?5 u. c4 `0 @. i- P
add si,97 V- E9 f. t* C# P& u! M- u4 N
mov ax,[si]
4 E I- X+ G$ c8 N- N add al,1
$ K N0 g: {. i4 }2 k5 j mov bl,642 w: n/ o# A, ~: C+ S
mul bl
2 v ^8 }8 Q7 g* M/ x mov bx,ax- {( K3 J2 B$ G* ~ a% M5 g+ K
2 N+ R' K% Z. n& s; D* F6 |
call display
* }5 M- |* L1 R! w MOV AH,4CH
$ T0 k* U/ @4 y3 o$ U7 h INT 21H
) Q( Z+ U5 j! o3 c+ I
4 F) M( b6 T4 r# v9 G8 E display proc near
# q( N3 p+ ]! m9 p push ax
* q" | a3 r$ p3 d7 B push bx" R* k2 X6 s& g& K3 z
push cx
; U }. `6 \, `; a6 b: O/ J8 j( Z mov ch,4 t! T8 v7 m1 @7 Y: T
rotate:mov cl,4
/ g4 v" a+ m4 j- I$ d3 Y rol bx,cl$ C+ `" E/ |# t) h" _
mov al,bl
+ {2 J# I7 L4 s2 I: z8 Y; |8 V! y and al,0fh9 s& I( C& Q; G2 U
add al,30h
1 Q. ^" H0 Y. ]9 C# b" f# k cmp al,3ah
. Q* F. |5 s( a& V jl printit" z& B) A$ @; s5 v0 Q
add al,7h8 J& i% V6 O. G2 ?6 J, I
printit:' F, o2 Q$ V% X- S
mov dl,al
, v R& @5 Y' K9 y5 F+ r3 j# `; f mov ah,22 N5 F) X d6 T% F6 w( ?/ i
int 21h; O3 `5 u: M+ d+ I# |" _- U4 P
dec ch
4 E, D6 e0 }/ J% ^6 ^& Q; f jnz rotate( X7 u3 H N! V% ]/ z7 v7 w
mov dl,20h
- y3 S: }. o" B7 H' R mov ah,2h) p1 L6 K$ H! ^% n8 O( N% R5 \
int 21h7 `% D% d* E/ \) i" W
pop cx
" \5 i. e6 z+ Z! Y pop bx
7 Y2 i$ I! n/ R: [3 B" j0 Q pop ax$ [* L0 m! p6 K0 \' o2 J
ret
, `. ?- C0 c; T6 h display endp3 Q) A( ?9 ?, ]+ R
. W' t2 J0 E: K( B, F
CODES ENDS6 n9 @) b4 r% g
END START4 L) Q/ q- [8 i- B8 [% I, Q2 w$ ~
# W; F, ?# e- P" h$ C运行此程序可显示ROM大小.单位以K计算,不过是十六进制的 |
|