Register Transfer Notation

Tutorial Video

Register Transfer Notation

Register transfer notation used to describe how data is passed between CPU registers during the execution of instructions. It is written in human readable format as close to assembly language as possible. You will need to be familiar with the basic usage of RTN when answering exam questions or for Computer Science interviews.

The video below shows how transfer notation can be used to describe the steps of the fetch-execute cycle.

Basic Notation

Common Notation

Saving values to registers

ACC <– [MDR]

In the example above the contents of the MDR are copied to the ACC. Note how the arrow points left, just the same as when you assign a variable in Python or similar language.


Incrementing Register Values

CU <– [CU] + 1

In the example above the contents of the CU are incremented by one


Saving values from direct memory addresses

MDR <– [[MAR]]

In the example above the contents of the main memory location referenced in MAR are loaded into the MDR, not the MAR contents themselves. This type of referencing is denoted with double brackets.


Accessing a subset of a register value

MAR <– MDR(L)

The contents of the MDR will often contain both an opcode and an operand but often only part of the value is needed. This can be specified a number of different ways but may use the High Byte(H) / Low Byte(L) to indicate whether to opcode(high byte) or operand(low byte) is to be used. High byte and low byte represent each half of an instruction in a 16bit processor, with the 4 most significant bits being to the left and the least significant bits to the right.


Conditional Operation

R1 : ACC <– [ACC] + 1

In the example above the contents of the ACC are only incremented if the content of R1 is 1(True)


 

Resources

Advanced Notation

Teacher Presentation

Register Transfer Notation Quizizz

 

Past Paper Questions

I couldn’t find any ๐Ÿ™