| Octal Order Code | Nmenonic | Execution |
|---|---|---|
| 110 (Nt=0) |
SLC X N(M) | Shift Left Circular (Single Length)
The SLC instruction regards the contents of X as a 24-bit pattern. The pattern is circulated to the left the number of places specified in the operand. As a bit 'leaves' the most significant end of X, it 're-appears' in the space simultaneously created at the least significant end. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 110 (Nt=1) |
SLL X N(M) | Shift Left Logical (Single Length)
The SLL instruction regards the contents of X as a 24-bit pattern. The pattern is shifted to the left the number of places specified in the operand, and any bits which overflow at the most significant end of X are lost. Spaces, created at the least significant end are filled with zeros. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 110 (Nt=2) (Nt=3) |
SLA X N(M) | Shift Left Arithmetic (Single Length)
The SLA instruction regards the contents of X as a signed single length number. Bits 0 to 23 of X are shifted to the left the number of places specified in the operand. Zeros are propagated at the least significant end of X in the spaces created by the shift. C is not used and will be left clear. V will be set if B0 of X undergoes any change during shifting (i.e. if the sign of the number changes). Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 111 (Nt=0) |
SLC XX* N(M) | Shift Left Circular (Double Length)
The SLC instruction regards the contents of XX* as a 48-bit pattern. The pattern is circulated to the left the number of places specified in the operand. As a bit 'leaves' the most significant end of X, it 're-appears' in the space simultaneously created at the least significant end of X*. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 111 (Nt=1) |
SLL XX* N(M) | Shift Left Logical (Double Length)
The SLL instruction regards the contents of XX* as a 48-bit pattern. The pattern is shifted to the left the number of places specified in the operand, and any bits which overflow at the most significant end of X are lost. Spaces, created at the least significant end of X* are filled with zeros. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 111 (Nt=2) (Nt=3) |
SLA XX* N(M) | Shift Left Arithmetic (Double Length)
The SLA instruction regards the contents of XX* as a signed double length number. The sign bit (B0) of X* is left unchanged if N(M) = 0, otherwise it is cleared, bits being carried from B1 of X* to B23 of X. B0 to B23 of X, B1 to B23 of X* are shifted to the left the number of places specified in N(M). Zeros are propagated at the least significant end of X* in the spaces created by the shift. If the shift is for more than 23 positions, zeros will also be propagated at the least significant end of X. C is not used and will be left clear. V will be set if B0 of X undergoes any change during shifting (i.e. if the sign of the number changes). Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 112 (Nt=0) |
SRC X N(M) | Shift Right Circular (Single Length)
The SRC instruction regards the contents of X as a 24-bit pattern. The pattern is circulated to the right the number of places specified in the operand. As a bit 'leaves' the least significant end of X, it 're-appears' in the space simultaneously created at the most significant end. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 112 (Nt=1) |
SRL X N(M) | Shift Right Logical (Single Length)
The SRL instruction regards the contents of X as a 24-bit pattern. The pattern is shifted to the right the number of places specified in the operand, and any bits which overflow at the least significant end of X are lost. Spaces, created at the most significant end are filled with zeros. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 112 (Nt=2) |
SRA X N(M) | Shift Right Arithmetic (Single Length)
The SRA instruction regards the contents of X as a signed single length number. Bits 0 to 23 of X are shifted to the right the number of places specified in the operand. B0 (the sign bit) is propagated at the most significant end of X, thus presenting an arithmetically correct answer. Bits shifted beyond B23 are lost except that the value of the final bit so shifted is added back into the result to round off the answer. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 112 (Nt=3) |
SRAV X N(M) | Special Shift Right (Single Length)
When V is clear, the SRAV instruction has exactly the same effect as the SRA instruction. When V is set, the SRAV instruction clears V (but see below). Bits 0 to 23 of X are shifted to the right the number of places specified in N(M). The inverse of the sign bit (B0) is propagated at the most significant end of the word. Bits shifted beyond B23 are lost except that the value of the final bit so shifted is added back into the result to round it off. C is not used and will be left clear. V is used and will be left clear, except that if the least significant ten bits of N + M are zero, V will be left unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 113 (Nt=0) |
SRC XX* N(M) | Shift Right Circular (Double Length)
The SRC instruction regards the contents of XX* as a 48-bit pattern. The pattern is circulated to the right the number of places specified in the operand. As a bit 'leaves' the least significant end of X*, it 're-appears' in the space simultaneously created at the most significant end of X. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 113 (Nt=1) |
SRL XX* N(M) | Shift Right Logical (Double Length)
The SRL instruction regards the contents of XX* as a 48-bit pattern. The pattern is shifted to the right the number of places specified in the operand, and any bits which overflow at the least significant end of X* are lost. Spaces, created at the most significant end of X are filled with zeros. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 113 (Nt=2) |
SRA XX* N(M) | Shift Right Arithmetic (Double Length)
The SRA instruction regards the contents of XX* as a signed double length number. The sign bit (B0) of X* is left unchanged if N(M) = 0, otherwise it is cleared, bits being carried from B23 of X to B1 of X*. B0 to B23 of X, B1 to B23 of X* are shifted to the right the number of places specified in N(M). B0 the sign bit is propagated at the most significant end of X (and X* in case of a shift of more than 23 places), thus presenting an arithmetically correct answer. Bits shifted beyond B23 of X* are lost and there is no rounding. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 113 (Nt=3) |
SRAV XX* N(M) | Special Shift Right (Double Length)
When V is clear, the SRAV instruction has exactly the same effect as the SRA instruction. The SRAV clears V (but see below). B0 of X* is left unchanged if N(M) = 0, otherwise it is cleared, bits being carried from B23 of X to B1 of X*. B0 to B23 of X, B1 to B23 of X* are shifted to the right the number of places specified in N(M). The inverse of the sign bit (B0 of X) is propagated at the most significant end of X (and of X* in the case of a shift of more than 23 places). Bits shifted beyond B23 of X* are lost and there is no rounding. C is not used and will be left clear. V is used and will be left clear, except that if the least significant ten bits of N + M are zero, V will be left unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 114 | NORM X N(M) | Normalise a Single-Length Floating-Point
Number The NORM instruction normalizes a floating-point number whose single length argument is held in X, and N(M) specifies the value of the exponent plus 256. The result is left as a floating-point number, with single-length argument in X and X*. The effects of the instruction may be divided into the following steps:
If the final value of N(M) is greater than 511, then the Overflow register V is set. C is not used and will be left clear. V is used, see above. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 115 | NORM XX* N(M) | Normalise a Double-Length Floating-Point
Number The NORM instruction normalizes a floating-point number whose double length argument is held in X and X*, and N(M) specifies the value of the exponent plus 256. The result is left as a floating-point number, with double-length argument in X and X*. The effects of the instruction may be divided into the following steps:
If the final value of N(M) is greater than 511, then the Overflow register V is set. C is not used and will be left clear. V is used, see above. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 116 | MVCH X N(M) | Move N Characters from the Character Address
specified in X to the Character Address specified
in X* The MVCH instruction copies the character whose address is specified in X into the character position whose address is specified in X*. Both character addresses are then incremented by one and the procedure is repeated until a total of N(M) (maximum count is 511) characters have been transferred. After execution, the addresses in X and X* will be left pointing to the character following the last character transferred. A count of zero will cause 512 characters to be moved. When operating in compact mode, the least significant 15 bits of X and X* are taken as specifying the word address; when in extended data mode, the least significant 22 bits are taken. In either case, B0 and B1 are taken as specifying the character position within the word. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |
| 117 | SMO N(M) | Supplementary Modifier to Operand of Next
Instruction The SMO instruction causes the least significant 15 bits (compact mode) or 22 bits (extended data mode) of the word whose address is specified by N(M) to be used as a modifier in the next instruction. This SMO modifier will supplement any modifier which the instruction may already be using. It is illegal to have a SMO instruction immediately following a SMO instruction or for an OBEY instruction ultimately to address a SMO if it is itself modified by means of a SMO instruction. Otherwise, any instruction can be modified using SMO, although there may be no effect (e.g. NULL). If a SMO instruction precedes an OBEY instruction, the modification is applied to the OBEY instruction, not to the instruction obeyed. C is not used and will be left clear. V is not used and remains unchanged. Modification This statement has an M field. When modified, the least significant 15 bits of N + M are taken as the operand. In the extended data mode, the least significant 22 bits of N + M are taken as the operand. |