Bit Manipulation
inv
v -- ~v
Description
inv inverts the bits of v.
Examples
~0 inv
( -- 0)
lsl
a b -- (a << b)
Description
lsl performs a logical shift left. This operation zero-fills.
Examples (with WORD of 32)
hFFFFFFFF 1 lsl
( -- hFFFFFFFE)
lsr
a b -- (a >> b)
Description
lsr performs a logical shift right. This operation zero-fills.
Examples
3 1 lsr
( -- 1)
csl
a b -- ((a << b) or (a >> (WORD - b)))
Description
csl performs a circular shift left. Only the amount of bits needed are used for the shift amount. For example, with a 32-bit WORD, only the least significant 5 bits are masked out of b.
Examples (with WORD of 32)
hC0000000 1 csl
( -- h80000001)
csr
a b -- ((a >> b) or (a << (WORD - b)))
Description
csr performs a circular shift right. Only the amount of bits needed are used for the shift amount. For example, with a 32-bit WORD, only the least significant 5 bits are masked out of b.
Examples (with WORD of 32)
3 1 csr
( -- h80000001)
and
a b -- (a & b)
Description
and finds the binary AND of a and b.
Examples
5 4 and
( -- 4)
or
a b -- (a or b)
Description
or finds the binary OR of a and b.
Examples
5 2 or
( -- 7)
xor
a b -- (a ^ b)
Description
xor finds the binary XOR of a and b.
Examples
5 3 xor
( -- 6)
lsli
a -- (a << imm)
Immediate (WORD)
The initial opcode byte is followed by one octet. The octet is signed and represents the shift amount. Since the octet is signed, this makes it possible to perform a right or left shift with this opcode.
Description
lsli performs a logical shift left with a signed immediate shift amount. This operation zero-fills.
Examples (with WORD of 32)
hFFFFFFFF lsli:1
( -- hFFFFFFFE)
csli
a -- ((a << imm) or (a >> (WORD - imm)))
Immediate (WORD)
The initial opcode byte is followed by one octet. The octet is unsigned and represents the shift amount. A circular right shift can be accomplished by setting the immediate value to -n where n is the right shift amount.
Description
csli performs a circular shift left. Only the amount of bits needed are used for the shift amount. For example, with a 32-bit WORD, only the least significant 5 bits are masked out of b.
Examples (with WORD of 32)
hC0000000 csli:1
( -- h80000001)
andi
a -- (a & imm)
Immediate (WORD)
The initial opcode byte is followed by a full processor word. This word is unsigned.
Description
andi finds the binary AND of a and imm.
Examples
5 andi:4
( -- 4)
ori
a -- (a or imm)
Immediate (WORD)
The initial opcode byte is followed by a full processor word. This word is unsigned.
Description
ori finds the binary OR of a and imm.
Examples
5 ori:2
( -- 7)
xori
a -- (a ^ imm)
Immediate (WORD)
The initial opcode byte is followed by a full processor word. This word is unsigned.
Description
xori finds the binary XOR of a and imm.
Examples
5 xori:3
( -- 6)