You must login before you can post a comment.
Author: Sanderokian Stfetoneri
Forked from: Sanderokian Stfetoneri/Computer Multiply Code Demo
Project access type: Public
Description:
A Computer. Kind of.
The 256-Series, my new collection of simulated computers: https://circuitverse.org/users/4699/projects/256-series
This version is setup to demonstrate a program that multiplies two numbers together. This version has been specifically modified to make demonstrating the program easier. This was done by making operand A for the first two instructions depend on user input, which allows the user to easily test the program with different values.
The code is as follows:
00: LOAD Input A into Address 00
01: LOAD Input B into Address 01
02: LOAD 1F into Address 02
03: XOR Addresses 01 and 02
04: LOAD XOR Result into Address 01
05: LOAD 01 into Address 02
06: ADD Addresses 01 and 02
07: LOAD ADD Result into 01
08: LOAD 00 into Address 03
09: LOAD 00 into Address 04
0A: ADD 01 and 04
0B: IF ADD Result = 00, Go To 12, ELSE GOTO 0C
0C: ADD Addresses 00 and 03
0D: LOAD ADD Result into Address 03
0E: ADD Addresses 02 and 04
0F: LOAD ADD Result into Address 04
10: ADD Addresses 01 and 04
11: GOTO 0B
12: RETURN Address 03
Features:
32-Bits of 5-bit RAM,
32 Lines for Instructions,
ADD, AND and XOR Functions.
Go To Functionality
Can do IF = Statements
OP Codes:
0000 = Nothing
0001 VVVVV AAAAA = LOAD VVVVV into address AAAAA
0010 AAAAA 00000 = LOAD Add result into address AAAAA
0011 DDDDD VVVVV = ADD DDDDD and VVVVV together
0100 AAAAA BBBBB = ADD address AAAAA and address BBBBB together
0101 DDDDD VVVVV = AND DDDDD and VVVVV together
0110 AAAAA BBBBB = AND address AAAAA and address BBBBB together
0111 DDDDD VVVVV = XOR DDDDD and VVVVV together
1000 AAAAA BBBBB = XOR address AAAAA and BBBBB together
1001 AAAAA 00000 = LOAD AND result into address AAAAA
1010 AAAAA 00000 = LOAD XOR result into address AAAAA
1011 AAAAA 00000 = GOTO address AAAAA (in instruction memory)
1100 AAAAA BBBBB = If add result = 0 (ignoring carry), GOTO address AAAAA else go to address BBBBB (in instruction memory)
1101 VVVVV 00000 = Return VVVVV (Stops the program)
1110 AAAAA 00000 = Return the value at address AAAAA (Stops the program)
1111 = Nothing
Created: Sep 30, 2021
Updated: Aug 26, 2023
Comments