A89: Re: Various 68K/TI89 things


[Prev][Next][Index][Thread]

A89: Re: Various 68K/TI89 things




 > Also, why is this language so ugly?  It just looks terrible compared to
 > Z80.  You might think they would have logical mneumonics, and instead of
 > packing all 13 or whatever different address modes, have different
 > mneumonics for them.  For example, I like my imaginary instruction:
 >
 > PUSH.W d0,(a0)
 >
 > much better than:
 >
 > MOVE.W do,(a0)-

I doubt that it would be better. PUSH would be appropriate if you have
a stack. Often the heap grows the opposite direction, so the d0,(a0)+ 
would be the push and -(a0) the pop. 
On the Z80 you didn't have the choice for there were no instructions 
to do predecrement reads or postincrement writes. Therefore, push and 
pop were adequate to describe all the two possible stack data movements.

On the 68000 there are some 100 ~ 200 addressing mode combinations for 
move, around 10 addressing modes for most other instructions. 
Learning a thousand mnemonics is somewhat less efficient than
learning ~60 mnemonics and ~15 addressing modes. The 68000 insn set
is relatively orthogonal and this is expressed in its assembler syntax. 
The Z80 is anything but orthogonal - truly reflected in its assembly.

By the way, if you like the Z80 mode better, you should look at the
8080 assembly, which had separate mnemonics for reg. pair loads, normal
register loads, etc.. It also had different mnemonics for each
conditional instruction, like callnz and retc and all that.
Fascinating.

I believe that it all depends on what are you used to. 
After learning a few assembly languages, these concerns about
mnemonics and all that stuff disappear because you get used to the
idea that different architectures map to different syntactical
structures. 

Regards,

Zoltan


References: