ALIGN Directive
ALIGN directive causes the assembler to align the next data item or instruction on an address according to a given value. The number could be 1, 2, or 4. If it equals 1, the next variable or byte is aligned on a 1-byte boundary. If number is 2, the next variable is aligned on an even-numbered address, and if number is 4, the next address is a multiple of 4.
ALIGN 1 |
ALIGN 2 |
ALIGN 4 |
.data X BYTE 0FFh ALIGN 1 Y DWORD 12345678h .code mov eax, 0 mov ebx, OFFSET X mov ax, [ebx + 2] call WriteHex |
.data X BYTE 0FFh ALIGN 2 Y DWORD 12345678h .code mov eax, 0 mov ebx, OFFSET X mov ax, [ebx + 2] call WriteHex |
.data X BYTE 0FFh ALIGN 4 Y DWORD 12345678h .code mov eax, 0 mov ebx, OFFSET X mov ax, [ebx + 2] call WriteHex |
| Output | Output | Output |
NOPs for instruction.
The NOP instruction is used to delete/insert machine code, to delay execution for purposes of timing, or to align a subsequent instruction on a word boundary.
NOP simply performs a null operation by executing “XCHG AX, AX” .
NOP — No Operation |
|||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||||||||