鱼C论坛

 找回密码
 立即注册
查看: 2789|回复: 26

[汇编作业] 汇编检测点2.2

[复制链接]
最佳答案
0 
发表于 2016-1-29 11:07:40 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

x
1、給定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围是0010H到1000FH


2、有一个数据存放在内存20000H单元中,现给定段地址为SA,若想用偏位地址寻到此单元,则SA应满足,最小为1001H,最大为2000H

解:物理地址=段地址*16+偏移地址
    20000H=SA*16+偏移地址
    由于16为十进制,转换为十六进制=10H
    最小偏移地址=0H
    最大偏移地址=FFFFH
    最小SA=(20000H-FFFFH)/10H=20000H/10H-FFFFH/10H=2000H-FFFH=1001H
    最大SA=(20000H-0H)/10H=20000H/10H-0H/10H=2000H-0H=2000H


3、当sa<1001H 或者sa>2000H  将无法寻到20000H单元
最佳答案
0 
发表于 2016-1-30 19:16:33 | 显示全部楼层
不错不错                                
最佳答案
0 
发表于 2016-2-16 16:28:01 | 显示全部楼层
谢谢,帮了大忙了
最佳答案
0 
发表于 2016-2-19 23:55:01 | 显示全部楼层
谢谢!
最佳答案
0 
发表于 2016-4-21 20:06:39 | 显示全部楼层
看着很绕 不好学。。。
最佳答案
0 
发表于 2017-7-22 22:16:50 | 显示全部楼层
醍醐灌顶,,,
最佳答案
1 
发表于 2017-7-29 01:30:56 | 显示全部楼层
最小SA=(20000H-FFFFH)/10H=20000H/10H-FFFFH/10H=2000H-FFFH=1001H

为什么(20000H-FFFFH)/10H=20000H/10H-FFFFH/10H。。。
不应该是(20000H-FFFFH)/10H=10001/10H么。。。
最佳答案
0 
发表于 2017-8-23 21:08:51 | 显示全部楼层
铛铛 发表于 2017-7-29 01:30
最小SA=(20000H-FFFFH)/10H=20000H/10H-FFFFH/10H=2000H-FFFH=1001H

为什么(20000H-FFFFH)/10H=20000H/ ...

我也纠结了好半天
最佳答案
0 
发表于 2017-8-23 21:09:00 | 显示全部楼层
chappie 发表于 2017-8-23 21:08
我也纠结了好半天

有问题
最佳答案
0 
发表于 2017-10-9 12:44:07 | 显示全部楼层
第二道题怎么算都算不懂,求解释
最佳答案
0 
发表于 2017-10-16 14:38:10 From FishC Mobile | 显示全部楼层
meiyuexun 发表于 2017-10-9 12:44
第二道题怎么算都算不懂,求解释

第二题的解里面算得很清楚了吧,你哪里不懂
最佳答案
0 
发表于 2017-11-6 22:48:35 | 显示全部楼层
小阿肆 发表于 2017-10-16 14:38
第二题的解里面算得很清楚了吧,你哪里不懂

这个解的不对吧
最佳答案
0 
发表于 2017-11-6 22:50:23 | 显示全部楼层
20000H = SA*16+偏移地址,然后数学方法讨论:当偏移地址最小,取0H时,SA最大;当偏移地址取最大FFFFH时,SA求得最小
最佳答案
0 
发表于 2017-11-13 09:43:38 | 显示全部楼层
本帖最后由 zsong9@asu.edu 于 2017-11-13 09:45 编辑

第一题的答案应该是00010H-1000FH, 00010H少了一个零,写成0010H了.

第二题是这样想,第一步肯定使用20000H-FFFFH吧,得多少呢?得10001H.这就很尴尬了,因为段地址(16进制))向左偏移一位后一定是能被16整除的数,也就是说末尾位一定是零,只能得到10000H或者10010H,不可能得到10001H.所以段地址只能是1000H或者1001H.那么是选1000H还是选1001H呢?当然是1001H啦,因为1000H*16+FFFFH得1FFFFH,够不到20000H.但是1001H*16+FFF0H就是20000H了,所以答案中最小值就是1001H.
最佳答案
0 
发表于 2017-12-14 19:39:08 | 显示全部楼层
zsong9@asu.edu 发表于 2017-11-13 09:43
第一题的答案应该是00010H-1000FH, 00010H少了一个零,写成0010H了.

第二题是这样想,第一步肯定使用20000 ...

给赞一个
最佳答案
0 
发表于 2017-12-22 14:54:28 | 显示全部楼层
为什么偏移地址的范围是0000H-FFFFH啊,是不是因为它是16位的?
最佳答案
0 
发表于 2017-12-26 10:26:14 | 显示全部楼层
可以
最佳答案
0 
发表于 2017-12-28 10:56:58 | 显示全部楼层
zsong9@asu.edu 发表于 2017-11-13 09:43
第一题的答案应该是00010H-1000FH, 00010H少了一个零,写成0010H了.

第二题是这样想,第一步肯定使用20000 ...

你仔细算一下1001x16+FFFFH等于多少呢?好像等于2000FH吧,大于20000H了,好吧?这个第二题,如果是1000的段地址,那就是1FFFFH,也不对,所以说,这个题就有问题,都说了,段地址应该是16的倍数,这个就特么不是16的倍数啊
最佳答案
0 
发表于 2017-12-28 11:00:29 | 显示全部楼层
楼主,你这个第二题解法有问题啊,物理地址=段地址x16+偏移地址,这里是正向算物理地址,应该是先把段地址向左偏移一位再加上偏移地址才对!你在解题的时候,直接把偏移地址带入进去向右偏移了一位,你觉得解出来对吗?我感觉有问题。还是应该先用物理地址-偏移地址再把基础地址向右偏移一位才是段地址吧?
最佳答案
0 
发表于 2018-1-2 21:19:57 | 显示全部楼层
W_H_I 发表于 2017-12-28 11:00
楼主,你这个第二题解法有问题啊,物理地址=段地址x16+偏移地址,这里是正向算物理地址,应该是先把段地址 ...

不用吧,直接用物理地址-偏移地址,然后直接除以16的十进制10H就可以了啊,正向乘10H的时候就代表了偏移吧,(乘以10H向左偏移以为,除以10H向右偏移一位)。。我真没想到偏移地址的范围,所以一开始做题无从下手。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2018-8-19 06:23

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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