单个内存地址可以存储多少条机器指令?

How many machine instructions can single memory address store?

我是 GDB 的新手,目前正在尝试检查内存。我想标题说明了一切。基本上我编译了一些 c 代码并将断点设置为 main。当我输入 x/x $eip 时,它会返回一些机器指令 0xd02404c7.
第二次尝试 x/5x $eip
它返回
0x8048426 <main+9>: 0xd02404c7 0xe8080484 0xfffffebe 0x9066c3c9 0x8048436: 0x90669066
所以我在这里有点困惑。地址0x8048426--0x8048436之间的space等于10。所以结果是4条指令占用了“10个地址”。我的问题是:
内存地址最多可以存储 4 条机器指令吗?
为什么存储 4 条机器指令需要“10 个地址”?
proccesor有多少位和单个内存地址可以存储多少条机器指令有关系吗?
对不起,如果这个问题听起来很愚蠢。

The space between addreses 0x8048426--0x8048436 is equal to 10. So it turns out that four instructions took "10 addresses"

不完全是,它等于0x10,是十六进制数,十进制等于16。 所以这些指令占用 16 个字节。

Can Memory address store maximum of 4 machine instructions?

地址的粒度为 1 个字节。即一个地址正好对应一个字节。

机器指令可以占用 1 个或多个字节。所以单个内存地址,单个字节,最多可以存储1条机器指令,至少在x86上是这样。

Why does it took "10 addresses" to store 4 machine instructions?

您看到的每个数字都不是指令。您看到的 4 个数字称为单词,是您的 CPU 通常使用的。

Is there any relationship between how much bits does proccesor have and how many machine insturction can single memory address store?

不是真的。单个内存地址最多可以存储一条指令。因为指令至少有 1 个字节长(对于 x86)。

但是 "how much bits does proccesor have" 可以表明您的处理器可以访问扩展的或不同的指令集。