Module: Rex::Arch::MIPS32

Defined in:
lib/rex/arch/mips32.rb

Overview

MIPS 32-bit

Constant Summary collapse

R0 =

Register number constants

ZERO = 0
R1 =

constant 0

AT = 1
R2 =

assembler temporary

V0 = 2
R3 =

function return value

V1 = 3
R4 =

function return value

A0 = 4
R5 =

argument

A1 = 5
R6 =

argument

A2 = 6
R7 =

argument

A3 = 7
R8 =

argument

T0 = 8
R9 =

temporary

T1 = 9
R10 =

temporary

T2 = 10
R11 =

temporary

T3 = 11
R12 =

temporary

T4 = 12
R13 =

temporary

T5 = 13
R14 =

temporary

T6 = 14
R15 =

temporary

T7 = 15
R16 =

temporary

S0 = 16
R17 =

saved register

S1 = 17
R18 =

saved register

S2 = 18
R19 =

saved register

S3 = 19
R20 =

saved register

S4 = 20
R21 =

saved register

S5 = 21
R22 =

saved register

S6 = 22
R23 =

saved register

S7 = 23
R24 =

saved register

T8 = 24
R25 =

temporary

T9 = 25
R26 =

temporary

K0 = 26
R27 =

reserved for OS

K1 = 27
R28 =

reserved for OS

GP = 28
R29 =

global pointer

SP = 29
R30 =

stack pointer

FP = S8 = 30
R31 =

frame pointer / saved

RA = 31

Class Method Summary collapse

Class Method Details

._check_reg(*regs) ⇒ Boolean

Check if a provided number represents a valid register

Returns:

  • (Boolean)


50
51
52
53
54
55
56
# File 'lib/rex/arch/mips32.rb', line 50

def self._check_reg(*regs)
  regs.each do |reg|
    raise ArgumentError, "Invalid register #{reg}", caller if reg > 31 || reg < 0
  end

  nil
end

.reg_number(str) ⇒ Object

Returns the number associated with a named register.

Returns:

  • the number associated with a named register



44
45
46
# File 'lib/rex/arch/mips32.rb', line 44

def self.reg_number(str)
  const_get(str.upcase)
end