2014-03-18 73 views
0

它是如何工作的?最後一個align是否重寫前一個使其效果爲null的行爲,還是它在一起使用時會執行某些操作?我從一個大的彙編源代碼中找到了這個,我問這個是因爲我不認爲這只是一個錯字。緊跟在另一個之後的對齊指令是否有任何影響?

align 64 
align 4 
+1

如果你在另一個方向做了它們,那麼很重要,但是按照這個順序否,因爲根據定義,對齊64也是對齊4 –

回答

1

align插入NOP指令,以使電流部分偏移到指定的值的倍數。 (您也可以顯式指定一個非NOP值來插入,如NULL填充)。它也隱含地調用SECTALIGN來設置節的對齊屬性。

參見NASM manual section 4.12.12

所以這是一個錯字 - 第二個align將不會做任何事情,因爲第一個填充到64字節對齊。而隱含的SECTALIGN也沒有效果,因爲手動指定的對齊屬性只能增加,從不減少。

相關問題