EmbeddedRelated.com
Forums

Compare ARM MCU Vendors

Started by Dave Graffio September 1, 2010
On 24/09/2010 20:01, Anders.Montonen@kapsi.spam.stop.fi.invalid wrote:
> Didi<dp@tgi-sci.com> wrote: >> But the power architecture designers did a great job, too - apart from >> the barely if at all usable native assembly mnemonics.
Some of the instructions are barely understandable in assembly - but it's designed to be used with a compiler, not assembly. And the EIEIO instruction is wonderful.
> > That and insisting on numbering bits the opposite way to everyone else. > > -a
Yes, the PPC's bit numbering does not make it easy to understand. I've used a couple of the MPC5xxx devices, and the reference manuals are cryptic enough without having to deal with bit 31 being the LSB. It gets even more fun when some registers are 64 bit, and the LSB becomes bit 63. And if you have a part with more than 32 address lines, the LSB stays A31 for consistency - and the lines above A0 are numbered A-1, A-2, etc.
On Sep 25, 6:56=A0pm, David Brown
<david.br...@hesbynett.removethisbit.no> wrote:
> On 24/09/2010 20:01, Anders.Monto...@kapsi.spam.stop.fi.invalid wrote: > > > Didi<d...@tgi-sci.com> =A0wrote: > >> But the power architecture designers did a great job, too - apart from > >> the barely if at all usable native assembly mnemonics. > > Some of the instructions are barely understandable in assembly - but > it's designed to be used with a compiler, not assembly.
Indeed, but in VPA the same instructions are as easy to use and understand as in 68k assembly, so it is a matter of the mnemonics they have chosen, not the instruction set. For example: 00000000 8971 0004 movez.b- (4,a1),d3 00000004 3940 1234 move.l- #$1234,d2 00000008 3D80 1234 618C 5678 move.l- #($12345678).l,d4 00000010 61AD 0008 bset.l- #3,d5 00000014 71C6 0008 61CE 0008 bset.l #3,d6 these look pretty familiar and "normal". Below is the list of the same with the native PPC mnemonics VPA generates, now these do not look that straight forward :-). 00000000 * 00000000 8971 0004 movez.b- (4,a1),d3 00000000: 89710004 lbz 4,r17,r11 00000004 3940 1234 move.l- #$1234,d2 00000004: 39401234 addi $1234,r0,r10 00000008 3D80 1234 618C 5678 move.l- #($12345678).l,d4 00000008: 3D801234 addis MSW_of_($12345678),r0,r12 0000000C: 618C5678 ori LSW_of_($12345678),r12,r12 00000010 61AD 0008 bset.l- #3,d5 00000010: 61AD0008 ori 1!<(3),r13,r13 00000014 71C6 0008 61CE 0008 bset.l #3,d6 00000014: 71C60008 andi 1!<(3),r14,r6 00000018: 61CE0008 ori 1!<(3),r14,r14
> > And the EIEIO instruction is wonderful.
Indeed it is, I can see that after you enlightened me about its English origin :D . Dimiter ------------------------------------------------------ Dimiter Popoff Transgalactic Instruments http://www.tgi-sci.com ------------------------------------------------------ http://www.flickr.com/photos/didi_tgi/sets/72157600228621276/