5bit CPU 符号なし1命令 加算
plantuml
@startuml
skinparam shadowing false
state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111
state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算
@enduml
2命令
5bit CPU 符号なし2命令 加算+NOP
plantuml
@startuml
skinparam shadowing false
state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111
state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算
state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP
@enduml
符号なし3命令 加算、減算、NOP
plantuml
@startuml
skinparam shadowing false
state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111
state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算
state00000 --> state11111 : 減算
state00001 --> state00000 : 減算
state00010 --> state00001 : 減算
state00011 --> state00010 : 減算
state00100 --> state00011 : 減算
state00101 --> state00100 : 減算
state00110 --> state00101 : 減算
state00111 --> state00110 : 減算
state01000 --> state00111 : 減算
state01001 --> state01000 : 減算
state01010 --> state01001 : 減算
state01011 --> state01010 : 減算
state01100 --> state01011 : 減算
state01101 --> state01100 : 減算
state01110 --> state01101 : 減算
state01111 --> state01110 : 減算
state10000 --> state01111 : 減算
state10001 --> state10000 : 減算
state10010 --> state10001 : 減算
state10011 --> state10010 : 減算
state10100 --> state10011 : 減算
state10101 --> state10100 : 減算
state10110 --> state10101 : 減算
state10111 --> state10110 : 減算
state11000 --> state10111 : 減算
state11001 --> state11000 : 減算
state11010 --> state11001 : 減算
state11011 --> state11010 : 減算
state11100 --> state11011 : 減算
state11101 --> state11100 : 減算
state11110 --> state11101 : 減算
state11111 --> state11110 : 減算
state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP
@enduml
符号なし4命令 加算、減産、NOP 右シフト0埋め
plantuml
@startuml
skinparam shadowing false
state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111
state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算
state00000 --> state11111 : 減算
state00001 --> state00000 : 減算
state00010 --> state00001 : 減算
state00011 --> state00010 : 減算
state00100 --> state00021 : 減算
state00101 --> state00100 : 減算
state00110 --> state00101 : 減算
state00111 --> state00110 : 減算
state01000 --> state00111 : 減算
state01001 --> state01000 : 減算
state01010 --> state01001 : 減算
state01011 --> state01010 : 減算
state01100 --> state01011 : 減算
state01101 --> state01100 : 減算
state01110 --> state01101 : 減算
state01111 --> state01110 : 減算
state10000 --> state01111 : 減算
state10001 --> state10000 : 減算
state10010 --> state10001 : 減算
state10011 --> state10010 : 減算
state10100 --> state10011 : 減算
state10101 --> state10100 : 減算
state10110 --> state10101 : 減算
state10111 --> state10110 : 減算
state11000 --> state10111 : 減算
state11001 --> state11000 : 減算
state11010 --> state11001 : 減算
state11011 --> state11010 : 減算
state11100 --> state11011 : 減算
state11101 --> state11100 : 減算
state11110 --> state11101 : 減算
state11111 --> state11110 : 減算
state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP
state00000 --> state00000 : 右シフト
state00001 --> state00000 : 右シフト
state00010 --> state00001 : 右シフト
state00011 --> state00001 : 右シフト
state00100 --> state00010 : 右シフト
state00101 --> state00010 : 右シフト
state00110 --> state00011 : 右シフト
state00111 --> state00011 : 右シフト
state01000 --> state00100 : 右シフト
state01001 --> state00100 : 右シフト
state01010 --> state00101 : 右シフト
state01011 --> state00101 : 右シフト
state01100 --> state00110 : 右シフト
state01101 --> state00110 : 右シフト
state01110 --> state00111 : 右シフト
state01111 --> state00111 : 右シフト
state10000 --> state01000 : 右シフト
state10001 --> state01000 : 右シフト
state10010 --> state01001 : 右シフト
state10011 --> state01001 : 右シフト
state10100 --> state01010 : 右シフト
state10101 --> state01010 : 右シフト
state10110 --> state01011 : 右シフト
state10111 --> state01011 : 右シフト
state11000 --> state01100 : 右シフト
state11001 --> state01100 : 右シフト
state11010 --> state01101 : 右シフト
state11011 --> state01101 : 右シフト
state11100 --> state01101 : 右シフト
state11101 --> state01110 : 右シフト
state11110 --> state01111 : 右シフト
state11111 --> state01111 : 右シフト
@enduml
符号なし4命令 加算、減産、NOP 右シフト最左辺値埋め
@startuml
skinparam shadowing false
state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111
state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算
state00000 --> state11111 : 減算
state00001 --> state00000 : 減算
state00010 --> state00001 : 減算
state00011 --> state00010 : 減算
state00100 --> state00021 : 減算
state00101 --> state00100 : 減算
state00110 --> state00101 : 減算
state00111 --> state00110 : 減算
state01000 --> state00111 : 減算
state01001 --> state01000 : 減算
state01010 --> state01001 : 減算
state01011 --> state01010 : 減算
state01100 --> state01011 : 減算
state01101 --> state01100 : 減算
state01110 --> state01101 : 減算
state01111 --> state01110 : 減算
state10000 --> state01111 : 減算
state10001 --> state10000 : 減算
state10010 --> state10001 : 減算
state10011 --> state10010 : 減算
state10100 --> state10011 : 減算
state10101 --> state10100 : 減算
state10110 --> state10101 : 減算
state10111 --> state10110 : 減算
state11000 --> state10111 : 減算
state11001 --> state11000 : 減算
state11010 --> state11001 : 減算
state11011 --> state11010 : 減算
state11100 --> state11011 : 減算
state11101 --> state11100 : 減算
state11110 --> state11101 : 減算
state11111 --> state11110 : 減算
state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP
state00000 --> state00000 : 右シフト
state00001 --> state00000 : 右シフト
state00010 --> state00001 : 右シフト
state00011 --> state00001 : 右シフト
state00100 --> state00010 : 右シフト
state00101 --> state00010 : 右シフト
state00110 --> state00011 : 右シフト
state00111 --> state00011 : 右シフト
state01000 --> state00100 : 右シフト
state01001 --> state00100 : 右シフト
state01010 --> state00101 : 右シフト
state01011 --> state00101 : 右シフト
state01100 --> state00110 : 右シフト
state01101 --> state00110 : 右シフト
state01110 --> state00111 : 右シフト
state01111 --> state00111 : 右シフト
state10000 --> state11000 : 右シフト
state10001 --> state11000 : 右シフト
state10010 --> state11001 : 右シフト
state10011 --> state11001 : 右シフト
state10100 --> state11010 : 右シフト
state10101 --> state11010 : 右シフト
state10110 --> state11011 : 右シフト
state10111 --> state11011 : 右シフト
state11000 --> state11100 : 右シフト
state11001 --> state11100 : 右シフト
state11010 --> state11101 : 右シフト
state11011 --> state11101 : 右シフト
state11100 --> state11101 : 右シフト
state11101 --> state11110 : 右シフト
state11110 --> state11111 : 右シフト
state11111 --> state11111 : 右シフト
@enduml
符号なし5命令 加算、減算、NOP、右シフト、左シフト
plantuml
@startuml
skinparam shadowing false
state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111
state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算
state00000 --> state11111 : 減算
state00001 --> state00000 : 減算
state00010 --> state00001 : 減算
state00011 --> state00010 : 減算
state00100 --> state00021 : 減算
state00101 --> state00100 : 減算
state00110 --> state00101 : 減算
state00111 --> state00110 : 減算
state01000 --> state00111 : 減算
state01001 --> state01000 : 減算
state01010 --> state01001 : 減算
state01011 --> state01010 : 減算
state01100 --> state01011 : 減算
state01101 --> state01100 : 減算
state01110 --> state01101 : 減算
state01111 --> state01110 : 減算
state10000 --> state01111 : 減算
state10001 --> state10000 : 減算
state10010 --> state10001 : 減算
state10011 --> state10010 : 減算
state10100 --> state10011 : 減算
state10101 --> state10100 : 減算
state10110 --> state10101 : 減算
state10111 --> state10110 : 減算
state11000 --> state10111 : 減算
state11001 --> state11000 : 減算
state11010 --> state11001 : 減算
state11011 --> state11010 : 減算
state11100 --> state11011 : 減算
state11101 --> state11100 : 減算
state11110 --> state11101 : 減算
state11111 --> state11110 : 減算
state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP
state00000 --> state00000 : 右シフト
state00001 --> state00000 : 右シフト
state00010 --> state00001 : 右シフト
state00011 --> state00001 : 右シフト
state00100 --> state00010 : 右シフト
state00101 --> state00010 : 右シフト
state00110 --> state00011 : 右シフト
state00111 --> state00011 : 右シフト
state01000 --> state00100 : 右シフト
state01001 --> state00100 : 右シフト
state01010 --> state00101 : 右シフト
state01011 --> state00101 : 右シフト
state01100 --> state00110 : 右シフト
state01101 --> state00110 : 右シフト
state01110 --> state00111 : 右シフト
state01111 --> state00111 : 右シフト
state10000 --> state01000 : 右シフト
state10001 --> state01000 : 右シフト
state10010 --> state01001 : 右シフト
state10011 --> state01001 : 右シフト
state10100 --> state01010 : 右シフト
state10101 --> state01010 : 右シフト
state10110 --> state01011 : 右シフト
state10111 --> state01011 : 右シフト
state11000 --> state01100 : 右シフト
state11001 --> state01100 : 右シフト
state11010 --> state01101 : 右シフト
state11011 --> state01101 : 右シフト
state11100 --> state01101 : 右シフト
state11101 --> state01110 : 右シフト
state11110 --> state01111 : 右シフト
state11111 --> state01111 : 右シフト
state00000 --> state00000 : 左シフト
state00001 --> state00010 : 左シフト
state00010 --> state00100 : 左シフト
state00011 --> state00110 : 左シフト
state00100 --> state01000 : 左シフト
state00101 --> state01010 : 左シフト
state00110 --> state01100 : 左シフト
state00111 --> state01110 : 左シフト
state01000 --> state10000 : 左シフト
state01001 --> state10010 : 左シフト
state01010 --> state10100 : 左シフト
state01011 --> state10110 : 左シフト
state01100 --> state11000 : 左シフト
state01101 --> state11010 : 左シフト
state01110 --> state11100 : 左シフト
state01111 --> state11110 : 左シフト
state10000 --> state00000 : 左シフト
state10001 --> state00010 : 左シフト
state10010 --> state00100 : 左シフト
state10011 --> state00110 : 左シフト
state10100 --> state01000 : 左シフト
state10101 --> state01010 : 左シフト
state10110 --> state01100 : 左シフト
state10111 --> state01110 : 左シフト
state11000 --> state10000 : 左シフト
state11001 --> state10010 : 左シフト
state11010 --> state10100 : 左シフト
state11011 --> state10110 : 左シフト
state11100 --> state11100 : 左シフト
state11101 --> state11010 : 左シフト
state11110 --> state11100 : 左シフト
state11111 --> state11110 : 左シフト
@endum
符号なし4命令 加算、減産、NOP 右シフト最左辺値埋め、左シフト際右辺値埋め
plantuml
@startuml
skinparam shadowing false
state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111
state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算
state00000 --> state11111 : 減算
state00001 --> state00000 : 減算
state00010 --> state00001 : 減算
state00011 --> state00010 : 減算
state00100 --> state00021 : 減算
state00101 --> state00100 : 減算
state00110 --> state00101 : 減算
state00111 --> state00110 : 減算
state01000 --> state00111 : 減算
state01001 --> state01000 : 減算
state01010 --> state01001 : 減算
state01011 --> state01010 : 減算
state01100 --> state01011 : 減算
state01101 --> state01100 : 減算
state01110 --> state01101 : 減算
state01111 --> state01110 : 減算
state10000 --> state01111 : 減算
state10001 --> state10000 : 減算
state10010 --> state10001 : 減算
state10011 --> state10010 : 減算
state10100 --> state10011 : 減算
state10101 --> state10100 : 減算
state10110 --> state10101 : 減算
state10111 --> state10110 : 減算
state11000 --> state10111 : 減算
state11001 --> state11000 : 減算
state11010 --> state11001 : 減算
state11011 --> state11010 : 減算
state11100 --> state11011 : 減算
state11101 --> state11100 : 減算
state11110 --> state11101 : 減算
state11111 --> state11110 : 減算
state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP
state00000 --> state00000 : 右シフト
state00001 --> state00000 : 右シフト
state00010 --> state00001 : 右シフト
state00011 --> state00001 : 右シフト
state00100 --> state00010 : 右シフト
state00101 --> state00010 : 右シフト
state00110 --> state00011 : 右シフト
state00111 --> state00011 : 右シフト
state01000 --> state00100 : 右シフト
state01001 --> state00100 : 右シフト
state01010 --> state00101 : 右シフト
state01011 --> state00101 : 右シフト
state01100 --> state00110 : 右シフト
state01101 --> state00110 : 右シフト
state01110 --> state00111 : 右シフト
state01111 --> state00111 : 右シフト
state10000 --> state11000 : 右シフト
state10001 --> state11000 : 右シフト
state10010 --> state11001 : 右シフト
state10011 --> state11001 : 右シフト
state10100 --> state11010 : 右シフト
state10101 --> state11010 : 右シフト
state10110 --> state11011 : 右シフト
state10111 --> state11011 : 右シフト
state11000 --> state11100 : 右シフト
state11001 --> state11100 : 右シフト
state11010 --> state11101 : 右シフト
state11011 --> state11101 : 右シフト
state11100 --> state11101 : 右シフト
state11101 --> state11110 : 右シフト
state11110 --> state11111 : 右シフト
state11111 --> state11111 : 右シフト
state00000 --> state00000 : 左シフト
state00001 --> state00011 : 左シフト
state00010 --> state00100 : 左シフト
state00011 --> state00111 : 左シフト
state00100 --> state01000 : 左シフト
state00101 --> state01011 : 左シフト
state00110 --> state01100 : 左シフト
state00111 --> state01111 : 左シフト
state01000 --> state10000 : 左シフト
state01001 --> state10011 : 左シフト
state01010 --> state10100 : 左シフト
state01011 --> state10111 : 左シフト
state01100 --> state11000 : 左シフト
state01101 --> state11011 : 左シフト
state01110 --> state11100 : 左シフト
state01111 --> state11111 : 左シフト
state10000 --> state00000 : 左シフト
state10001 --> state00011 : 左シフト
state10010 --> state00100 : 左シフト
state10011 --> state00111 : 左シフト
state10100 --> state01000 : 左シフト
state10101 --> state01011 : 左シフト
state10110 --> state01100 : 左シフト
state10111 --> state01111 : 左シフト
state11000 --> state10000 : 左シフト
state11001 --> state10011 : 左シフト
state11010 --> state10100 : 左シフト
state11011 --> state10111 : 左シフト
state11100 --> state11100 : 左シフト
state11101 --> state11011 : 左シフト
state11110 --> state11100 : 左シフト
state11111 --> state11111 : 左シフト
@enduml
programで、PlantUMLのソースを生成。
6bit CPUは、自動生成でやってみる。