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.

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



name

ISA name (str).

description

ISA description (str).

instructions

ISA instructions (dict mapping strings to InstructionType).

target

Associated target object (Target).

registers
scratch_registers
address_registers
float_registers
control_registers
scratch_var
context_var
full_report()[source]
set_register(reg, value, context)[source]
Parameters:
  • reg –
  • value –
  • context –
negate_register(reg, context)[source]
Parameters:
  • reg –
  • context –
load(reg, address, context)[source]
Parameters:
  • reg –
  • address –
  • context –
load_float(reg, address, context)[source]
Parameters:
  • reg –
  • address –
  • context –
store_float(reg, address, context)[source]
Parameters:
  • reg –
  • address –
  • context –
store_integer(reg, address, length, context)[source]
Parameters:
  • reg –
  • address –
  • length –
  • context –
store_decimal(address, length, value, context)[source]
Parameters:
  • address –
  • length –
  • value –
  • context –
set_register_to_address(reg, address, context, force_absolute=False, force_relative=False)[source]
Parameters:
  • reg –
  • address –
  • context –
  • force_absolute – (Default value = False)
get_register_for_address_arithmetic(context)[source]
Parameters:context –
get_register_for_float_arithmetic(context)[source]
Parameters:context –
set_register_bits(register, value, mask, shift, context)[source]
Parameters:
  • register –
  • value –
  • mask –
  • shift –
  • context –
new_instruction(name)[source]
Parameters:name –
set_target(target)[source]
Parameters:target –
add_to_register(register, value)[source]
Parameters:
  • register –
  • value –
branch_unconditional_relative(source, target)[source]
Parameters:
  • source –
  • target –
branch_to_itself()[source]
compare_and_branch(val1, val2, cond, target, context)[source]
Parameters:
  • val1 –
  • val2 –
  • cond –
  • target –
  • context –
nop()[source]
flag_registers
get_dat(**kwargs)[source]
set_context(variable=None, tmpl_path=None)[source]
get_context(variable=None, tmpl_path=None)[source]
register_value_comparator(comp)[source]
normalize_asm(mnemonic, operands)[source]