Getting Started with x86 » History » Revision 8
« Previous |
Revision 8/87
(diff)
| Next »
Alexander Kamkin, 04/06/2017 04:10 PM
Getting Started with the x86 (8086) Demo¶
- Table of contents
- Getting Started with the x86 (8086) Demo
Prerequisite¶
MicroTESK should be installed (see Installation Guide).
Overview of the x86 Demo Specifications¶
Specifications of the x86 instruction set architecture can be found in $MICROTESK_HOME/arch/demo/x86/model
.
Each instruction is described in nML (see nML Language Reference) by means of the following constructs (register move instruction is taken as an example):
- Its declaration
op mov_r1616 (dst: GPR16, src: GPR16)
- Its assembly representation
syntax = format("mov %s, %s", dst.syntax, src.syntax)
- Its binary coding
image = format("1000101111%s%s", dst.image, src.image)
- Its semantics
action = { dst = src; instr_size = instr_size + 2; }
To compile the model, run the following command:
$MICROTESK_HOME/bin/compile.sh x86.nml
Overview of x86 Test Templates¶
Test templates for the x86 model can be found into $MICROTESK_HOME/arch/demo/x86/templates
.
block.rb
to show usage of the instruction blocksblock_random.rb
to show creation of the randomized instruction sequences using block constructseuclid.rb
to show MicroTESK simulating the execution of a test program to predict the resulting state of the PE under testrandom.rb
to show generation of the randomized test cases by using biased values, intervals, arrays and distributionsrandom_immediate.rb
to show generation of random immediate valuesrandom_registers.rb
to show dependent instructions with random registers
To run template processing use the following command:
$MICROTESK_HOME/bin/generate.sh x86 block.rb --code-file-prefix block --code-file-extension -v
When the processing is finished, files with the resulting assembly code can be found in
$MICROTESK_HOME
For more information, see MicroTESK wiki: http://forge.ispras.ru/projects/microtesk/wiki/Template_Description_Language
Updated by Alexander Kamkin over 7 years ago · 87 revisions