xiehaofeng 发表于 2018-3-15 20:53:46

监测点2.2

本帖最后由 xiehaofeng 于 2018-3-15 21:34 编辑

监测点2.2
(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为_______H到______H。
(2)有一数据存放在内存20000H单元中现给定段地址为SA,若想用偏移地址寻到单元。则SA应满足的条件是:最小为_______H,最大为________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 (两边的数同时除以16,也可以理解为同时偏移一位)
               2000H=SA+65535/16 (将16进制数FFFF转化为十进制数65535)
               2000H=SA+4095       (将十进制数4095转化为16进制数FFF)
               2000H=SA+FFFH      
                  SA=2000H-FFFH
                  SA=1001H
         偏移地址最小时,SA的值最大
             20000H=SAX16+0H
               2000H=SA+0H/16 (两边的数同时除以16,也可以理解为同时偏移一位)
               2000H=SA+0H         
                  SA=2000H-0H
                  SA=2000H

大佬哦 发表于 2019-2-27 16:40:15

0001HX16+FFFFH这么就=1000FH?

黑豆哥哥 发表于 2020-4-21 09:55:32

大佬哦 发表于 2019-2-27 16:40
0001HX16+FFFFH这么就=1000FH?

你用计算器算,16进制,10H+FFFFH=1000FH

咸鱼小明 发表于 2020-6-4 22:56:12

2000H=SA+65535/16 (将16进制数FFFF转化为十进制数65535)这里为什么要转换成十进制呢?转换成十进制为什么不是÷十10?

咸鱼小明 发表于 2020-6-5 21:45:09

2000H=SA+65535/16 (将16进制数FFFF转化为十进制数65535)这里为什么要转换成⑩进制?{:5_100:}

bai111111 发表于 2021-1-3 00:02:38

咸鱼小明 发表于 2020-6-4 22:56
2000H=SA+65535/16 (将16进制数FFFF转化为十进制数65535)这里为什么要转换成十进制呢?转换成十进制为什 ...

是为了吧sa提出来   这样不就可以求值了

sadjjapi 发表于 2021-4-7 19:53:39

bai111111 发表于 2021-1-3 00:02
是为了吧sa提出来   这样不就可以求值了

除以16直接右移一位不就可以了吗?

mathematicalhum 发表于 2021-4-13 15:47:32

sadjjapi 发表于 2021-4-7 19:53
除以16直接右移一位不就可以了吗?

直接右移有小数,1001H是1000.1H取了整的,因为取1000H就取不到20000H这个单元,所以向上取整
页: [1]
查看完整版本: 监测点2.2