鱼C论坛

 找回密码
 立即注册
查看: 5868|回复: 14

[汇编作业] 检测点2.2

[复制链接]
发表于 2019-10-5 09:06:17 | 显示全部楼层 |阅读模式

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

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

x
(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为(10)H到(1000)H。
(2)有一数据存放在内存20000H单元中现给定段地址为SA,若想用偏移地址寻到单元。则SA应满足的条件是:最小为(1001)H,最大为(2000)H.
注:(1)物理地址=段地址X16 + 偏移地址
               最小寻址值:物理地址=0001H X16+0H
                                                  =0010H+0H
                                                  =0010H
                                                  =10H
              最大寻址值:物理地址=0001HX16+FFFFH
                                              =0010H+FFFFH
                                              =1000FH
              因此:寻址范围为10H到1000FH
      
     (2)物理地址=段地址X16 + 偏移地址
            偏移地址最大时,SA的值最小
             20000H=SAX16+FFFFH
               2000H=SA+FFFFH/16
               2000H=SA+65535/16
               2000H=SA+4095      
               2000H=SA+FFFH        
                    SA=2000H-FFFH
                    SA=1001H
           偏移地址最小时,SA的值最大
             20000H=SAX16+0H
               2000H=SA+0H/16
               2000H=SA+0H           
                    SA=2000H-0H
                    SA=2000H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-5 21:57:12 | 显示全部楼层
  20000H=SAX16+FFFFH
               2000H=SA+FFFFH/16
               2000H=SA+65535/16
               2000H=SA+4095      
               2000H=SA+FFFH        
                    SA=2000H-FFFH
                    SA=1001H
这里为什么要转换成10进制呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-14 18:35:27 | 显示全部楼层
咸鱼小明 发表于 2020-6-5 21:57
20000H=SAX16+FFFFH
               2000H=SA+FFFFH/16
               2000H=SA+65535/16

因为16进制的话实际要除以10h
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 11:25:26 From FishC Mobile | 显示全部楼层
20000H=SA+FFFFH/16
为什么FFFFH/16?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-30 00:08:20 | 显示全部楼层
许默沉 发表于 2020-8-25 11:25
20000H=SA+FFFFH/16
为什么FFFFH/16?

其实他是向右移了一位
所以 不是 20000H 而是 2000H 了 ;)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-30 00:14:12 | 显示全部楼层
               2000H=SA+FFFFH/16
               2000H=SA+65535/16
               2000H=SA+4095      
               2000H=SA+FFFH

感觉中间的两行可以省略 16进制应该可以之间移位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-16 11:01:44 | 显示全部楼层
咸鱼小明 发表于 2020-6-5 21:57
20000H=SAX16+FFFFH
               2000H=SA+FFFFH/16
               2000H=SA+65535/16

因为这个16是10进制的,如果FFFFH 不换算成10进制的65535那么16就应该换算成16进制的10H可以写成:
20000H=SAx16+FFFFH
2000H=SA+FFFFH/10H
2000H=SA+FFFH
SA=2000H-FFFH
SA=1001H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-16 11:10:29 | 显示全部楼层
ArmandXiao 发表于 2020-9-30 00:14
2000H=SA+FFFFH/16
               2000H=SA+65535/16
               2000H=SA+4095     ...

是的其实  2000H=SA+65535/16
               2000H=SA+4095      
两步可以省掉,从 2000H=SA+FFFFH/16 就可以得到  2000H=SA+FFFH 其实就是FFFFH向右移动1位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-27 01:05:52 | 显示全部楼层
本帖最后由 “或许” 于 2020-10-27 01:28 编辑

有个很大的疑惑
20000H=SAX16+FFFFH
    20000H-FFFFH=SAX16
              10001H=SAX16
                     SA=65537/16
                     SA=4096.0625
                     SA=1001H
还有有一个很大的问题:65535/16=4095是错的结果是4095.9375 一个奇数除以一个偶数怎么可能是整数????????
问题是如果IP是FFFFH是SA不管取多少SAX16+FFFFH都没法直接寻址到20000H所以FFFFH取最大就有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-27 01:23:54 | 显示全部楼层
“或许” 发表于 2020-10-27 01:05
有个很大的疑惑
20000H=SAX16+FFFFH
    20000H-FFFFH=SAX16

朋友进制转换可不是单纯地除以一个16噢
是多次除16得到的
整除16 再用余数除16 这样过来的哈哈哈

举个反例 十进制的17 你转成 16进制 难道都转不了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-27 01:30:39 | 显示全部楼层
ArmandXiao 发表于 2020-10-27 01:23
朋友进制转换可不是单纯地除以一个16噢
是多次除16得到的
整除16 再用余数除16 这样过来的哈哈哈

感谢,刚才的确发现了一些问题,1001H的结果是对的因为我们算的是最值要进一位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-27 01:36:11 | 显示全部楼层
ArmandXiao 发表于 2020-10-27 01:23
朋友进制转换可不是单纯地除以一个16噢
是多次除16得到的
整除16 再用余数除16 这样过来的哈哈哈

我刚刚的疑问主要是当CS取1001H时PS取值是FFF0H,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-27 01:37:21 | 显示全部楼层
“或许” 发表于 2020-10-27 01:36
我刚刚的疑问主要是当CS取1001H时PS取值是FFF0H,

啊啊啊好滴 没有仔细看 抱歉:)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-2 15:17:39 | 显示全部楼层
第二题应该这么样更好理解:

若SA*16+0000H>20000H,此时SA有最大值:SA<=(20000H-0000H)/16=2000H


若SA*16+FFFFH<20000H,此时SA有最小值:SA>=(20000H-FFFFH)/16

20000H-FFFFH=10001H,不能被16整除,满足条件的最小值为10010F(画一条数轴就更能方便自己理解了)

所以SA>=1001H。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-9 15:53:54 | 显示全部楼层
不错不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 18:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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