汇编语言 物理地址问题

题目如下:一个有16个字的数据区,起始地址为70A0:DDF6,则这个数据区末字的物理地址是______________.
答案是: 7E816H
请教懂汇编语言的高手,指点下,是如何算出来的。
谢谢~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

这个答案是错误的,正确的是:7E814H。

1、先计算数据区末字的偏移地址
16个字占20H字节的内存空间,0DDF6H+20H=DE16H,这是末字数据后面的偏移地址,末字的偏移地址为DE16H-2=DE14H。
2、再计算末字的物理地址
物理地址=段地址*10H+偏移地址=70A0H+DE14H=7E814H。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-10
算这种问题我教楼主一个很实用但有点麻烦的方法:
先将个数简化成一:
也就是说一个有1个字的数据区,起始地址是那些,然后计算这个数据区末字的地址.很明显,只有一个的话最后一个就是第一个,那地址自然70A0:DDF6
然后看有2个字的数据区,有两个的话,第一个的地址是70A0:DDF6,第二个也就是最后一个的地址也就是70A0:DDF8
然后有3个的就是70A0:DDFA
...
然后整理这些数据,可以推出:
一个有N个字的数据区,起始地址为A0,它的末字的地址为A0+2*(N-1)

这个方法就是大名鼎鼎的数学归纳法
当然我这个不过程好像不是地道数学归纳法

看看这道题,只要把数代进去就行了
70A0H:DDF6H+2*(16-1)=
第2个回答  2009-09-12
已知:70A0:DDF6
再加16字,即20H
如下:

7 0 A 0 0
+ D D F 6
+ 2 0
--------------------------
7 E 8 1 6

虽然得出了题里给定的结果,但是不是填空所需要的结果。
第3个回答  2009-09-19
70A00
DDF6 //DOS下物理地址的计算方法(段地址(70A0)*10h(16)+偏移地址(DDF6))
+0020(16个字=10h(16进制)X2(一个字等于两字节))
______
7E816
第4个回答  2009-09-10
少东西 应该有个16区

汇编语言 物理地址问题
1、先计算数据区末字的偏移地址 16个字占20H字节的内存空间,0DDF6H+20H=DE16H,这是末字数据后面的偏移地址,末字的偏移地址为DE16H-2=DE14H。2、再计算末字的物理地址 物理地址=段地址*10H+偏移地址=70A0H+DE14H=7E814H。

汇编语言 物理地址问题
1、先计算数据区末字的偏移地址 16个字占20H字节的内存空间,0DDF6H+20H=DE16H,这是末字数据后面的偏移地址,末字的偏移地址为DE16H-2=DE14H。2、再计算末字的物理地址 物理地址=段地址*10H+偏移地址=70A0H+DE14H=7E814H。

汇编语言基础问题
首先, 物理地址 = 段地址 * 10H + 偏移地址 现在我们知道了物理地址为20000H, 且偏移地址的范围是0000H ~ 0FFFFH 所以段地址 * 10H = 20000H - 0000H 或者 20000H - 0FFFFH 所以段地址 = 20000H \/ 10H 或者 10001H \/ 10H 段地址 = 2000H(最大) 或者 1001H(最小, 有余数1, 向上...

求助!汇编语言 段地址 偏移地址 物理地址问题!
把这个例子带到这个问题中,你可以这样理解,段地址相当于楼层地址,偏移地址相当于房间号,最后合成的就是物理地址。8086的地址线20根,数据线16根,物理地址的位数取决于8086地址线的数量,16位的数据线决定了8086的寄存器只能有16位,这样一来不管是段寄存器还是通用寄存器都是16位的,所以,段地址和偏...

关于汇编语言一个问题
16位汇编语言中,物理地址=段地址*16(即16进制的10H,亦即二进制中左移4位,或16进制中左移一位)+偏移地址,构成20位地址(因为8086CPU有20位地址线)。所以此题的PA=DS*16+1352H=10000+1352=11352H(通常表示成 1000:1352 的形式)。而指令MOV AX,[1352H] 即是将地址1000:1352H(默认段...

汇编语言
物理地址就是:(DS)*16D + (bx) (或者是(si), (di)) +偏移量 如果寄存器使用了BP,则操作数在堆栈段(SS)中,物理地址:(SS)*16d+(bp)+偏移量 [bp+20],就是ss:[bp+20],SS * 16D+0100H+14H = 10000+0114 = 10114H (2)同(1)中所讲,不过指定了数据段为ES 所以:物理地址=...

汇编语言的段地址和偏移地址问题
物理地址1和物理地址2是相同的,没问题 他们指的是同一个地址空间,只是算法不同 不会产生问题

汇编语言的问题
如果(DS)=3000H,(SI)=2000H,COUNT=3000H 则物理地址=30000+2000+3000=35000H---对。MOV AX,COUNT[SI]---AL = [35000H], AH = [35000H + 1]执行结果是(AX)=1234H--不能肯定。因为题目并没有给定 [35000H] 和 [35000H + 1] 中的内容。

汇编语言逻辑地址转换为物理地址。
算法:物理地址=段首地址*10H+偏移地址 你的问题里前面数值代表段首地址,后面数值代表偏移地址按照公式直接算就可以看了,比如:39AB:B087 物理地址=39ABH*10H+B087=44B37

汇编语言中的(ss),(sp)是什么意思
知道ss,sp求物理地址的公式是 物理地址=ss* 16+ sp,或者物理地址=ss* 10H+ sp 也就是对于2进制来说,ss里的数要加上4个0 再加sp得到物理地址。比如ss存放 1234H sp 存放 2000H ,那么物理地址就是 1234H*10H+2000H=14340H。 如果ss是2000H sp是1234H,那么物理地址就是 2...

相似回答