The Dauug House Wright State University logo
Dauug|36 minicomputer documentation

Bitwise boolean instructions

Opcode P/U Category Description
AND user ALU: boolean AND
IGF user ALU: boolean ignorant false
IGT user ALU: boolean ignorant true
LANR user ALU: boolean left AND NOT right
LONR user ALU: boolean left OR NOT right
NAND user ALU: boolean NAND
NL user ALU: boolean NOT left
NOR user ALU: boolean NOR
NR user ALU: boolean NOT right
OR user ALU: boolean OR
RANL user ALU: boolean right AND NOT left
RONL user ALU: boolean right OR NOT left
XL user ALU: boolean exactly left
XNOR user ALU: boolean exclusive NOR
XOR user ALU: boolean exclusive OR
XR user ALU: boolean exactly right

All 16 bitwise boolean operations use exactly the same flag semantics, namely, N and Z are set as if the destination is a signed register. T and R do not change.

AND AND

Syntax options
c = a and b
c = a & b
c = !a !| !b  (De Morgan’s theorem)
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

AND sets the destination to the bitwise AND of its operands. N and Z are set as if the destination is a signed register. T and R do not change.

IGF Ignorant false

Syntax
c = a igf b
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N always cleared
Z always set
T flag does not change
R flag does not change

IGF sets the destination to all zeros, clears N, and sets Z. T and R do not change.

IGT Ignorant true

Syntax
c = a igt b
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N always set
Z always cleared
T flag does not change
R flag does not change

IGT sets the destination to all ones, sets N, and clears Z. T and R do not change.

LANR Left and not right

Syntax options
c = a lanr b
c = a & !b
c = !a !| b   (De Morgan’s theorem)
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

LANR sets the destination to the bitwise AND of the left operand with the bitwise complement of the right operand. N and Z are set as if the destination is a signed register. T and R do not change.

LONR Left or not right

Syntax options
c = a lonr b
c = a | !b
c = !a !& b   (De Morgan’s theorem)
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

LONR sets the destination to the bitwise OR of the left operand with the bitwise complement of the right operand. N and Z are set as if the destination is a signed register. T and R do not change.

NANDNAND

Syntax options
c = a nand b
c = a !& b
c = !a | !b   (De Morgan’s theorem)
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

NAND sets the destination to the bitwise NAND of its operands. N and Z are set as if the destination is a signed register. T and R do not change.

NL Not left

Syntax
c = a nl b
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

NL sets the destination to the bitwise NOT of the left operand. N and Z are set as if the destination is a signed register. T and R do not change.

NORNOR

Syntax options
c = a nor b
c = a !| b
c = !a & !b  (De Morgan’s theorem)
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

NOR sets the destination to the bitwise NOR of its operands. N and Z are set as if the destination is a signed register. T and R do not change.

NR Not right

Syntax options
c = a nr b
c = not b
c = !b
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

NR sets the destination to the bitwise NOT of the right operand. N and Z are set as if the destination is a signed register. T and R do not change.

OROR

Syntax options
c = a or b
c = a | b
c = !a !& !b  (De Morgan’s theorem)
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

OR sets the destination to the bitwise OR of its operands. N and Z are set as if the destination is a signed register. T and R do not change.

RANL Right and not left

Syntax options
c = a ranl b
c = !a & b
c = a !| !b   (De Morgan’s theorem)
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

RANL sets the destination to the bitwise AND of the right operand with the bitwise complement of the left operand. N and Z are set as if the destination is a signed register. T and R do not change.

RONL Right or not left

Syntax options
c = a ronl b
c = !a | b
c = a !& !b   (De Morgan’s theorem)
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

RONL sets the destination to the bitwise OR of the right operand with the bitwise complement of the left operand. N and Z are set as if the destination is a signed register. T and R do not change.

XL Exactly left

Syntax
c = a xl b
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

XL copies the left operand to the destination. N and Z are set as if the destination is a signed register. T and R do not change.

XNOR Exclusive NOR

Syntax options
c = a xnor b
c = a !^ b
c = a ^ !b    (by negation)
c = !a ^ b    (by negation)
c = !a !^ !b  (by negation)
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

XNOR sets the destination to the bitwise XNOR of its operands (the opposite of XOR). N and Z are set as if the destination is a signed register. T and R do not change.

XOR Exclusive OR

Syntax options
c = a xor b
c = a ^ b
c = a !^ !b  (by negation)
c = !a !^ b  (by negation)
c = !a ^ !b  (by negation)
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

XOR sets the destination to the bitwise XOR of its operands. N and Z are set as if the destination is a signed register. T and R do not change.

XR Exactly right

Syntax
c = a xr b
Register Signedness
All ignored
1 opcode only
Flag Set if and only if
N bit 35 of the result is set
Z all result bits are zero
T flag does not change
R flag does not change

XR copies the right operand to the destination. N and Z are set as if the destination is a signed register. T and R do not change.


Marc W. Abel
Computer Science and Engineering
College of Engineering and Computer Science
marc.abel@wright.edu
Without secure hardware, there is no secure software.
937-775-3016