⋯ 弱 9。 。 k手 ’ 皿 !套
一
逻辑地址与物理地址实时转换方法
辽宁省铁岭市委办奋室(112000 f金枣涛 .
众所周知,对于磁盘的访问 有 两 种 荣
道.即BIOS的磁盘服务功能INT 13H和DOS
的绝对磁盘读INT 25H 以及绝对磁盘写INT
26H。前者的入H参数为物理地址.1'q~CHI
磁道号,CL:廓区号,DH 。磁头号,而后
者的入口参数极为简单,即DX 中为逻辑崩
医号即可.所以应用时,在可能的情况下都
尽垣采用后者,避开烦琐的物理地址参数。
但有些情况下,如D0s的不可重入性等,又
不得不采用BIOS的INT 13H磁盘服务功能,
这就涉及到 了逻辑地址与物理地址的转换问
题,转换时犬部分都是利用磁盘的I/0参数表
BPB提供的有关该磁盘的各种数据,通过一一
的计算方法来转换。如果只想对一些已知
的地址进行换算,用编程的方法会增加很多
代码量,采用手工计算烦琐又易出错。为了懈
决这个问题,率人采用一种实时的转换方法。
我们知道,用DOS~INT 25H或INT
源程序清单 .
,地址 转按
·DZZH.ASM{DZZH .COM)
I1993.12·11
code segment
B stizmP cs rcodeIds rcode
org lOOh
bel jmp intt
Il6进箭戢值转接~ASC!l辨
hexasc ~IBCTO
add 8 1.09Oh
dBB
adc a1.040h
daa
endm
。 S4 l
了尸3/
-
I 。 。
.
26H进行磁盎操作,最终是冉BIOS的INT
3H来实施和寇成的,也就是说襄调用INT
25H或INT 26H的同时 计算机已经自动把
DX中韵逻辑牲耻转换成了物理蚺址,并传
嚣驹晖 13.H的入日 利用此辱理,利用INT
25H或IN 26 I对某 周定崩区进 行 操 作
时, 监视 墨: 3H的入口参数,-r窳取此时的
CH,CL
:和DH皆的数值.即完成了地址的转
换。 .
程序从DOS命令行未格式化参数医传递
逻辑扇医地址号 并穆教ilcr 13H,对其进
行扩充,使其在检测到我们所要监视的内容
时、在屏幕 的上方显示CH、cL’DH中的数
值,并等待按任一踺。然后用INT 25H读指
定逻辑扇医内容,即完成了转换,转换后恢
复INT 13H的原向量地址,释放内存,返回
DOS系统。此方法绝对可靠 ,不会有一点误
差,值得一用。 :
parm db 4 dap(D)
f db 0
- batfl 曲 512 dap (O
dat db H ’
ch1 db 0
ch db 0
db ’CLI’
I1 曲 0
0l2 db 0
db ,DH,‘
dhl db 口
dh2 db 0
m Seg dh ’(请按任意硅)
er db ’零越币对 III$’
bz db 0
0idl地 dd 0
n w{nM3 r
stl
push Bx
。’}"h bx
pu姐 tz
push dx
push bp
push si
Dush di
Du§h es
Du|h d0
push cx
^
失
V
维普资讯 刺眼 p:守主守主叩立品(白-m u 一、阳穴
逻辑地址与物理地址实时转换方法
辽宁省钱吟市委务公室 (112仰份金永精
ZSE进行磁盘操作,最终是由 )}I08 的剖T
13H来实施和完成的.也就是说在满黑INT
25H,或自T2岳王的弱尉,主专算机已经启动re
DX 中的逻辑摧扯轮换成了物瑾尴尬,并传
输部T, 13H的入r:J;.利用此愿理,利用 INT
25H或IN!, 26~1对某才固定藏区选行操作
时, ι 篮巍INτ .J, SH约人p参簸_.'f 欲取比町的
<;;H , CL,和DH中的数量主.那5草成了地址的较
换。号
辍}手从∞S命令行未格式{也参数区传递
j军属扇区量的E号 . 雍惨教IN'f 13H. 弃;其进
行扩充‘使其在检测到我们所要监视的内容
树、在屏幕的主方显示C江、,CL.. DH中的数
值.并等待按径'键。然后用INT 25H读指
定逻辑扇区内容,丑唱完成了转换,转换后恢
复INT 13H的原向量地址.释放内存,运到
DOS系统。 i比立法绝1寄:可靠,不会有一点误
差.值得一用。
众所揭知,对于磁盘的访问有两种渠
运主.部BI08的磁盘服务功能INT 13挂在D08
的绝对磁盘渎INT 25H 以及绝对磁盘写JNT
26日。1lí1~-的入口号数为物理地址. llr. CH ,
磁道号电 CL, J.ì.l 区号, DH I 磁头号.而后
蓓的入门参数极为简单‘I!~ DX 中为E哇辑~
区号即可,所以应:月1肘,在可能前情况下都
尽量采用弱者.避开烦琐的物理池址参数。
f旦有些情况下.如D0800不在重入性等.又
不得不采用BI08的INT 1SH磁盘服务功能,
这战涉及到了逻辑地址与物理地址的转换问
题,转换时大部分都是利用磁敬的1;0参数表
BPB 提供的在关该磁盘的各种数民..通过→
泛的计算方法来转换。如呆只想对 4些已知
的地主主进行换算.周编程的方法合主要加很多
11:码量,采用手工计算缀瑛又易出苦苦。为了解
决这个问题,本人采用一神实时的转换方法。
我们知道,用D08的INT, 25H或INT
源程序清单
飞?飞1
,埠量转换 ps. ...m db .. ðup( 的 bz dh 0
, 监< búrr db 0 。ldT主h dd 0
.199l量 12.. 1l , buffl d也5,12 d魅p (0) ‘民...1虱.t1 3 r
code 草草草血 d&t dl> 'CH ,' sti
且呈" C理 ;code , dstcode chl db • push a军
org 10ðh .h, d岳。 'Pll'雷缸 b:<
be , Jmp intt 4毡., CL I ~ puú.tx
016遂筒'由扭转换芳!~ dl' db. pust比 dx
主exa宦c macro .1. db 0 push hp
add al. 。事由主 dh ~ DH:' pu雪11 91
d恳a dhl 4起 e push di
adc 111 ~04Q缸 dh2 db 0 push f'S
d.. mseg d盔. (请接任童雹) • P租白白
enèm 'f 的'事毒草对 l' 1$' PU'虱 <x
• S~ ‘
p0p a0
c皿p bz,Off
】z nj sp
jmp Md
。叶 一
r. “
丑10T buft. h
m0v CI.4
1~1Oy I.buff .
shf a1.c1 ~
hex~.5c
moy ch1.aI
m0v 81,bufI
ⅡndⅡ1.Ofh
ll'0T ch2.^ 1 :
pop cx
n10v buff.c1
. IT10 8I JCl
IT4OV c【.4
shf nI_cl
hexBsc
10Y cl1.Ⅱl
RXOy aI.butf
and 81.Ofh
n10v 1 z. 1
m0v buff.dh
111Oy 1^.dh
shf 1^.t1
hexasc
m0Y db1.ⅡI
111OY"a1.buff
and 1^。Ofh
hexRsc
IT/Oy dh2.8l
Ie^ $i,d8t .
1~,ov|盖。03h
I~,Oy bk,0
int 1oh
push dx 、
m0T dx.0029h
moY cxl29
ioopll
椰0Y 8】I,O2h
‘ ·
■__二.
? "
维普资讯
4
宅S
pu主h ('s
pop d,
C!!lp bz. Gífñ
jz di<:p
jnlp- ulJ
dis P' f
IlI0v b :f'勤 CJ主-- f ‘ f组 酌'
目。可cI, 4
ruov al , b缸 ff
5汪古 al ,cl
hεxase
m臼y
mov al ,.huH
品nd 也
heXA军C
1110"7 (:11 章 ..1
pOp c芷
回C¥ buif,c1
, mo曹叫 .CI
mov cl. -i
<;1n'
tt f'XIlSC
:mo'Y cll ,品 i
mov 且 l , huH
anJ al蕃Ofh
l,exas c:
mov
币l(l亨
moy al ,d1l
唱hτ aI毒也i
heX8SC
mov dhl ,晶 I
mov a1 .õuff
and al~Qfh
he:xas-e
阻四 d孟宫,在 1
lea st"dat
mo亨血J主h
mov b盔.6
int lÐh
阳血缸
mo .,. dx.也629h
mO电,
1,由Pl 吉
事J]OV alt~D2在
I 专
j , s在 t iu主 2
Q10y bl ,. 70h
mov ah~ 国主
1". ,主
int 1 fìl1
归企~. , '1-
fOO [1 Joopl
mO"jι
~þ dx
itil "'l ;}h
moy ah~O
Înt ltih
old主 pop d'!"
tntt I
popes
POll di
pop '5 1
pòp bp
IHlP d ,‘
P9''P e玄
ι -pli>p , bx
f'op .'匙、k
eH
10' t"S totdlsh •
.,/ .~ ').
PU'if1 '('唱
~op d骂:】
mov .
mGV Ji:卢ÍÍS f'"t pa-r皿
mOY
cld
rop 皿oV9b
1
,
C踵p byte. pt I' dS:(&i他:),, 5
)Z Jχ
e-rror ,
mov dx ,.offSf' t tH'
mov ab ,09
ìnt 21b
l皿p .x去
jx: mov ax~3S13'主
ìnt 21h
lea ~h i'
mo., (). DX : .
田。y(dì+2) ,d
,. '
‘
血。.,. dx , o((se生 13:
"'0亨 ax., 25131J.
:苦 L\3班主th' 1.
J
t;C .'..1 础c-... cl着企
'""τ .m
r-al1 ['才
".:ltt hl. r1
句喂FLb1
国OY 忘 :r国 +1
call cd
'"也
llW 'f a b:. bh
mov :r回 +2
ea l1 ed
shl bl. cl
mo亨 •
ÐlOY bl ,pa Tlh+ :1
eall 仨d
。r 辛虹,1, 1
由
mO., '"事 ..a x.
A尊'.vι
mov cx..l
, mov bx,o自set hu 'Í fl
mOT hz.ÐUh
Înt 25h
. -'(
皿I)\" dx ,word fllT old13lt
血。v d笔,审时d ~Idl事1(空 3
国ßY .茧~2513h
三lhaiMEbt
mo,,.íñz!!'ð
.fIxlt , ,;
气。y: ~.础
毕 21在
E 宇持峙挟.宇于理11'
"JBchdr
S血p !.l;~olt;
l&' dohl~
i) 、"~缸,01主
l l"P odd
lz:hhl ,.~.d贝, Ofh
...w. b1, 09
• .dd慧'踵也
, ed f"皿dp
<c~de 相户
,直d be
龟,
t t
1.. l'
‘3Iof.
,,.
一二十一