microprobe.target.isa.ISA
- class ISA[source]
Bases:
ABC
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.
Methods
__init__
()add_to_register
(register, value)- param register:
branch_unconditional_relative
(source, target)- param source:
compare_and_branch
(val1, val2, cond, target, ...)- param val1:
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])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
ISA description (
str
).ISA instructions (
dict
mapping strings toInstructionType
).ISA name (
str
).Path to definition (
str
).Associated target object (
Target
).
- abstract property instructions: Dict[str, InstructionType]
ISA instructions (
dict
mapping strings toInstructionType
).
- abstract property context_var
- abstract set_register(reg: Register, value, context: Context)[source]
- Parameters:
reg –
value –
context –
- abstract load(reg: Register, address, context: Context)[source]
- Parameters:
reg –
address –
context –
- abstract load_float(reg: Register, address, context: Context)[source]
- Parameters:
reg –
address –
context –
- abstract store_float(reg: Register, address, context: Context)[source]
- Parameters:
reg –
address –
context –
- abstract store_integer(reg: Register, address, length, context: Context)[source]
- Parameters:
reg –
address –
length –
context –
- abstract store_decimal(address, length, value, context: Context)[source]
- Parameters:
address –
length –
value –
context –
- abstract set_register_to_address(reg: Register, address, context: Context, force_absolute: bool = False, force_relative: bool = False)[source]
- Parameters:
reg –
address –
context –
force_absolute – (Default value = False)
- abstract set_register_bits(register, value, mask, shift, context: Context)[source]
- Parameters:
register –
value –
mask –
shift –
context –
- abstract branch_unconditional_relative(source, target: Target)[source]
- Parameters:
source –
target –
- abstract compare_and_branch(val1, val2, cond, target, context: Context)[source]
- Parameters:
val1 –
val2 –
cond –
target –
context –
- abstract property flag_registers