組合語言ALIGN偽指令 對齊乙個變數

2021-09-24 17:17:30 字數 843 閱讀 6633

align 偽指令將乙個變數對齊到位元組邊界、字邊界、雙字邊界或段落邊界。

語法如下:

align bound

bound 可取值有:1、2、4、8、16。當取值為 1 時,則下乙個變數對齊於 1 位元組邊界(預設情況)。當取值為 2 時,則下乙個變數對齊於偶數字址。當取值為 4 時,則下乙個變數位址為 4 的倍數。當取值為 16 時,則下乙個變數位址為 16 的倍數,即乙個段落的邊界。

為了滿足對齊要求,彙編器會在變數前插入乙個或多個空位元組。為什麼要對齊資料?因為,對於儲存於偶位址和奇位址的資料來說,cpu 處理偶位址資料的速度要快得多。

bval byte ?           ;00404000h  align 2   wval word ?           ;00404002h  bval2 byte ?          ;00404004h  align 4   dval dword ?          ;00404008h  dval2 dword ?         ;0040400ch
請注意,dval 的偏移量原本是 0040 4005,但是 align 4 偽指令使它的偏移量成為 0040 4008。

組合語言過程

5.1 組合語言堆疊簡介

5.2組合語言執行時堆疊

5.3 push和pop指令

5.4 proc和endp偽指令

5.5 call和ret指令

5.6 過程呼叫巢狀

5.7示例:整數陣列求和

5.8 uses運算子

5.9鏈結庫簡介

5.10irvine32鏈結庫

5.11irvine32鏈結庫過程詳細說明

5.12irvine64鏈結庫

組合語言偽指令

偽指令 directive 是嵌入源 中的命令,由彙編器識別和執行。偽指令不在執行時執行,但是它們可以定義變數 巨集和子程式 為記憶體段分配名稱,執行許多其他與彙編器相關的日常任務。預設情況下,偽指令不區分大小寫。例如,data,data 和 data 是相同的。下面的例子有助於說明偽指令和指令的區...

組合語言(偽指令)

偽指令語句是給匯程式設計序的命令,在彙編過程中由匯程式設計序進行處理,如定義資料 發配儲存區 定義段以及過程等。不產生目標 1 符號定義偽指令 1 equ 賦值偽指令 2 等號偽指令 3 label 型別定義偽指令 2 資料定義偽指令 1 db 定義變數為位元組 byte 型別,佔乙個單元 2 dw...

組合語言EQU偽指令

equ 偽指令把乙個符號名稱與乙個整數表示式或乙個任意文字連線起來,它有 3 種格式 name equ expression name equ symbol name equ 第一種格式中,expression 必須是乙個有效整數表示式。第二種格式中,symbol 是乙個已存在的符號名稱,已經用 或...