func bitx [ System Debug Reference Manual ] MPE/iX 5.0 Documentation
System Debug Reference Manual
func bitx
Bit extract. Extracts a range of bits from an expression.
Syntax
bitx (source position length)
Formal Declaration
bitx:any (source:any position:s16 length:u16)
Parameters
source The value from which to extract a range of bits. Its
type is restricted to the INT and PTR classes.
position This parameter specifies the starting bit position
(positive value), or the ending bit position (negative
value) of the extraction. Regardless of the size of the
source value, bit positions are always numbered from
left to right. The leftmost bit of the source is bit 0.
length The number of bits to extract.
This function is sensitive to the type of the source parameter. If a S32
or U32 value is passed, the format of the word (start/end positions) is
as follows:
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| |
+---------------------------------------------------------------+
If a S16 or U16 value is passed, the format of the word (start/end
positions) is as follows:
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-------------------------------+
| |
+-------------------------------+
Examples
This is a 32-bit word containing the bit pattern for the hex value
4015381c:
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
|0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0|
+---------------------------------------------------------------+
$nmdebug > var xx:u32 4015381c
$nmdebug > wl bitx(xx,#10,5)
$a
Extract five bits starting at position 10 (this yields the bit pattern
01010).
$nmdebug > wl bitx(xx,-#14,5)
$a
Extract five bits ending at position 14 (this yields the bit pattern
01010). This is the same field of bits as in the previous example.
Limitations, Restrictions
If the specified bit range extends past the bounds of a 32-bit word, the
function is undefined and an error status is set.
MPE/iX 5.0 Documentation