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)

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).

registers

scratch_registers

scratch_var

target

Associated target object (Target).




abstract property name

ISA name (str).

abstract property description

ISA description (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]