鱼C论坛

 找回密码
 立即注册
查看: 3006|回复: 15

关于汇编语言2.2习题

[复制链接]
发表于 2012-5-23 16:28:43 | 显示全部楼层 |阅读模式
1鱼币
第一题的第二个空是怎么到1000fh的 这里没弄懂           还有第二题 看着小给予的解答还是完全不懂 他是怎么弄出的1001h*16+fff0h=20000h 这个公式还有后面的公式

最佳答案

查看完整内容

又是这个题目:L,我建议你把书上的物理地址的方法看多几次,物理地址=段地址*16+偏移地址,因为CPU中是以十六进制显示的,所以段地址*16相当于向左移了一位(例如本来的1000H,乘以16后就是10000H了)。 第一小题:段地址=0001H,而偏移地址可以由0H到FFFFH范围内,所以物理地址=段地址*16+偏移地址,可以得到00010H到1000FH。 第二小题:跟第一题反过来计算而已,它给定物理地址=20000H,那么因为偏移地址可以由0H到FFFFH,而因 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-23 16:28:44 | 显示全部楼层
又是这个题目:L,我建议你把书上的物理地址的方法看多几次,物理地址=段地址*16+偏移地址,因为CPU中是以十六进制显示的,所以段地址*16相当于向左移了一位(例如本来的1000H,乘以16后就是10000H了)。
第一小题:段地址=0001H,而偏移地址可以由0H到FFFFH范围内,所以物理地址=段地址*16+偏移地址,可以得到00010H到1000FH。
第二小题:跟第一题反过来计算而已,它给定物理地址=20000H,那么因为偏移地址可以由0H到FFFFH,而因为物理地址中是20000H,第一位中是0,所以偏移地址最大只能是FFF0H,最小是0H,那么你计算一下就可以得到段地址SA最小是0001H,最大可以是2000H了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-23 17:02:13 | 显示全部楼层
对了,第二题的最小是1001H,我写错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-23 17:07:42 | 显示全部楼层
第一题第二个空是1000FH是因为通过0001h*16+ffffh计算得出  

第二题
物理地址=段地址*16+偏移量
因为题目给了物理地址所以得出下面的公式
当EA取最大值时,SA=2000h-ffffh/16=1001h,SA为最小值   
当EA取最小值时,SA=2000h-0h/16=2000h,SA为最大值  



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

使用道具 举报

 楼主| 发表于 2012-5-23 17:07:45 | 显示全部楼层
哦 懂了 谢谢   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-23 17:25:50 | 显示全部楼层
套用公式就好了
    公式:段地址*16+偏移地址=物理地址
           第一题给定段地址为0001H,仅通过变化偏移地址寻址,CPU的选址范围。
                  我们知道一个段的偏移地址的大小是0000-FFFF那么也就是说第一题的起始寻址范围等于
                      段地址*16+最小偏移地址=0001H*16+0000=0010H
                  最大寻址范围就等于
                         段地址*16+最大偏移地址=0001H*16+FFFF=1000FH
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-23 17:28:00 | 显示全部楼层

虽然我已经懂了  但是还是谢谢你的解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-23 17:57:08 | 显示全部楼层
第二题
先套用公式,段地址*16+偏移地址=物理地址
那么我们已经知道了物理地址为20000H
SA的意思就是物理地址
SA = 20000 - 0000H  / 16 = 2000H ;最大值
SA = 20000 - FFFFH  / 16= 10001H :最小值
按照公式来算我们得出的是以上的答案 想必你看我我对第一题的解释你应该就懂了
那么按照答案上所说的最小值10001H除了问题  那么我们来做个简单的对比
10001H:FFFF=65537:65535好 这里很明显10001H超出了地址偏移0000-FFFF的范围
20000-FFFFH/16  这个最大的偏移地址不满足条件那我们就像下找一个找到一个能满足条件的地址偏移那么就出现了答案上所说的FFF0H。
至于这句1001h*16+fff0h=20000h 的公式
就是等于这样的
物理地址—最大偏移地址/16=最小段地址

不懂我这样解释第二题你明白了没有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-23 17:57:41 | 显示全部楼层
累死我了,手都酸了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-23 18:00:01 | 显示全部楼层
沧夜飞羽 发表于 2012-5-23 17:28
虽然我已经懂了  但是还是谢谢你的解答

没事,没事。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-25 11:07:38 | 显示全部楼层
Yara 发表于 2012-5-23 16:28
又是这个题目,我建议你把书上的物理地址的方法看多几次,物理地址=段地址*16+偏移地址,因为CPU中是以十 ...

老师好,请问您说的第一位中是0???那个第一位呢?要第一位是多少时才用FFFF,而不是FFF0呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-25 11:14:49 | 显示全部楼层
橙子 发表于 2012-5-23 17:57
第二题
先套用公式,段地址*16+偏移地址=物理地址
那么我们已经知道了物理地址为20000H

哦,老师您的意思是计算出来的10001的最小偏移地址比FFFF的大,所以要改成FFF0从新计算么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-25 12:11:11 | 显示全部楼层
守望 发表于 2012-5-25 11:07
老师好,请问您说的第一位中是0???那个第一位呢?要第一位是多少时才用FFFF,而不是FFF0呢?

首先,我不是个老师。我说的20000H中的第一位应该是十六进制的第0位,你知道物理地址=段地址*16+偏移地址,那么段地址*16相当于十进制的*10而已,例如段地址=1000H,那么段地址*16=10000H,那么如果要物理地址是20000H,(若物理地址要20001H,那么我所说的第0位就是1H),你计算一下,物理地址中的第0位是不是一定要是0H呢?那么就不可能是FFFF,偏移地址的第0位只能是0H。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-25 13:08:44 | 显示全部楼层
Yara 发表于 2012-5-25 12:11
首先,我不是个老师。我说的20000H中的第一位应该是十六进制的第0位,你知道物理地址=段地址*16+偏移地址 ...

您没明白我的问题出在哪,我算的这题结果是10001h,然后在除以16是1000.1h,但是在这里我还没接触小数这个问题(不知以后能不能接触到),我就想问这个1000.1H后面的小数点就像十进制的四舍五入那样有数就进一吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-25 14:26:58 | 显示全部楼层
守望 发表于 2012-5-25 13:08
您没明白我的问题出在哪,我算的这题结果是10001h,然后在除以16是1000.1h,但是在这里我还没接触小数这个 ...

你这个问题不是问我的吧,我好像没答过地址要/16的,不过你想问除法溢出的话,在后面的标志寄存器会说到,会有个of标志位来记录你溢出的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-25 16:22:51 | 显示全部楼层
守望 发表于 2012-5-25 11:14
哦,老师您的意思是计算出来的10001的最小偏移地址比FFFF的大,所以要改成FFF0从新计算么?

FFF0不是最大的有符合要求的地址偏移嘛。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 14:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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