.align boundary
Align the following code to a particular boundary. This can be rather useful for speed - consider the following:
ld l,(ix+0) ; Get the offset ld h,0 ld de,_data add hl,de ld a,(hl) call _do_something ; snip _data .incbin "datafile.bin"
We could speed this up by removing the addition and assignment to de (and also stop de from being destroyed!) by using the following code:
ld l,(ix+0) ; Get the offset ld h,_data << 8 ld a,(hl) call _do_something ; snip .align 256 _data .incbin "datafile.bin"
Because the alignment moves the code to the next boundary, there is a degree of wasted space.
You can align data manually (or in another assembler not supporting this directive) using the .org directive creatively - for example, a 256-byte alignment would be .org ($ + $FF) & $FF00 (where $ is the current instruction pointer).