What is the difference between .word and .equ in MIPS?

assembly, mips

Solution

`.word` allocates space and initializes the data. `.equ` defines a constant, but doesn't allocate any space for it.

So, for example, you might say:

one .equ 1  ; defines a constant called "one"
counter: .word one ; allocates space and initializes it with the value 1

The difference being that the `.equ` directive doesn't allocate any space in the compiled image.

Problem

I think both do about the same: Variable declaration and initialization. Can you please elaborate?

Original source