鱼C论坛

 找回密码
 立即注册
查看: 6295|回复: 12

[汇编作业] 检测点2.2

[复制链接]
发表于 2018-5-23 14:30:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 奥普瓯江 于 2018-5-23 14:35 编辑

(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为  00010    0001F
(2)有一数据存放内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为  1001H  ,最大为  2000H
提示,反过来思考一下,当段地址给定为多少,CPU无论怎么变化偏移地址都无法寻找到20000H单元?
答:当段地址  小于不等于1001H  或者  大于不等于2000H  时无论CPU怎么变化偏移地址都无法找到20000H单元,因为定位内存中物理地址的公式是,20位物理地址 = 段地址 * 16 + 偏移地址,偏移地址的取值范围为0000H-FFFFH。

不知道对不对,如果不对请给予提示谢谢了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-29 21:15:27 | 显示全部楼层
个人看法:
      (1).10H+FFFFH=1000FH, 范围在0010H到1000FH
      (2).SA*10H+偏移量=20000H;  那么SA一定是16的倍数.  偏移量最后一位一定和20000H最后一位相等.  偏移量越大,SA越小,偏移量(max) = FFF0H  ,  所以SA(min)=10010H; SA(max)不可大于20000H.
欢迎指正.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2018-5-29 22:04:55 | 显示全部楼层
1070057369 发表于 2018-5-29 21:15
个人看法:
      (1).10H+FFFFH=1000FH, 范围在0010H到1000FH
      (2).SA*10H+偏移量=20000H;  那么SA ...

问题1你是正确的
问题2你是错误的

SA * 10H + 偏移 = 20000H

SA 最大,偏移最小
SA = 2000H,偏移为 0
2000H * 10H + 0 = 20000H
SA(max)为2000H


SA 最小,偏移最大
SA最小是多少还不知道,只是偏移最大只能是 FFFFH,不能再大了
所以
SA * 10H + FFFFH = 20000H
SA = (20000H - FFFFH) / 10H
SA = 10001H / 10H
SA = 1000H

但是 10001H / 10H 的结果并不是整数
就像 10 / 3 = 3 一样,只保留了整数

10 / 3 = (10/3)(3分之10)
(10/3)(3分之10) * 3 = 10
被除数 / 除数 = 商
商 * 除数 = 被除数


因为 10001H / 10H = 1000H
只保留了整数
也就是说
1000H * 10H != 10001H

1000H * 10H = 10000H
10000H + FFFFH = 1FFFFH
也就是说
当SA = 1000H 时
SA * 10H + FFFFH
1000H * 10H + FFFFH = 10000H + FFFFH = 1FFFFH
偏移地址已经是最大了,但是物理地址还是达不到 20000H
这说明SA 太小了

SA + 1 = 1001H
SA * 10H + FFFFH
1001H * 10H + FFFFH = 1001H * 10H + FFFFH = 10010H + FFFF = 2000FH

当SA = 1000H 时太小了,偏移地址无论是多少,物理地址都达不到 20000H
当SA = 1001H 时貌似太大了?
不,首先SA肯定不是 1000H
如果SA是 1001H,那么偏移地址就不能最大,那么应该是多少?

SA * 10H + ? = 20000H
1001H * 10H + ? = 20000H
? = 20000H - (1001H * 10H)
? = FFF0H

所以
SA(min) = 1001H 偏移地址为 FFF0H
1001H * 10H + FFF0H = 20000H

评分

参与人数 1荣誉 +5 收起 理由
Yoikl + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 5 反对 0

使用道具 举报

发表于 2018-5-29 22:38:40 From FishC Mobile | 显示全部楼层
嗯,我SA(min)忘除以16了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-4 09:34:03 | 显示全部楼层
SA*16+EA=20000H
SA*10H+EA=20000H
可以看出:
SA*10H是10H的倍数。
20000H是10H的倍数。
推出:EA是10H的倍数。
因为,EA最大值为FFFFH,且EA为10H的倍数。
所以,EA最大只可取值FFF0H。
SA*10H=20000H-FFF0H=10010H.
所以,SA最小=1001H。

补充:实际EA最大值为FFFFH,但是因为题目的限制,导致EA不能取到FFFFH,看着有点别扭,就像完成一个工作需要7.5人,但人没有半个,而7个人不能完成工作,你只能取8个人一个道理。慢慢理解就明白这个道理了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-6-7 17:43:43 | 显示全部楼层
人造人 发表于 2018-5-29 22:04
问题1你是正确的
问题2你是错误的

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-5 14:58:29 | 显示全部楼层
这两个题目就是考察,已知物理地址,计算段地址的范围,需要加上偏移地址的范围0000H~FFFFH。如果知道段地址,那减去偏移地址,就得到物理地址了,物理地址了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-19 00:05:54 | 显示全部楼层
第一题第二个空答案是1000FH的请举爪!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2019-1-5 15:02:56 | 显示全部楼层
1. 00010H 1000FH

2. SA(min) 1001H
    SA(max) 2000H

无法寻到20000H:   SA<1001H or SA>2000H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-29 10:51:17 | 显示全部楼层
TZJ5200 发表于 2018-6-4 09:34
SA*16+EA=20000H
SA*10H+EA=20000H
可以看出:

非常感谢 看到这里就一切都明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-4 01:02:03 From FishC Mobile | 显示全部楼层
不是只能*16的倍数吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-4 01:03:08 From FishC Mobile | 显示全部楼层
这个是10的倍数视频没说啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-9 12:58:42 | 显示全部楼层
wudong552200 发表于 2019-7-4 01:03
这个是10的倍数视频没说啊

那后面是H(H哥哥那是16位的标志)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 18:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表