This shows you the differences between two versions of the page.
alf:res:alfycomputer_32 [2017/05/08 11:32] alexandru.radovici |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== ALF Computer 32 ====== | ||
- | ===== Architecture ===== | ||
- | The Alfy ASM language is the assembly language for the ALF32 Computer. This virtual CPU has: | ||
- | |||
- | * A Harvard Architecture (Program RAM and Data RAM are separate) | ||
- | * 32 bits instructions | ||
- | * 64 registers that are 32 bits wide (r0 to r63) | ||
- | * 49 KB of RAM | ||
- | * 49 KB of Program RAM | ||
- | |||
- | <note>All RAM accesses must be 4 Byte aligned</note> | ||
- | |||
- | ===== Simulation ===== | ||
- | |||
- | Alfy ASM is simulated using [[http://www.cs.colby.edu/djskrien/CPUSim/|CPUSim]] version 4. To use the simulator: | ||
- | - Download [[http://www.cs.colby.edu/djskrien/CPUSim/CPUSim4.0.9.zip|CPUSim]] version 4 | ||
- | - Download the [[https://raw.githubusercontent.com/alexandruradovici/alf-alfy-asm-language-public/master/alf_computer32.cpu|alf_computer32.cpu]] | ||
- | - Load it into the simulator | ||
- | |||
- | To run a simulation, you may run it in interactive or non-interactive mode. | ||
- | |||
- | {{ :alf:res:cpusim.png?600 |}} | ||
- | |||
- | Read the [[http://www.cs.colby.edu/djskrien/CPUSim/Version4InstallationInstructions.txt|installation instructions]]. | ||
- | |||
- | ==== Interactive Mode ==== | ||
- | To run CPUSim, open a shell and write | ||
- | |||
- | <code bash> | ||
- | java -classpath .:richtextfx-fat-0.6.10.jar cpusim.Main -m alf_computer32.cpu -t file.asm | ||
- | </code> | ||
- | |||
- | This will open the UI, load the AlfyComputer_32.cpu and the file.asm. | ||
- | |||
- | ==== Non-Interactive Mode ==== | ||
- | To run CPUSim, open a shell and write | ||
- | |||
- | <code bash> | ||
- | java -classpath .:richtextfx-fat-0.6.10.jar cpusim.Main -c -m alf_computer32.cpu -t file.asm | ||
- | </code> | ||
- | |||
- | This will load the alf_computer32.cpu and run the file.asm. | ||
- | |||
- | ===== Running a program ===== | ||
- | After loading a machine and a program, to run it: | ||
- | |||
- | * In the menu bar, go to //Execute// and select //Assemble & load//. This will assemble the program and load it into the program memory | ||
- | * In the Menu bar, go to //Execute// and select //Debug//. This will switch the UI into debug mode. There you can select several options: | ||
- | * //Start Over// - restart the program | ||
- | * //Go// - run the program | ||
- | * //Step by Instr// - go forward one instruction in the program | ||
- | * //Back one Instr// - go back one instruction in the program | ||
- | |||
- | {{:alf:res:assemble.png?200|}}{{:alf:res:debug_mode.png?200|}}{{:alf:res:debug.png?200|}} | ||
- | |||
- | ===== The Alfy ASM Lanaguge ===== |