首先要确定"字"是多大,每个地址里面有几位数据。
看这个起始地址,这是8086的机器。所以字长是16位。每个地址里面有8位。
8086的物理地址与地址之间的关系:物理地址 = 段地址*10H + 偏移地址
根据以上几点,很容易完成计算。
第一步,
因为,8086的物理地址与地址之间的关系:物理地址 = 段地址*10H + 偏移地址,
所以,这个数据区的最开始单元的物理地址在:12ABH*10H+00ABH
第二步,问题问的是这个数据区最末尾一个字单元的物理地址。所以,就是要算一下相对的偏移量,加在起始的物理地址上即可。
题目里面说数据区大小为128个字。前面说了这个题目里面的“字”是16位。所以,最末的一个字的单元相对起始地址的偏移量为,(128-1)字。一个字是16位,一个地址里有8位,每个字偏移量为2。所以偏移量是(128-1)*2=254。换算为16进制,为FEH。
所以这个数据区最末一个字单元的物理地址是,
起始物理地址+偏移量=(12ABH*10H+00ABH)+FEH=12AB0+ABH+FEH=12C59H
前面那个地址应该是数据段基址吧。128个字就是256个字节,以后面那个地址为起始偏移地址的话,就是00ABH+256-1=0300H,加上段基址的16倍,12AB0H+0300H=12DB0H,由于是字,再减1,得12DAFH,没答案。若以前面那个为起始偏移地址的话,用相同算法得:1FAFH。不明白了。
12AB0H+00ABH+FEH=12C59H
128字,256字节,256=100H,100H-2H=FEH
这个数据区的首物理地址为12AB0+00AB = 12B5B ,
然后末尾地址为12B5B + (128-1)* 2 等于12B5B + 254.
而254的15进制为FE,
相加之后,末尾地址就是12C59 H了
C