Dear黑色 发表于 2020-11-8 15:43:06

2.2检测点

本帖最后由 Dear黑色 于 2020-11-8 16:33 编辑

1.给定段地址为 0001H ,仅通过变化偏移地址寻址,CPU的寻址范围为10H 到 1000FH
2.有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是: 最小为1001H    ,最大为2000H,
物理地址 = 段地址*16 + 偏移地址
最大偏移地址:FFFFH
最小偏移地址:0000H
最小SA:
20000H = SA*16 + FFFFH
SA*16 = 20000H - FFFFH
SA*16 = 10001
由于SA*16等于SA向左偏移一位,那么SA的末尾数一定是0,所以SA*16只能是10000或者10010
如SA*16=10000
10000H + FFFFH = 1FFFH< 20000H 所以SA不能是1000,因为并不能寻址到20000H
如SA*16=10010
10010 + FFFFH = 2000FH >20000H 所以SA是1001,这才能寻址到20000H
最大SA:
20000H = SA*16 + 0H
SA*16 = 20000H
SA向右偏移一位SA = 2000H
3.因为SA最小为1001H,最大为2000H,所以如果SA<1001H 或SA>2000H,那将永不能寻址到20000H



ps:第二题的SA最小值,有点头疼,还是看了其他水友的解读才理解{:5_104:}

czw071418 发表于 2020-12-27 14:25:30

我认为大概是SA*16=10010会让段地址成为小数,所以舍去了

maikehong 发表于 2023-7-18 09:39:32

真棒

3445167303 发表于 2023-10-30 19:54:04

第二题不是SA末尾一定是零,应该是SA*16之后末尾一定是零才对
页: [1]
查看完整版本: 2.2检测点