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]