Category:SSEM: Difference between revisions

m
no edit summary
mNo edit summary
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 4:
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 wordstorage address could storehold 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:
<table border=1>
<tr>
<td><tt>000 <operand> to CI</tt></td><td>load the number stored at address <tt>operand</tt> into the Current Instruction register. CI would then be incremented, so this is equivalent to <tt>goto store[operand] + 1</tt></td>
</tr>
<tr>
<td><tt>100 Add <operand> to CI</tt></td><td>relative jump ahead by one more than the number stored at <tt>operand</tt> + 1 (because CI is incremented anyway after the instruction has been executed)</td>
</tr>
<tr>
519

edits