A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|

1 | 0 | - Alias - | - Group - | - Encoding - | #S = immediate (I=1). S = register. #D = immediate (L=1). D = register. - Assembly Syntax - | * Z = (result == 0). ** If #S and cogex, PC += signed(S). If #S and hubex, PC += signed(S*4). If S, PC = register S. - Description - | 8-Cog Timing * +1 if crosses hub long - Cogex Cycles - | 8-Cog Timing * +1 if crosses hub long - Hubex Cycles - | 16-Cog Timing * +1 if crosses hub long - Cogex Cycles - | 16-Cog Timing * +1 if crosses hub long - Hubex Cycles - | * Data not forwarded. - Register Write - | - Hub R/W - | - Stack R/W - | ||||||||||||||||||||

2 | 1 | . | Miscellaneous | 0000 0000000 000 000000000 000000000 | NOP | No operation. | 2 | same | 2 | same | |||||||||||||||||||||||

3 | 2 | . | Math and Logic | EEEE 0000000 CZI DDDDDDDDD SSSSSSSSS | ROR D,{#}S {WC/WZ/WCZ} | Rotate right. D = [31:0] of ({D[31:0], D[31:0]} >> S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[0]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

4 | 3 | . | Math and Logic | EEEE 0000001 CZI DDDDDDDDD SSSSSSSSS | ROL D,{#}S {WC/WZ/WCZ} | Rotate left. D = [63:32] of ({D[31:0], D[31:0]} << S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[31]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

5 | 4 | . | Math and Logic | EEEE 0000010 CZI DDDDDDDDD SSSSSSSSS | SHR D,{#}S {WC/WZ/WCZ} | Shift right. D = [31:0] of ({32'b0, D[31:0]} >> S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[0]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

6 | 5 | . | Math and Logic | EEEE 0000011 CZI DDDDDDDDD SSSSSSSSS | SHL D,{#}S {WC/WZ/WCZ} | Shift left. D = [63:32] of ({D[31:0], 32'b0} << S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[31]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

7 | 6 | . | Math and Logic | EEEE 0000100 CZI DDDDDDDDD SSSSSSSSS | RCR D,{#}S {WC/WZ/WCZ} | Rotate carry right. D = [31:0] of ({{32{C}}, D[31:0]} >> S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[0]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

8 | 7 | . | Math and Logic | EEEE 0000101 CZI DDDDDDDDD SSSSSSSSS | RCL D,{#}S {WC/WZ/WCZ} | Rotate carry left. D = [63:32] of ({D[31:0], {32{C}}} << S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[31]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

9 | 8 | . | Math and Logic | EEEE 0000110 CZI DDDDDDDDD SSSSSSSSS | SAR D,{#}S {WC/WZ/WCZ} | Shift arithmetic right. D = [31:0] of ({{32{D[31]}}, D[31:0]} >> S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[0]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

10 | 9 | . | Math and Logic | EEEE 0000111 CZI DDDDDDDDD SSSSSSSSS | SAL D,{#}S {WC/WZ/WCZ} | Shift arithmetic left. D = [63:32] of ({D[31:0], {32{D[0]}}} << S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[31]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

11 | 10 | . | Math and Logic | EEEE 0001000 CZI DDDDDDDDD SSSSSSSSS | ADD D,{#}S {WC/WZ/WCZ} | Add S into D. D = D + S. C = carry of (D + S). * | 2 | same | 2 | same | D | ||||||||||||||||||||||

12 | 11 | . | Math and Logic | EEEE 0001001 CZI DDDDDDDDD SSSSSSSSS | ADDX D,{#}S {WC/WZ/WCZ} | Add (S + C) into D, extended. D = D + S + C. C = carry of (D + S + C). Z = Z AND (result == 0). | 2 | same | 2 | same | D | ||||||||||||||||||||||

13 | 12 | . | Math and Logic | EEEE 0001010 CZI DDDDDDDDD SSSSSSSSS | ADDS D,{#}S {WC/WZ/WCZ} | Add S into D, signed. D = D + S. C = correct sign of (D + S). * | 2 | same | 2 | same | D | ||||||||||||||||||||||

14 | 13 | . | Math and Logic | EEEE 0001011 CZI DDDDDDDDD SSSSSSSSS | ADDSX D,{#}S {WC/WZ/WCZ} | Add (S + C) into D, signed and extended. D = D + S + C. C = correct sign of (D + S + C). Z = Z AND (result == 0). | 2 | same | 2 | same | D | ||||||||||||||||||||||

15 | 14 | . | Math and Logic | EEEE 0001100 CZI DDDDDDDDD SSSSSSSSS | SUB D,{#}S {WC/WZ/WCZ} | Subtract S from D. D = D - S. C = borrow of (D - S). * | 2 | same | 2 | same | D | ||||||||||||||||||||||

16 | 15 | . | Math and Logic | EEEE 0001101 CZI DDDDDDDDD SSSSSSSSS | SUBX D,{#}S {WC/WZ/WCZ} | Subtract (S + C) from D, extended. D = D - (S + C). C = borrow of (D - (S + C)). Z = Z AND (result == 0). | 2 | same | 2 | same | D | ||||||||||||||||||||||

17 | 16 | . | Math and Logic | EEEE 0001110 CZI DDDDDDDDD SSSSSSSSS | SUBS D,{#}S {WC/WZ/WCZ} | Subtract S from D, signed. D = D - S. C = correct sign of (D - S). * | 2 | same | 2 | same | D | ||||||||||||||||||||||

18 | 17 | . | Math and Logic | EEEE 0001111 CZI DDDDDDDDD SSSSSSSSS | SUBSX D,{#}S {WC/WZ/WCZ} | Subtract (S + C) from D, signed and extended. D = D - (S + C). C = correct sign of (D - (S + C)). Z = Z AND (result == 0). | 2 | same | 2 | same | D | ||||||||||||||||||||||

19 | 18 | . | Math and Logic | EEEE 0010000 CZI DDDDDDDDD SSSSSSSSS | CMP D,{#}S {WC/WZ/WCZ} | Compare D to S. C = borrow of (D - S). Z = (D == S). | 2 | same | 2 | same | |||||||||||||||||||||||

20 | 19 | . | Math and Logic | EEEE 0010001 CZI DDDDDDDDD SSSSSSSSS | CMPX D,{#}S {WC/WZ/WCZ} | Compare D to (S + C), extended. C = borrow of (D - (S + C)). Z = Z AND (D == S + C). | 2 | same | 2 | same | |||||||||||||||||||||||

21 | 20 | . | Math and Logic | EEEE 0010010 CZI DDDDDDDDD SSSSSSSSS | CMPS D,{#}S {WC/WZ/WCZ} | Compare D to S, signed. C = correct sign of (D - S). Z = (D == S). | 2 | same | 2 | same | |||||||||||||||||||||||

22 | 21 | . | Math and Logic | EEEE 0010011 CZI DDDDDDDDD SSSSSSSSS | CMPSX D,{#}S {WC/WZ/WCZ} | Compare D to (S + C), signed and extended. C = correct sign of (D - (S + C)). Z = Z AND (D == S + C). | 2 | same | 2 | same | |||||||||||||||||||||||

23 | 22 | . | Math and Logic | EEEE 0010100 CZI DDDDDDDDD SSSSSSSSS | CMPR D,{#}S {WC/WZ/WCZ} | Compare S to D (reverse). C = borrow of (S - D). Z = (D == S). | 2 | same | 2 | same | |||||||||||||||||||||||

24 | 23 | . | Math and Logic | EEEE 0010101 CZI DDDDDDDDD SSSSSSSSS | CMPM D,{#}S {WC/WZ/WCZ} | Compare D to S, get MSB of difference into C. C = MSB of (D - S). Z = (D == S). | 2 | same | 2 | same | |||||||||||||||||||||||

25 | 24 | . | Math and Logic | EEEE 0010110 CZI DDDDDDDDD SSSSSSSSS | SUBR D,{#}S {WC/WZ/WCZ} | Subtract D from S (reverse). D = S - D. C = borrow of (S - D). * | 2 | same | 2 | same | D | ||||||||||||||||||||||

26 | 25 | . | Math and Logic | EEEE 0010111 CZI DDDDDDDDD SSSSSSSSS | CMPSUB D,{#}S {WC/WZ/WCZ} | Compare and subtract S from D if D >= S. If D => S then D = D - S and C = 1, else D same and C = 0. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

27 | 26 | . | Math and Logic | EEEE 0011000 CZI DDDDDDDDD SSSSSSSSS | FGE D,{#}S {WC/WZ/WCZ} | Force D >= S. If D < S then D = S and C = 1, else D same and C = 0. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

28 | 27 | . | Math and Logic | EEEE 0011001 CZI DDDDDDDDD SSSSSSSSS | FLE D,{#}S {WC/WZ/WCZ} | Force D <= S. If D > S then D = S and C = 1, else D same and C = 0. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

29 | 28 | . | Math and Logic | EEEE 0011010 CZI DDDDDDDDD SSSSSSSSS | FGES D,{#}S {WC/WZ/WCZ} | Force D >= S, signed. If D < S then D = S and C = 1, else D same and C = 0. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

30 | 29 | . | Math and Logic | EEEE 0011011 CZI DDDDDDDDD SSSSSSSSS | FLES D,{#}S {WC/WZ/WCZ} | Force D <= S, signed. If D > S then D = S and C = 1, else D same and C = 0. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

31 | 30 | . | Math and Logic | EEEE 0011100 CZI DDDDDDDDD SSSSSSSSS | SUMC D,{#}S {WC/WZ/WCZ} | Sum +/-S into D by C. If C = 1 then D = D - S, else D = D + S. C = correct sign of (D +/- S). * | 2 | same | 2 | same | D | ||||||||||||||||||||||

32 | 31 | . | Math and Logic | EEEE 0011101 CZI DDDDDDDDD SSSSSSSSS | SUMNC D,{#}S {WC/WZ/WCZ} | Sum +/-S into D by !C. If C = 0 then D = D - S, else D = D + S. C = correct sign of (D +/- S). * | 2 | same | 2 | same | D | ||||||||||||||||||||||

33 | 32 | . | Math and Logic | EEEE 0011110 CZI DDDDDDDDD SSSSSSSSS | SUMZ D,{#}S {WC/WZ/WCZ} | Sum +/-S into D by Z. If Z = 1 then D = D - S, else D = D + S. C = correct sign of (D +/- S). * | 2 | same | 2 | same | D | ||||||||||||||||||||||

34 | 33 | . | Math and Logic | EEEE 0011111 CZI DDDDDDDDD SSSSSSSSS | SUMNZ D,{#}S {WC/WZ/WCZ} | Sum +/-S into D by !Z. If Z = 0 then D = D - S, else D = D + S. C = correct sign of (D +/- S). * | 2 | same | 2 | same | D | ||||||||||||||||||||||

35 | 34 | . | Math and Logic | EEEE 0100000 CZI DDDDDDDDD SSSSSSSSS | TESTB D,{#}S WC/WZ | Test bit S[4:0] of D, write to C/Z. C/Z = D[S[4:0]]. | 2 | same | 2 | same | |||||||||||||||||||||||

36 | 35 | . | Math and Logic | EEEE 0100001 CZI DDDDDDDDD SSSSSSSSS | TESTBN D,{#}S WC/WZ | Test bit S[4:0] of !D, write to C/Z. C/Z = !D[S[4:0]]. | 2 | same | 2 | same | |||||||||||||||||||||||

37 | 36 | . | Math and Logic | EEEE 0100010 CZI DDDDDDDDD SSSSSSSSS | TESTB D,{#}S ANDC/ANDZ | Test bit S[4:0] of D, AND into C/Z. C/Z = C/Z AND D[S[4:0]]. | 2 | same | 2 | same | |||||||||||||||||||||||

38 | 37 | . | Math and Logic | EEEE 0100011 CZI DDDDDDDDD SSSSSSSSS | TESTBN D,{#}S ANDC/ANDZ | Test bit S[4:0] of !D, AND into C/Z. C/Z = C/Z AND !D[S[4:0]]. | 2 | same | 2 | same | |||||||||||||||||||||||

39 | 38 | . | Math and Logic | EEEE 0100100 CZI DDDDDDDDD SSSSSSSSS | TESTB D,{#}S ORC/ORZ | Test bit S[4:0] of D, OR into C/Z. C/Z = C/Z OR D[S[4:0]]. | 2 | same | 2 | same | |||||||||||||||||||||||

40 | 39 | . | Math and Logic | EEEE 0100101 CZI DDDDDDDDD SSSSSSSSS | TESTBN D,{#}S ORC/ORZ | Test bit S[4:0] of !D, OR into C/Z. C/Z = C/Z OR !D[S[4:0]]. | 2 | same | 2 | same | |||||||||||||||||||||||

41 | 40 | . | Math and Logic | EEEE 0100110 CZI DDDDDDDDD SSSSSSSSS | TESTB D,{#}S XORC/XORZ | Test bit S[4:0] of D, XOR into C/Z. C/Z = C/Z XOR D[S[4:0]]. | 2 | same | 2 | same | |||||||||||||||||||||||

42 | 41 | . | Math and Logic | EEEE 0100111 CZI DDDDDDDDD SSSSSSSSS | TESTBN D,{#}S XORC/XORZ | Test bit S[4:0] of !D, XOR into C/Z. C/Z = C/Z XOR !D[S[4:0]]. | 2 | same | 2 | same | |||||||||||||||||||||||

43 | 42 | . | Math and Logic | EEEE 0100000 CZI DDDDDDDDD SSSSSSSSS | BITL D,{#}S {WCZ} | Bit S[4:0] of D = 0, C,Z = original bit S[4:0] of D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

44 | 43 | . | Math and Logic | EEEE 0100001 CZI DDDDDDDDD SSSSSSSSS | BITH D,{#}S {WCZ} | Bit S[4:0] of D = 1, C,Z = original bit S[4:0] of D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

45 | 44 | . | Math and Logic | EEEE 0100010 CZI DDDDDDDDD SSSSSSSSS | BITC D,{#}S {WCZ} | Bit S[4:0] of D = C, C,Z = original bit S[4:0] of D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

46 | 45 | . | Math and Logic | EEEE 0100011 CZI DDDDDDDDD SSSSSSSSS | BITNC D,{#}S {WCZ} | Bit S[4:0] of D = !C, C,Z = original bit S[4:0] of D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

47 | 46 | . | Math and Logic | EEEE 0100100 CZI DDDDDDDDD SSSSSSSSS | BITZ D,{#}S {WCZ} | Bit S[4:0] of D = Z, C,Z = original bit S[4:0] of D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

48 | 47 | . | Math and Logic | EEEE 0100101 CZI DDDDDDDDD SSSSSSSSS | BITNZ D,{#}S {WCZ} | Bit S[4:0] of D = !Z, C,Z = original bit S[4:0] of D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

49 | 48 | . | Math and Logic | EEEE 0100110 CZI DDDDDDDDD SSSSSSSSS | BITRND D,{#}S {WCZ} | Bit S[4:0] of D = RND, C,Z = original bit S[4:0] of D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

50 | 49 | . | Math and Logic | EEEE 0100111 CZI DDDDDDDDD SSSSSSSSS | BITNOT D,{#}S {WCZ} | Bit S[4:0] of D = !bit, C,Z = original bit S[4:0] of D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

51 | 50 | . | Math and Logic | EEEE 0101000 CZI DDDDDDDDD SSSSSSSSS | AND D,{#}S {WC/WZ/WCZ} | AND S into D. D = D & S. C = parity of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

52 | 51 | . | Math and Logic | EEEE 0101001 CZI DDDDDDDDD SSSSSSSSS | ANDN D,{#}S {WC/WZ/WCZ} | AND !S into D. D = D & !S. C = parity of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

53 | 52 | . | Math and Logic | EEEE 0101010 CZI DDDDDDDDD SSSSSSSSS | OR D,{#}S {WC/WZ/WCZ} | OR S into D. D = D | S. C = parity of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

54 | 53 | . | Math and Logic | EEEE 0101011 CZI DDDDDDDDD SSSSSSSSS | XOR D,{#}S {WC/WZ/WCZ} | XOR S into D. D = D ^ S. C = parity of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

55 | 54 | . | Math and Logic | EEEE 0101100 CZI DDDDDDDDD SSSSSSSSS | MUXC D,{#}S {WC/WZ/WCZ} | Mux C into each D bit that is '1' in S. D = (!S & D ) | (S & {32{ C}}). C = parity of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

56 | 55 | . | Math and Logic | EEEE 0101101 CZI DDDDDDDDD SSSSSSSSS | MUXNC D,{#}S {WC/WZ/WCZ} | Mux !C into each D bit that is '1' in S. D = (!S & D ) | (S & {32{!C}}). C = parity of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

57 | 56 | . | Math and Logic | EEEE 0101110 CZI DDDDDDDDD SSSSSSSSS | MUXZ D,{#}S {WC/WZ/WCZ} | Mux Z into each D bit that is '1' in S. D = (!S & D ) | (S & {32{ Z}}). C = parity of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

58 | 57 | . | Math and Logic | EEEE 0101111 CZI DDDDDDDDD SSSSSSSSS | MUXNZ D,{#}S {WC/WZ/WCZ} | Mux !Z into each D bit that is '1' in S. D = (!S & D ) | (S & {32{!Z}}). C = parity of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

59 | 58 | . | Math and Logic | EEEE 0110000 CZI DDDDDDDDD SSSSSSSSS | MOV D,{#}S {WC/WZ/WCZ} | Move S into D. D = S. C = S[31]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

60 | 59 | . | Math and Logic | EEEE 0110001 CZI DDDDDDDDD SSSSSSSSS | NOT D,{#}S {WC/WZ/WCZ} | Get !S into D. D = !S. C = !S[31]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

61 | 60 | alias | Math and Logic | EEEE 0110001 CZ0 DDDDDDDDD DDDDDDDDD | NOT D {WC/WZ/WCZ} | Get !D into D. D = !D. C = !D[31]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

62 | 61 | . | Math and Logic | EEEE 0110010 CZI DDDDDDDDD SSSSSSSSS | ABS D,{#}S {WC/WZ/WCZ} | Get absolute value of S into D. D = ABS(S). C = S[31]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

63 | 62 | alias | Math and Logic | EEEE 0110010 CZ0 DDDDDDDDD DDDDDDDDD | ABS D {WC/WZ/WCZ} | Get absolute value of D into D. D = ABS(D). C = D[31]. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

64 | 63 | . | Math and Logic | EEEE 0110011 CZI DDDDDDDDD SSSSSSSSS | NEG D,{#}S {WC/WZ/WCZ} | Negate S into D. D = -S. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

65 | 64 | alias | Math and Logic | EEEE 0110011 CZ0 DDDDDDDDD DDDDDDDDD | NEG D {WC/WZ/WCZ} | Negate D. D = -D. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

66 | 65 | . | Math and Logic | EEEE 0110100 CZI DDDDDDDDD SSSSSSSSS | NEGC D,{#}S {WC/WZ/WCZ} | Negate S by C into D. If C = 1 then D = -S, else D = S. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

67 | 66 | alias | Math and Logic | EEEE 0110100 CZ0 DDDDDDDDD DDDDDDDDD | NEGC D {WC/WZ/WCZ} | Negate D by C. If C = 1 then D = -D, else D = D. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

68 | 67 | . | Math and Logic | EEEE 0110101 CZI DDDDDDDDD SSSSSSSSS | NEGNC D,{#}S {WC/WZ/WCZ} | Negate S by !C into D. If C = 0 then D = -S, else D = S. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

69 | 68 | alias | Math and Logic | EEEE 0110101 CZ0 DDDDDDDDD DDDDDDDDD | NEGNC D {WC/WZ/WCZ} | Negate D by !C. If C = 0 then D = -D, else D = D. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

70 | 69 | . | Math and Logic | EEEE 0110110 CZI DDDDDDDDD SSSSSSSSS | NEGZ D,{#}S {WC/WZ/WCZ} | Negate S by Z into D. If Z = 1 then D = -S, else D = S. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

71 | 70 | alias | Math and Logic | EEEE 0110110 CZ0 DDDDDDDDD DDDDDDDDD | NEGZ D {WC/WZ/WCZ} | Negate D by Z. If Z = 1 then D = -D, else D = D. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

72 | 71 | . | Math and Logic | EEEE 0110111 CZI DDDDDDDDD SSSSSSSSS | NEGNZ D,{#}S {WC/WZ/WCZ} | Negate S by !Z into D. If Z = 0 then D = -S, else D = S. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

73 | 72 | alias | Math and Logic | EEEE 0110111 CZ0 DDDDDDDDD DDDDDDDDD | NEGNZ D {WC/WZ/WCZ} | Negate D by !Z. If Z = 0 then D = -D, else D = D. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

74 | 73 | . | Math and Logic | EEEE 0111000 CZI DDDDDDDDD SSSSSSSSS | INCMOD D,{#}S {WC/WZ/WCZ} | Increment with modulus. If D = S then D = 0 and C = 1, else D = D + 1 and C = 0. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

75 | 74 | . | Math and Logic | EEEE 0111001 CZI DDDDDDDDD SSSSSSSSS | DECMOD D,{#}S {WC/WZ/WCZ} | Decrement with modulus. If D = 0 then D = S and C = 1, else D = D - 1 and C = 0. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

76 | 75 | . | Math and Logic | EEEE 0111010 CZI DDDDDDDDD SSSSSSSSS | ZEROX D,{#}S {WC/WZ/WCZ} | Zero-extend D above bit S[4:0]. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

77 | 76 | . | Math and Logic | EEEE 0111011 CZI DDDDDDDDD SSSSSSSSS | SIGNX D,{#}S {WC/WZ/WCZ} | Sign-extend D from bit S[4:0]. C = MSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

78 | 77 | . | Math and Logic | EEEE 0111100 CZI DDDDDDDDD SSSSSSSSS | ENCOD D,{#}S {WC/WZ/WCZ} | Get bit position of top-most '1' in S into D. D = position of top '1' in S (0..31). C = (S != 0). * | 2 | same | 2 | same | D | ||||||||||||||||||||||

79 | 78 | alias | Math and Logic | EEEE 0111100 CZ0 DDDDDDDDD DDDDDDDDD | ENCOD D {WC/WZ/WCZ} | Get bit position of top-most '1' in D into D. D = position of top '1' in S (0..31). C = (S != 0). * | 2 | same | 2 | same | D | ||||||||||||||||||||||

80 | 79 | . | Math and Logic | EEEE 0111101 CZI DDDDDDDDD SSSSSSSSS | ONES D,{#}S {WC/WZ/WCZ} | Get number of '1's in S into D. D = number of '1's in S (0..32). C = LSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

81 | 80 | alias | Math and Logic | EEEE 0111101 CZ0 DDDDDDDDD DDDDDDDDD | ONES D {WC/WZ/WCZ} | Get number of '1's in D into D. D = number of '1's in S (0..32). C = LSB of result. * | 2 | same | 2 | same | D | ||||||||||||||||||||||

82 | 81 | . | Math and Logic | EEEE 0111110 CZI DDDDDDDDD SSSSSSSSS | TEST D,{#}S {WC/WZ/WCZ} | Test D with S. C = parity of (D & S). Z = ((D & S) == 0). | 2 | same | 2 | same | |||||||||||||||||||||||

83 | 82 | alias | Math and Logic | EEEE 0111110 CZ0 DDDDDDDDD DDDDDDDDD | TEST D {WC/WZ/WCZ} | Test D. C = parity of D. Z = (D == 0). | 2 | same | 2 | same | |||||||||||||||||||||||

84 | 83 | . | Math and Logic | EEEE 0111111 CZI DDDDDDDDD SSSSSSSSS | TESTN D,{#}S {WC/WZ/WCZ} | Test D with !S. C = parity of (D & !S). Z = ((D & !S) == 0). | 2 | same | 2 | same | |||||||||||||||||||||||

85 | 84 | . | Math and Logic | EEEE 100000N NNI DDDDDDDDD SSSSSSSSS | SETNIB D,{#}S,#N | Set S[3:0] into nibble N in D, keeping rest of D same. | 2 | same | 2 | same | D | ||||||||||||||||||||||

86 | 85 | alias | Math and Logic | EEEE 1000000 00I 000000000 SSSSSSSSS | SETNIB {#}S | Set S[3:0] into nibble established by prior ALTSN instruction. | 2 | same | 2 | same | D | ||||||||||||||||||||||

87 | 86 | . | Math and Logic | EEEE 100001N NNI DDDDDDDDD SSSSSSSSS | GETNIB D,{#}S,#N | Get nibble N of S into D. D = {28'b0, S.NIBBLE[N]). | 2 | same | 2 | same | D | ||||||||||||||||||||||

88 | 87 | alias | Math and Logic | EEEE 1000010 000 DDDDDDDDD 000000000 | GETNIB D | Get nibble established by prior ALTGN instruction into D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

89 | 88 | . | Math and Logic | EEEE 100010N NNI DDDDDDDDD SSSSSSSSS | ROLNIB D,{#}S,#N | Rotate-left nibble N of S into D. D = {D[27:0], S.NIBBLE[N]). | 2 | same | 2 | same | D | ||||||||||||||||||||||

90 | 89 | alias | Math and Logic | EEEE 1000100 000 DDDDDDDDD 000000000 | ROLNIB D | Rotate-left nibble established by prior ALTGN instruction into D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

91 | 90 | . | Math and Logic | EEEE 1000110 NNI DDDDDDDDD SSSSSSSSS | SETBYTE D,{#}S,#N | Set S[7:0] into byte N in D, keeping rest of D same. | 2 | same | 2 | same | D | ||||||||||||||||||||||

92 | 91 | alias | Math and Logic | EEEE 1000110 00I 000000000 SSSSSSSSS | SETBYTE {#}S | Set S[7:0] into byte established by prior ALTSB instruction. | 2 | same | 2 | same | D | ||||||||||||||||||||||

93 | 92 | . | Math and Logic | EEEE 1000111 NNI DDDDDDDDD SSSSSSSSS | GETBYTE D,{#}S,#N | Get byte N of S into D. D = {24'b0, S.BYTE[N]). | 2 | same | 2 | same | D | ||||||||||||||||||||||

94 | 93 | alias | Math and Logic | EEEE 1000111 000 DDDDDDDDD 000000000 | GETBYTE D | Get byte established by prior ALTGB instruction into D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

95 | 94 | . | Math and Logic | EEEE 1001000 NNI DDDDDDDDD SSSSSSSSS | ROLBYTE D,{#}S,#N | Rotate-left byte N of S into D. D = {D[23:0], S.BYTE[N]). | 2 | same | 2 | same | D | ||||||||||||||||||||||

96 | 95 | alias | Math and Logic | EEEE 1001000 000 DDDDDDDDD 000000000 | ROLBYTE D | Rotate-left byte established by prior ALTGB instruction into D. | 2 | same | 2 | same | D | ||||||||||||||||||||||

97 | 96 | . | Math and Logic | EEEE 1001001 0NI DDDDDDDDD SSSSSSSSS | SETWORD D,{#}S,#N | Set S[15:0] into word N in D, keeping rest of D same. | 2 | same | 2 | same | D | ||||||||||||||||||||||

98 | 97 | alias | Math and Logic | EEEE 1001001 00I 000000000 SSSSSSSSS | SETWORD {#}S | Set S[15:0] into word established by prior ALTSW instruction. | 2 | same | 2 | same | D | ||||||||||||||||||||||

99 | 98 | . | Math and Logic | EEEE 1001001 1NI DDDDDDDDD SSSSSSSSS | GETWORD D,{#}S,#N | Get word N of S into D. D = {16'b0, S.WORD[N]). | 2 | same | 2 | same | D | ||||||||||||||||||||||

100 | 99 | alias | Math and Logic | EEEE 1001001 100 DDDDDDDDD 000000000 | GETWORD D | Get word established by prior ALTGW instruction into D. | 2 | same | 2 | same | D |

Loading...