在x86英特尔组装中的字节用NOP填充?

时间:2017-08-20 17:24:45

标签: assembly x86 intel memory-alignment

使用单个字节时,是否应考虑4字节对齐?

Intel x86伪代码。在4096字节页面的开头:

PAGEADDRESS:
    01
    NOP NOP NOP <- 3 NOPs necessary?
    cmp byte ptr [PAGEADDRESS], 01
    je ADDRESS
    ...

1 个答案:

答案 0 :(得分:1)

cmp byte ptr [PAGEADDRESS], 01指令只处理 PAGEADDRESS 的一个字节。后续字节填充的内容并不重要。这些是NOP的事实不会影响cmp指令。

  • 内存中的Dword应从4字节对齐的地址开始。
  • 单词在跨越这样一个4字节对齐边框时才会错位。
  • 字节永远不会错位。