[Simh] retargetable assembler

Timothe Litt litt at ieee.org
Wed Sep 6 08:53:10 EDT 2017


On 06-Sep-17 08:19, Paul Koning wrote:
>> On Sep 5, 2017, at 9:18 PM, Timothe Litt <litt at ieee.org> wrote:
>>
>> It's a heavy lift & overkill, but GCC (gas) can be made to cross-compile for/from any reasonable machine.  That gives you a complete toolset - but it's a lot of work.
> The assembler (gas) is separate from the compiler (gcc and friends).  It's a prerequisite for a complete cross-package but you can certainly do a gas for some new architecture without bothering with the compiler.
gdb gives you a disassembler.
> The question is assembler syntax.  If the machine you're after has a standard syntax, then gas is unlikely to help since it uses Unix "as" style syntax.  For example, while you can assemble PDP11 programs with gas, they don't look like familiar Macro-11 programs and if you feed it Macro-11 sources it will complain bitterly.
Yes, but presumably this is a bootstrapping exercise - hopefully the
native assembler can be found and used once the simulator runs.

As noted, this isn't the approach I'd take, but tastes (and energy
levels) vary.
>> If it were my project, I'd define some macros in MACRO-11 to create a cross-assembler, as IIRC Whirlwind has 16 bit wordsize.  MACRO-11 has a reasonable set of operators and macro pseudo-ops.  Define the Whirlwind instructions as macros, and you're all set.  People have done this for early micros - it's not quite native and can be a bit awkward - but it works and can be put together with minimal effort.  
>>
>> You can output absolute binary from the assembler - or link/task build if you want psects or libraries.  But with the small memory size, MACRO will do.
>>
>> If you want 32-bit words, there's always MACRO-32 - pretty much the same macro capabilities.
>>
>> For a host, you can use a simh PDP-11 or VAX - whatever you're comfortable with.
> Sure, those are good options.  Others mentioned Python to write one from scratch.  That is very easy.  I've written an Electrologica assembler in Python, which didn't take long, and a more limited assembler is probably just a week or two worth of work.
>
> One complication for using Macro-11 is that Whirlwind is one-s complement, so negative numbers will be wrong.
That can be handled with a macro to convert 2's complement to 1's,
including any end-around carry.

> 	paul
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20170906/9d926f6d/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4577 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20170906/9d926f6d/attachment-0001.bin>


More information about the Simh mailing list