Assembly 80x86汇编中最坏情况下的内存访问

Assembly 80x86汇编中最坏情况下的内存访问,assembly,Assembly,在80486计算机中,最坏的情况是什么?包括此指令的内存访问次数: add dword [x],0x123FA4 众所周知,没有操作数的操作码长度为两个字节。从内存中,指令有一个操作码字节add、一个地址模式字节、一个x4字节的偏移量和常量4字节==>10字节。我假设486每次从内存中获取4个字节,总线地址与4字节DWORD边界对齐。因此,10个字节可能需要3次内存读取=10/4,无论您将它们放在何处。然而,如果操作码字节放在DWORD的最后一个字节中,剩余的9个字节跨越3个以上的DWORD,

在80486计算机中,最坏的情况是什么?包括此指令的内存访问次数:

add dword [x],0x123FA4

众所周知,没有操作数的操作码长度为两个字节。

从内存中,指令有一个操作码字节add、一个地址模式字节、一个x4字节的偏移量和常量4字节==>10字节。我假设486每次从内存中获取4个字节,总线地址与4字节DWORD边界对齐。因此,10个字节可能需要3次内存读取=10/4,无论您将它们放在何处。然而,如果操作码字节放在DWORD的最后一个字节中,剩余的9个字节跨越3个以上的DWORD,那么读取的总数实际上可以是4

要进行添加,必须提取位置X。假设X在DWORD边界上拆分->2次读取。添加常量发生在CPU内部,总和被写回相同的DWORD边界拆分->2次写入


所以,最坏的情况应该是8次内存操作。

也许你应该尝试阅读英特尔手册,自己解决问题,而不是发布随机问题,等待解释一些奇怪的事情。答案是8,但我不知道为什么这不是我为考试而学的作业!!!!!如果你打开你的书,自己弄明白这一点,你会对正在发生的事情有更高的理解,而不仅仅是让别人告诉你考试的答案。如果你在交上来的测试“StackOverflow”上签名,而不是你自己的名字,怎么样。@帕克斯:你真的认为这是一个基本问题吗?考虑到这取决于指令字节的对齐方式?