This programming language may be used to instruct a computer to perform a task.
If you know SSEM, please write code for some of the tasks not implemented in SSEM.
The Manchester Small-Scale Experimental Machine (SSEM or "Manchester Baby"), constructed in 1948, was the world's first stored-program electronic computer. Although its storage space (32 words of 32 bits each) was too limited for it to be a really practical general-purpose machine, the SSEM is of considerable historical interest.
The machine could only be programmed in pure binary machine code from the front panel. No assembly language was ever specified for it, but there was a more or less standardized mnemonic notation used when drafting programs on a piece of paper before entering them into the machine.
Each storage address could hold either a signed 32-bit integer (using two's complement for negative values) or an instruction word. Unlike most later digital computers, the SSEM's binary notation has the least significant bit first: 1 is one, 01 is two, 001 is four, etc. In an instruction word, the leftmost five bits stored the address of the operand and bits 13-15 stored the instruction itself. The operand was always a storage address and never an immediate value, even in the case of jumps: the jump target needed to be stored in a separate word, to which the jump would refer. The instruction set consisted of:
|000 <operand> to CI||load the number stored at address operand into the Current Instruction register. CI would then be incremented, so this is equivalent to goto store[operand] + 1|
|100 Add <operand> to CI||relative jump ahead by one more than the number stored at operand (because CI is incremented anyway after the instruction has been executed)|
|010 -<operand> to c||load the negation of the number stored at operand into the accumulator|
|110 c to <operand>||store the number in the accumulator at address operand|
|001 Sub. <operand>||subtract the number stored at operand from the number stored in the accumulator, leaving the result in the accumulator|
|101 Sub. <operand>||identical to 001|
|011 Test||skip the next instruction if the number in the accumulator is negative|
Pages in category "SSEM"
The following 24 pages are in this category, out of 24 total.