; swapbits: PeANUt assembler program (procedure) for COMP2300 Lab Exercise 5 global SwapBits ; export SwapBits; ; void SwapBits( char *x ); ; const short int LBtMsk: data %0000 1111 ; LBtMsk = 0x0f, /*mask for bits 0-3*/ HBtMsk: data %1111 0000 ; HBtMsk = 0xf0, /*mask for bits 4-7*/ LBtShft:data %0001 0000 ; LBtShft = 16; /* shift low <-> high bits*/ ; char xtmp: block 1 ; xtmp, /* implement via direct mode*/ ; xL, /* implement via stack*/ ; xH; /* implement via stack*/ SwapBits: ; ; ; xtmp = *x; ; ; ; ; xL = xtmp & LBtMsk; ; ; ; xH = (xtmp & HBtMsk) / LBtShft; ; ; ; ; xtmp = xL * LBtShft; ; ; ; *x = xH | xtmp; ; ; ; ; ; } /*SwapBits()*/ ret ;