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]