Mercurial > lcfOS
view doc/utils.rst @ 381:6df89163e114
Fix section and ldr pseudo instruction
author | Windel Bouwman |
---|---|
date | Sat, 26 Apr 2014 17:41:56 +0200 |
parents | 8d07a4254f04 |
children |
line wrap: on
line source
Utilities ========= Hexfile manipulation -------------------- .. autoclass:: utils.HexFile >>> from utils import HexFile >>> h = HexFile() >>> h.dump() Hexfile containing 0 bytes >>> h.addRegion(0, bytes([1,2,3])) >>> h Hexfile containing 3 bytes Yacc ---- .. automodule:: yacc Burg ---- .. automodule:: pyburg Machine descriptions -------------------- There are some attempts made already to describe machines in a Domain Specific Language (DSL). Examples of these are: - Tablegen (llvm) - cgen (gnu) - LISA (Aachen) - nML (Berlin) - SLED (Specifying representations of machine instructions (norman ramsey and Mary F. Fernandez)) The goal of a machine description file is to describe a file and generate tools like assemblers, disassemblers, linkers, debuggers and simulators. Advantage of using this approach is that porting these tools is a semi automated process. Rewriting all of these tools from scratch is tedious and errorprone. Concepts to use in this language: - Single stream of instructions - State stored in memory - Pipelining - Instruction semantics Each instruction has the following properties: - Bit representation - Assembly language representation - Semantic action Optionally a description in terms of compiler code generation can be attached to this. But perhaps this clutters the description too much and we need to put it elsewhere. The description language can help to expand these descriptions by expanding the permutations.