microprobe.target.isa.ISA

class ISA[source]

Bases: object

Abstract class to represent an Instruction Set Architecture (ISA).

An instruction set architecture (ISA) object defines the part of the computer architecture related to programming, including instructions, registers, operands, memory operands, etc.

abstract __init__()[source]

Methods

__init__()

add_to_register(register, value)

param register:

branch_to_itself()

branch_unconditional_relative(source, target)

param source:

compare_and_branch(val1, val2, cond, target, ...)

param val1:

full_report()

get_context([variable, tmpl_path])

get_dat(**kwargs)

get_register_for_address_arithmetic(context)

param context:

get_register_for_float_arithmetic(context)

param context:

load(reg, address, context)

param reg:

load_float(reg, address, context)

param reg:

negate_register(reg, context)

param reg:

new_instruction(name)

param name:

nop()

normalize_asm(mnemonic, operands)

randomize_register(register[, seed])

register_value_comparator(comp)

set_context([variable, tmpl_path])

set_register(reg, value, context)

param reg:

set_register_bits(register, value, mask, ...)

param register:

set_register_to_address(reg, address, context)

param reg:

set_target(target)

param target:

store_decimal(address, length, value, context)

param address:

store_float(reg, address, context)

param reg:

store_integer(reg, address, length, context)

param reg:

Attributes

address_registers

context_var

control_registers

description

ISA description (str).

flag_registers

float_registers

instructions

ISA instructions (dict mapping strings to InstructionType).

name

ISA name (str).

path

Path to definition (str).

registers

scratch_registers

scratch_var

target

Associated target object (Target).




abstract property name

ISA name (str).

abstract property description

ISA description (str).

abstract property path

Path to definition (str).

abstract property instructions

ISA instructions (dict mapping strings to InstructionType).

abstract property target

Associated target object (Target).

abstract property registers
abstract property scratch_registers
abstract property address_registers
abstract property float_registers
abstract property control_registers
abstract property scratch_var
abstract property context_var
abstract full_report()[source]
abstract set_register(reg, value, context)[source]
Parameters:
  • reg –

  • value –

  • context –

abstract negate_register(reg, context)[source]
Parameters:
  • reg –

  • context –

abstract load(reg, address, context)[source]
Parameters:
  • reg –

  • address –

  • context –

abstract load_float(reg, address, context)[source]
Parameters:
  • reg –

  • address –

  • context –

abstract store_float(reg, address, context)[source]
Parameters:
  • reg –

  • address –

  • context –

abstract store_integer(reg, address, length, context)[source]
Parameters:
  • reg –

  • address –

  • length –

  • context –

abstract store_decimal(address, length, value, context)[source]
Parameters:
  • address –

  • length –

  • value –

  • context –

abstract set_register_to_address(reg, address, context, force_absolute=False, force_relative=False)[source]
Parameters:
  • reg –

  • address –

  • context –

  • force_absolute – (Default value = False)

abstract get_register_for_address_arithmetic(context)[source]
Parameters:

context –

abstract get_register_for_float_arithmetic(context)[source]
Parameters:

context –

abstract set_register_bits(register, value, mask, shift, context)[source]
Parameters:
  • register –

  • value –

  • mask –

  • shift –

  • context –

abstract new_instruction(name)[source]
Parameters:

name –

abstract set_target(target)[source]
Parameters:

target –

abstract add_to_register(register, value)[source]
Parameters:
  • register –

  • value –

abstract branch_unconditional_relative(source, target)[source]
Parameters:
  • source –

  • target –

abstract branch_to_itself()[source]
abstract compare_and_branch(val1, val2, cond, target, context)[source]
Parameters:
  • val1 –

  • val2 –

  • cond –

  • target –

  • context –

abstract nop()[source]
abstract property flag_registers
abstract get_dat(**kwargs)[source]
abstract set_context(variable=None, tmpl_path=None)[source]
abstract get_context(variable=None, tmpl_path=None)[source]
abstract register_value_comparator(comp)[source]
abstract normalize_asm(mnemonic, operands)[source]
abstract randomize_register(register, seed=None)[source]