Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'align' instruction on MIPS

What exactly does this instruction do? I know that it tries to align data with a multiple of a specific number but why would you need to do this? Is there an equivalent instruction in other assemblers?

like image 489
Eliseo Ocampos Avatar asked Jun 20 '09 06:06

Eliseo Ocampos


2 Answers

You usually align data to get better performance. For most processors, memory access has some penalty when not accessing specific byte boundaries. For other assemblers, there often is some kind of pseudo-op .align for this. Most compilers also align their data structures (though you can disable it for debug purposes).

Also See this Wikipedia entry.

Note that non-emulated MIPS systems might even crash if you try to access unaligned memory cells (see here and here).

like image 109
schnaader Avatar answered Oct 22 '22 15:10

schnaader


Is there an equivalent instruccion in other assemblers?

MASM has an Align directive: http://msdn.microsoft.com/en-us/library/dwa9fwef(VS.80).aspx

like image 43
ChrisW Avatar answered Oct 22 '22 16:10

ChrisW