13977097047 发表于 2020-2-26 10:56:33

刚开始学汇编,想问一下王爽老师的监测点2.2第一个问题

刚开始学汇编,想问一下王爽老师的监测点2.2第一个问题。
我自己写的答案是 00010H到1000FH,看完答案后发现是 0010H 到 1000FH ,
我想问一下,为什么第一个答案是四位数字,第二个是五位啊?
0001H*16不是向左偏移一位变成00010吗?为什么要删除一个0?
求各位大牛回答我一下

jackz007 发表于 2020-2-26 11:07:08

      没人知道检测点 2.2 是什么,更没人关心检测点 2.2。在这里求助,关键是要把题目贴出来!

405794672 发表于 2020-2-26 14:51:24

检测点2.2是什么?还有,前面有几个0不都是一样的?你写8个0也好,都一样的值

13977097047 发表于 2020-2-26 14:54:23

本帖最后由 13977097047 于 2020-2-26 14:58 编辑

https://imgchr.com/i/3UEzvt

13977097047 发表于 2020-2-26 15:13:43

jackz007 发表于 2020-2-26 11:07
没人知道检测点 2.2 是什么,更没人关心检测点 2.2。在这里求助,关键是要把题目贴出来!

抱歉,我发不了图,题目是这个:给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为   到      、

13977097047 发表于 2020-2-26 15:14:38

405794672 发表于 2020-2-26 14:51
检测点2.2是什么?还有,前面有几个0不都是一样的?你写8个0也好,都一样的值

抱歉,我发不了图,题目是这个:给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为   到      、

jackz007 发表于 2020-2-26 15:55:56

本帖最后由 jackz007 于 2020-2-26 16:03 编辑

13977097047 发表于 2020-2-26 15:13
抱歉,我发不了图,题目是这个:给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为   到       ...

      首先应该明白,段地址增加 1H,与偏移增加 10H 是同样的效果,明白这个关系,这道题就好办了。

      段地址 0001H:0000H 对应于 20 位内存地址 00010H,可以寻址 64 KB,这个范围如果用段 + 偏移来表示就是 0001H:0000H ~ 0001H:FFFFH,如果用 20 位地址来表示,那就是00010H ~ 1000FH。其中,1000FH = 00010H + 0FFFFH

13977097047 发表于 2020-2-26 23:50:01

jackz007 发表于 2020-2-26 15:55
首先应该明白,段地址增加 1H,与偏移增加 10H 是同样的效果,明白这个关系,这道题就好办了。 ...

我是这样想的,0001H向左进位变成00010H,
然后偏移地址是0000H到FFFFH,答案是00010H到1000FH。

但是这道题书本答案是0010H到1000FH,
我想问下00010H和0010H是一样的意思吗?都是正确答案吗?

jackz007 发表于 2020-2-27 00:28:44

13977097047 发表于 2020-2-26 23:50
我是这样想的,0001H向左进位变成00010H,
然后偏移地址是0000H到FFFFH,答案是00010H到1000FH。



      00010H 其实就是 10H,任何数字的前导 0 都是无效的,之所以要写够 5 位数,那是为了强调这是一个 20 位的内存地址,籍以区别段 + 偏移形式的内存地址。

405794672 发表于 2020-2-27 10:15:05

0001H段。偏移地址也是四位,也是0000到FFFFH。题目显然是求总量。也就是说,它考的是你的16位计算,这个压根就是莫名其妙阴你一把。结果就是最大地址10H+FFFFH,这种题我才不会去算。但开始的格式你也看到了,写10H也行,写0010H也行,都一个意思。还是之前说的话,你写几个0都没事。但是要注意一点,地址是20位的,也就是五位数,你最多写成00010H,不能再加多,不然,表示的就不是地址了。
页: [1]
查看完整版本: 刚开始学汇编,想问一下王爽老师的监测点2.2第一个问题