1057 words
5 minutes
Page views--Visits--
computer architecture (15) データアドレッシング
  • 数据寻址#

    • 顺序寻址
    • 跳跃寻址 alt text

在之前的学习中,我们知道JMP指令会让CPU把PC(程序计数器)的值改为7,意味着接下来要执行的指令存放在主存地址为7的这个地方。

对于JMP这个指令来说,它的地址码所指向的就是真实的一个地址。

还能发现,这段代码是从主存地址为0的这个单元开始往后存储的,刚好JMP指令想要跳转到的那一条指令的地址就是7这个地址。

所以把PC的值直接改为7,并不会导致这个程序的运行错误。 alt text 但是我们知道计算机的主存同一时刻可能存在很多个程序正在并发地运行,意味着我们不可能保证当前我们要运行的这个程序一定可以从地址为0的这个地方开始存储。

所以假设我们要运行的这段程序是从主存地址为100的地方开始存储, 对于JMP这个指令来说,它的地址码的含义就会出现错误。

如果我们依然是按照之前的那种解释方式来解读这个地址码的真实含义的话,那CPU执行到这条指令的时候,意味着跳转到地址为7的地方运行指令,这显然是错误的。

alt text

那么对于这个例子,我们应该如何解读这个地址码7的含义呢?

可以这么来看,由于我们的代码起始地址是100,这个7我们可以看为基于这个起始地址往后的一个偏移量。

也就是这个地址的含义应该是100+7=107。 alt text

那如果是3应该如何解读呢?由于PC会在指令结束后自动+1,从PC所指的地址往后偏移3个单位。 alt text

数据码的解读方式可能有很多种,我们如何区分一条指令的地址码应该用什么方式解读呢?

通常来说,可以在地址码的前边加上这样的几个比特位,用来标识地址码采用的寻址方式。

求出操作数的真实地址,称为有效地址(EA),指令里包含的形式地址,用单独的一个A来表示。 alt text

直接寻址#

alt text

间接寻址#

alt text alt text

寄存器间接寻址#

alt text

隐含寻址#

alt text

立即寻址#

alt text

知识回顾#


alt text

偏移寻址#

基址寻址#

alt text alt text alt text

变址寻址#

alt textalt textalt text

基址&变址复合寻址#

alt text

相对寻址#

alt textalt text

知识回顾#


alt text

硬件如何实现”数“的比较#

alt text

堆栈寻址#

alt textalt text

知识回顾#

alt text
computer architecture (15) データアドレッシング
https://blog.apoyu.com/posts/0022/
Author
Apoyu
Published at
2025-09-26

Share Article

Generate a share poster or copy the link to share this article.

Continue reading

Related reading

Based on shared tags and categories

Take another route

A consistent pick from other articles

Comments

Loading comments...

Last updated on , 395 days ago

Some content may be outdated