|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
(1)给定段地址为0001H。仅通过变化偏移地址寻址,CPU的寻址范围为:( )到:( )
注解:小甲鱼:因为偏移地址的范围是0000H到FFFFH这64KB
段地址*16==00010H
所以,段地址*16+偏移地址==00010H到1000FH.
自己思考:假设偏移地址为X, 根据:偏移地址的范围是0000H到FFFFH。所以X的值为:0000H-FFFFH.
段地址已知道是:0001H。根据:物理地址=段地址*16+偏移地址。 可以得出CUP的寻址范围为:0001H*16+0000H和0001H*16+FFFFH。结果:00010H和FF1FH啊? (本人看了好几遍视频还是无法得出结论,为什么是00010H到1000FH?)
(2)应朋友要求,将第二题的答案详细解释一下:
因为题目要求是要物理地址最终为20000H。
我们知道偏移地址最小为0H,最大为FFF0H。
我们要求段地址能够取到的最小值,即要和偏移地址最大值配合,所以段地址应该为1001H,偏移地址为FFF0H:1001H * 10H + FFF0H == 20000H。(为什么是1001H*10H?)H不是代表16进制吗?
我们要求段地址能够取到的最大值,即要和偏移地址最小值配合,所以段地址应该为2000H,偏移地址为0H。
(2)有一个数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小:( ),最大:( )?
注解小甲鱼:1001H*16+FFFOH==20000H,2000H*16+0H==20000H.
自己思考:为什么是:1001H*16?为什么不是0?因为偏移地址的范围是0000H到FFFFH,1001H*16+FFFFH 和1001H*16+F000H,这些都可以吗?
写完问题后:为什么是:1001H*16?好像自己想出答案来了。是不是因为偏移地址的范围是0000H到FFFFH。而FFFFH也就是10000H 所以SA最小也得是10000H,相加才可以啊?
|
|