645333895 发表于 2016-1-26 22:57:46

王爽汇编语言检测点2.2求助

原题:给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为多少?

我算的是(0001H*16 + 0000H) ~ (0001H*16 + FFFFH)= 00010H ~ 1000FH, 但答案给的是 0010H~1000FH。
0001H*16 就是向左移一位啊,移完后应该是 00010H啊,为什么答案给的是 0010H呢?

大叔学编程 发表于 2016-1-27 10:28:00

你好啊,我跟你的进度差不,我的理解是,16H只能用0010表示,每一位,都是4个二进制,那第16位就只能用4个表示,而不是5位数表示,那样不就成了20进制了!

大叔学编程 发表于 2016-1-27 10:29:15

还有,我们学的是8086CPU,8086是16位的!

645333895 发表于 2016-1-27 11:16:10

大叔学编程 发表于 2016-1-27 10:28
你好啊,我跟你的进度差不,我的理解是,16H只能用0010表示,每一位,都是4个二进制,那第16位就只能用4个 ...

我开始也是你这么想的,但是总觉得怪怪的,有点牵强

大叔学编程 发表于 2016-1-27 15:44:15

645333895 发表于 2016-1-27 11:16
我开始也是你这么想的,但是总觉得怪怪的,有点牵强

现在暂时先这样,理解吧,继续学习下去,估计会彻底明白的!

易语-小白 发表于 2019-7-30 16:15:59

16位寄存器只能存储4个16位数字

huzhibin360 发表于 2019-7-31 15:34:05


段地址 就是 0001
偏移地址的 最小 寻址0
段地址 是 0001*16+0=0010H (0001*16=0010H) 不等于 00010H
偏移地址的 最大 寻址 FFFF
段地址 是 0001*16+FFFF= 1000FH (0010H+FFFFH=1000FH)

被遗忘的指环 发表于 2020-2-18 20:12:04

你先这么理解物理地址(20位)= 段地址(16位)+偏移地址(4位)
那么 偏移地址最多就是4位
还有一个 你 理解的思维错误方向是这样的
0001H 就等于 1H 不用管他前面几个0 显示的时候没办法 给他补充上0的
SO 00010H = 0010H (因为限制了4位) 也可以理解 00010H=0010H·····
页: [1]
查看完整版本: 王爽汇编语言检测点2.2求助