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