Search   
Home  Print View  

 

Branch Content

Call instructions

Call instructions are special because they require more than four cycles to execute since PC and F need to be saved to the Stack before branching; however, these long sequences are built from the same ET0, ET1 signals provided by the "Time Counter" (T-Counter).

Call instructions are always unconditional. They can be Direct, Indirect, Relative or Relative Indirect.

Direct Calls (Class 10)

The branch address is read into OR during the Fetch cycle.

[10][0][0R][PC], addr        Example: CALL  0x03ff   ; 0xa031, 0x03ff

Relative Calls (Class 11)

[11][0][0R][PC], off-set        Example: CALLR  0x08   ; 0xb031, 0x08

Indirect and Relative Indirect Calls (Class 12)

These two addressing modes for CALL instructions are grouped together in Class 12 since they don't require an operand to be fetched. Field OTA indicates the addressing mode as following:

0: Indirect
1: Relative Indirect

The branch address is given by a general purpose register used as a pointer (p).

[12][0][p][PC]        Example: CALLX  d   ; 0xc071
[12][1][p][PC]                 CALLRX d   ; 0xc171

Homebuilt CPUs WebRing

JavaScript by Qirien Dhaela

Join the ring?

David Brooks, the designer of the Simplex-III homebrew computer, has founded the Homebuilt CPUs Web Ring. To join, drop David a line, mentioning your page's URL. He will then add it to the list.
You will need to copy this code fragment into your page.

Project start date: May 13 of 2009