1.1.1a ALU, CU, Registers and Buses

Program counter 

Controls what happens next, hold the next instruction to be executed. 

Closer relationship to MAR – address held here is copied to MAR at the start of each cycle 

Memory Address Register 

Holds the address of the to be fetched or written to 

Sends the address to memory down the address bus 

Memory Data Register 

Temporarily stores data that has travelled from memory through the data bus 

Like a bus stop 

Current Instruction Register 

Holds the current instruction, contains the opcode and operands of the current instruction 

Decodes the instruction - Opcode is what you are doing, Operand is what you are doing it to 

 

Arithmetic and logic unit 

Performs arithmetic and logical operations 

Bitwise shift operations, Boolean logic. 

Uses the Accumulator to temporarily store instructions 

Accumulator 

General purpose register to store data temporarily, 

The more general purpose registers, the more calculations and data the CPU can process efficiently 

 

Assembly code mnemonics: 

ADD: add 
SUB: subtract 
STA: store 
LDA: load 
BRA: branch always 
BRZ: branch if zero 
BRP: branch if positive 
INP: input 
OUT: output 
HLT: end program 
DAT: data location