851248662 发表于 2012-7-1 09:55:31

关于监测点2.2的问题

有一组数据放在内存20000H单元中,现在给定段地址为SA,诺想用偏移地址寻到此单元 则SA应满足的条件是 最大值 :最小值
小鱼老师给的答案是1001H*16+FFF0H=20000H请问这里为什么是FFF0H 而不是FFFFH?
范围不是0~FFFFH 吗

rencaixiaomeng 发表于 2012-7-1 09:55:32

段地址的范围确实是0~0ffffh 但并不是所有的段地址都能寻址到20000H单元,比方说段地址为1000h那么段地址乘16等于10000h,偏移地址最大为0ffffh,加上0ffffh后就是1ffffh单元的地址,不能再大了,这样就找不到20000h这个单元,同样,当段地址大于2000h的时候,乘16就大于20000h了,无论偏移地址是多少也都找不到20000h这个单元。

变得不一样 发表于 2012-7-1 12:22:54

段地址 乘 16 加 偏移地址=物理地址 10010H + fff0H=20000H 因为说有一组数据要放在内存20000H单元中 然而段地址设为1001H 所以偏移地址要设为FFF0H才能指向20000H处 如果你设为FFFFH指向的就是2000F处了

XXXXXXX 发表于 2012-7-2 12:47:47

1:这是由于段地址只能为16的倍数引起的。如果用地址减去最大偏移地址即20,000H-FFFFH=10,001H,结果改为段地址要除以16,为了寻址到20,000H,没办法只好进1取1001H了。
2:观察1可发现,向前进1是因为偏移地址的第4位引起的,不管第4位为取何值,结果都是1001H,当第4位为0时,没有进位发生,我想大概就这样写成20,000H-FFF0H=1001H*16了

爱人等于爱自 发表于 2012-7-7 12:40:11

顶楼上 分析的比较透彻

851248662 发表于 2012-10-6 21:16:09

好久没来了 sorry
页: [1]
查看完整版本: 关于监测点2.2的问题