X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=assembler%2Ftest.asm;h=2c25ddef0d68e873d991b318ecb5c7594ee9c0e2;hb=30bc378e54db8afaffcbebbbfa347cc4655fcb14;hp=ecbc2732179a202efa7e275bf3924d038d261333;hpb=3bd4f014e1ae2af49b2cbdd94a86c07559aacbce;p=b43-tools.git diff --git a/assembler/test.asm b/assembler/test.asm index ecbc273..2c25dde 100644 --- a/assembler/test.asm +++ b/assembler/test.asm @@ -1,14 +1,13 @@ /* This is a bcm43xx microcode assembly example. - * - * In this example file, r0 and r1 are always input - * registers and r2 is output. - * For input we can always have constant values or (one) memory - * operand instead of the input registers shown here. * * Registers: - * GPRs: r0 - r63 + * GPRs: r0 - r63 (General Purpose Register) * Offset Registers: off0 - off5 - * SPRs: spr000 + * SPRs: spr000 (Special Purpose Register) + * + * SPRs map to the driver-side IHR registers. + * An SPR offset is converted to an IHR offset by the following + * calculation: IHR = (SPR + 0x400) * 2 * * To access memory, two methods can be used. Examples follow. * Direct linear: @@ -35,6 +34,10 @@ .text + /* Inline assertion inside of a complex immediate. + * The %assert() expression will always return zero. */ + mov (1 + (%assert(1 == ((1 + 2) - 2)))), r0 + label: /* ADD instructions */ add r0,r1,r2 /* add */