2019 HYU Computer Architecture PROJECT#1
- Assembler
- Simulator
- Multiplication Assembly Code
- GCC
- Apple LLVM version 10.0.1 (clang-1001.0.46.4)
- Target x86_64-apple-darwin18.5.0
- Debug with LLDB
- Visual Studio Code
- Assembler should catch the following errors in the assembly-language program: use of undefined labels, duplicate labels, offsetFields that don't fit in 16 bits, and unrecognized opcodes.
- Assembler should exit(1) if it detects an error and exit(0) if it finishes without detecting any errors.
- Assembler should NOT catch simulation-time errors
- The bounds of the numeric value for .fill instructions are -2^31 to +2^31-1 (-2147483648 to 2147483647).
- Register 0 will always contain 0
- Since offsetField is a 2's complement number, it can only store numbers ranging from -32768 to 32767
- The LC-2K is an 8-register, 32-bit computer.
- All addresses are word-addresses.
- The LC-2K has 65536 words of memory
- Input the numbers by reading memory locations called "mcand" and "mplier"
- You may assume that the two input numbers are at most 15 bits and are positive.
- Remember that shifting left by one bit is the same as adding the number to itself.
- Submit a version of the program that computes (32766 * 10383)
- it must be at most 50 lines long and execute at most 1000 instructions for any valid input
Build Assembler with Makefile
cd Assembler
make
./assembler testcases/case1.as testcases/case1.mc
Build Assembler with GCC
cd Assembler
gcc assembler.c -o assembler
./assembler testcases/case1.as testcases/case1.mc
Build Simulator with Makefile
cd Simulator
make
./simulator testcases/case1.mc > case1.txt
Build Simulator with GCC
cd Simulator
gcc simulator.c -o simulator
./simualtor testcases/case1.mc > case1.txt
The source code of mintplo is primarily distributed under the terms of the GNU Affero General Public License v3.0 or any later version. See COPYRIGHT for details.