This is an old revision of the document!


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

All RAM accesses must be 4 Byte aligned

Simulation

Alfy ASM is simulated using CPUSim version 4. To use the simulator:

  1. Download CPUSim version 4
  2. Download the alf_computer32.cpu
  3. Load it into the simulator

To run a simulation, you may run it in interactive or non-interactive mode.

Read the installation instructions.

Interactive Mode

To run CPUSim, open a shell and write

java -classpath .:richtextfx-fat-0.6.10.jar cpusim.Main -m alf_computer32.cpu -t file.asm

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

java -classpath .:richtextfx-fat-0.6.10.jar cpusim.Main -c -m alf_computer32.cpu -t file.asm

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

The Alfy ASM Lanaguge

Instruction Equivalent
*set* r1 value (16 bits) r1 = value
*mov* r1 r2 r1 = r2
*load* r1 r2 r2 = MEM [r1]
*store* r1 r2 MEM [r1] = r2
*pload* r1 r2 r2 = PMEM [r1]
*pstore* r1 r2 PMEM [r1] = r2
*push* r1 sp = sp - 4
MEM [sp] = r1
*pop* r1 r1 = MEM [sp]
sp = sp + 4
*pushsp* temp = sp
sp = sp - 4
MEM [sp] = temp
*popsp* sp = MEM [sp]
alf/res/alfycomputer_32.1494315320.txt.gz · Last modified: 2017/05/09 10:35 by alexandru.radovici
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0