Share via


MIPS __asm Statement Registers (Windows Embedded CE 6.0)

1/5/2010

The following table gives MIPS macro names and associated register descriptions.

MIPS16 macro name MIPSII macro name Associated Register Description

zero

zero

$0

Always zero; writes to this register are ignored.

N/A

AT

$1

Assembler temporary.

v0

v0

$2

Used to hold return value.

v1

v1

$3

Used to hold return value.

a0

a0

$4

Argument registers; used to pass first four words of integer arguments.

a1

a1

$5

Argument registers; used to pass first four words of integer arguments.

a2

a2

$6

Argument registers; used to pass first four words of integer arguments.

a3

a3

$7

Argument registers; used to pass first four words of integer arguments.

N/A

t0

$8

Temporary registers; may be freely changed.

N/A

t1

$9

Temporary registers; may be freely changed.

N/A

t2

$10

Temporary registers; may be freely changed.

N/A

t3

$11

Temporary registers; may be freely changed.

N/A

t4

$12

Temporary registers; may be freely changed.

N/A

t5

$13

Temporary registers; may be freely changed.

N/A

t6

$14

Temporary registers; may be freely changed.

N/A

t7

$15

Temporary registers; may be freely changed.

N/A

s0

$16

Saved registers; must be preserved across function calls.

N/A

s1

$17

Saved registers; must be preserved across function calls.

N/A

s2

$18

Saved registers; must be preserved across function calls.

N/A

s3

$19

Saved registers; must be preserved across function calls.

N/A

s4

$20

Saved registers; must be preserved across function calls.

N/A

s5

$21

Saved registers; must be preserved across function calls.

N/A

s6

$22

Saved registers; must be preserved across function calls.

N/A

s7

$23

Saved registers; must be preserved across function calls.

t8

t8

$24

Additional temporary registers.

N/A

t9

$25

Additional temporary registers.

N/A

k0

$26

Kernel reserved registers.

N/A

k1

$27

Kernel reserved registers.

N/A

gp

$28

Global pointer.

sp

sp

$29

Stack pointer.

N/A

s8

$30

Additional saved register.

ra

ra

$31

Return address register.

The register macro names are interchangeable with their numeric names using a dollar sign prefix. For example, the following two statements are equivalent:

__asm("add v0, a0, $16");
__asm("add $2, $4, s0");

See Also

Concepts

MIPS Inline Assembly Language
__asm Keyword in MIPS Inline Assembly