[sdiy] Analysis of the TB-303 CPU timing

cheater00 cheater00 cheater00 at gmail.com
Tue Mar 21 17:02:40 CET 2017


Hi Rainer,
code reachability is an analysis feature that does not have much to do
with the instructions. Reachability analysis requires assignment of
semantics to code beyond what the assembler sees, so the issue might
be:
- wrong disassembly of ambiguous machine code, resulting in bad
semantics being guessed
- correct disassembly of ambiguous machine code, but bad semantics
have been guessed none the less
- good semantics, but the code reachability depends on factors the
reachability analysis engine did not take into analysis, such as
random numbers or I/O
- good semantics, but the disassembled code in fact is data or is
meant to be jumped into in the middle of it (e.g. switch statement).
Reachability analysis can often not cope with the same code having
different meaning based on which preceeding lines have been executed
or not. This is exacerbated if you can jump into the middle of an
instruction and it's often used as an anti-reversing technique, but
may also be used as an optimization by a "sufficiently"* "smart"**
programmer.
- good semantics, and the code really is not reachable

I'd say 3 is the most common, then 4, 2, then 1, and 5 is the least common.

In all cases reassembly will lead to the same binary!

* or insufficently
** or masochistic

On Tue, Mar 21, 2017 at 3:48 PM, Rainer Buchty <rainer at buchty.net> wrote:
> Hi Grant,
>
> On Mon, 20 Mar 2017, MTG wrote:
>
>> The unreachable code may very well be the fault of improper interpretation
>> of the disassembled code. If you get out of step with opcode or operand, or
>> try and interpret constant data as executable you will find you way into the
>> weeds quite quickly.
>
>
> In this case, it's not. Reassembling leads to the identical binary.
>
> (Not that I didn't have to fish out a couple of bugs in my disassembler back
> then -- didn't know about f9dasm ~20 years ago, so I wrote my own to suit
> the needs of Alfred Arnold's multi-CPU macro assembler "as".)
>
>> Here is a link to a Decwriter printout (you have to flip it to read it)
>> from 1983 for the 6809:
>>
>> http://musictechnologiesgroup.com/images/GregsWaveTable.jpg
>
>
> When I do that, it turns all black and reads "Dell" :)
>
> Rainer
>
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at synth-diy.org
> http://synth-diy.org/mailman/listinfo/synth-diy



More information about the Synth-diy mailing list