Processor Instruction Set Overview
Processor Instruction Set Overview
Instruction
Explanation
Opcode Operand
LDM #n Immediate addressing. Load the number n to ACC
LDD <address> Direct addressing. Load the contents of the location at the given address to ACC
Indirect addressing: The address to be used is at the given address. Load the
LDI <address>
contents of this second address to ACC
Indexed addressing. Form the address from <address> + the contents of the
LDX <address>
Index Register. Copy the contents of this calculated address to ACC
LDR #n Immediate addressing. Load the number n to IX
MOV <register> Move the contents of the accumulator to the given register (IX)
STO <address> Store contents of ACC at the given address
ADD <address> Add the contents of the given address to the ACC
INC <register> Add 1 to the contents of the register (ACC or IX)
CMP <address> Compare the contents of ACC with the contents of <address>
JPE <address> Following a compare instruction, jump to <address> if the compare was True
JPN <address> Following a compare instruction, jump to <address> if the compare was False
JMP <address> Jump to the given address
OUT Output to the screen the character whose ASCII value is stored in ACC
END Return control to the operating system
Bits in ACC are shifted logically n places to the left. Zeros are introduced on
LSL #n
the right hand end
Bits in ACC are shifted logically n places to the right. Zeros are introduced on
LSR #n
the left hand end
<address> can be an absolute address or a symbolic address
# denotes a denary number, e.g. #123
S-21-11
The current contents of the main memory and selected values from the ASCII character set
are shown.
365 1
366 3
367 65
368 66
IX 0
S-21-11
Complete the trace table for the program currently in main memory.
1 3 65 66 0
[6]
S-21-11
(b) (i) The Accumulator currently contains the binary number:
0 0 1 1 0 1 0 1
Write the contents of the Accumulator after the processor has executed the following
instruction:
LSL #2
[1]
0 0 1 1 0 1 0 1
Identify the mathematical operation that the following instruction will perform on the
contents of the accumulator.
LSR #3
...........................................................................................................................................
..................................................................................................................................... [1]
S-21-11
2 The table shows part of the instruction set for a processor. The processor has one general purpose
register, the Accumulator (ACC), and an Index Register (IX).
Instruction
Explanation
Opcode Operand
LDM #n Immediate addressing. Load the number n to ACC
Direct addressing. Load the contents of the location at the given address to
LDD <address>
ACC
STO <address> Store contents of ACC at the given address
ADD <address> Add the contents of the given address to the ACC
INC <register> Add 1 to the contents of the register (ACC or IX)
DEC <register> Subtract 1 from the contents of the register (ACC or IX)
CMP <address> Compare the contents of ACC with the contents of <address>
JPE <address> Following a compare instruction, jump to <address> if the compare was True
JPN <address> Following a compare instruction, jump to <address> if the compare was False
JMP <address> Jump to the given address
IN Key in a character and store its ASCII value in ACC
OUT Output to the screen the character whose ASCII value is stored in ACC
END Return control to the operating system
# denotes a denary number, e.g. #123
The current contents of the main memory and selected values from the ASCII character set are:
100 68
101 65
102 100
S-21-12
(a) Complete the trace table for the program currently in main memory when the following
characters are input:
A D
Do not trace the program any further when the third input is required.
[4]
S-21-12
(b) Some bit manipulation instructions are shown in the table:
Instruction
Explanation
Opcode Operand
AND #n Bitwise AND operation of the contents of ACC with the operand
AND <address> Bitwise AND operation of the contents of ACC with the contents of <address>
XOR #n Bitwise XOR operation of the contents of ACC with the operand
XOR <address> Bitwise XOR operation of the contents of ACC with the contents of <address>
OR #n Bitwise OR operation of the contents of ACC with the operand
OR <address> Bitwise OR operation of the contents of ACC with the contents of <address>
<address> can be an absolute address or a symbolic address
# denotes a denary number, e.g. #123
Bit Number 7 6 5 4 3 2 1 0
300 0 1 1 0 0 1 1 0
(i) The contents of memory address 300 represent an unsigned binary integer.
Write the denary value of the unsigned binary integer in memory address 300.
..................................................................................................................................... [1]
(ii) An assembly language program needs to test if bit number 2 in memory address 300
is a 1.
......................... #4
[1]
(iii) An assembly language program needs to set bit numbers 4, 5, 6 and 7 to 0, but keep
bits 0 to 3 with their existing values.
...........................................................................................................................................
..................................................................................................................................... [2]
S-21-12
(a) The following table shows part of the instruction set for a processor. The processor has one
general purpose register, the Accumulator (ACC), and an Index Register (IX).
Instruction
Explanation
Opcode Operand
LDM #n Immediate addressing. Load the number n to ACC
LDD <address> Direct addressing. Load the contents of the location at the given address to
ACC
STO <address> Store the contents of ACC at the given address
INC <register> Add 1 to the contents of the register (ACC or IX)
CMP <address> Compare the contents of ACC with the contents of <address>
JPN <address> Following a compare instruction, jump to <address> if the compare was False
JMP <address> Jump to the given address
IN Key in a character and store its ASCII value in ACC
OUT Output to the screen the character whose ASCII value is stored in ACC
END Return control to the operating system
XOR #n Bitwise XOR operation of the contents of ACC with the operand
XOR <address> Bitwise XOR operation of the contents of ACC with the contents of <address>
AND #n Bitwise AND operation of the contents of ACC with the operand
AND <address> Bitwise AND operation of the contents of ACC with the contents of <address>
OR #n Bitwise OR operation of the contents of ACC with the operand
OR <address> Bitwise OR operation of the contents of ACC with the contents of <address>
LSL #n Bits in ACC are shifted logically n places to the left. Zeros are introduced on
the right hand end
LSR #n Bits in ACC are shifted logically n places to the right. Zeros are introduced on
the left hand end
<address> can be an absolute or symbolic address
# denotes a denary number, e.g. #123
B denotes a binary number, e.g. B01001101
Address Data
100 00001111
101 11110000
102 01010101
103 11111111
104 00000000
W-21-11
Each row of the following table shows the current contents of ACC in binary and the instruction
that will be performed on those contents.
Complete the table by writing the new contents of the ACC after the execution of each
instruction.
11111111 OR 101
10101010 LSR #2
[4]
W-21-11
(a) The following table shows part of the instruction set for a processor. The processor has one
general purpose register, the Accumulator (ACC), and an Index Register (IX).
Instruction
Explanation
Opcode Operand
LDM #n Immediate addressing. Load the number n to ACC
LDD <address> Direct addressing. Load the contents of the location at the given address to
ACC
STO <address> Store the contents of ACC at the given address
INC <register> Add 1 to the contents of the register (ACC or IX)
CMP <address> Compare the contents of ACC with the contents of <address>
JPN <address> Following a compare instruction, jump to <address> if the compare was False
JMP <address> Jump to the given address
IN Key in a character and store its ASCII value in ACC
OUT Output to the screen the character whose ASCII value is stored in ACC
END Return control to the operating system
XOR #n Bitwise XOR operation of the contents of ACC with the operand
XOR <address> Bitwise XOR operation of the contents of ACC with the contents of <address>
OR #n Bitwise OR operation of the contents of ACC with the operand
OR <address> Bitwise OR operation of the contents of ACC with the contents of <address>
AND #n Bitwise AND operation of the contents of ACC with the operand
AND <address> Bitwise AND operation of the contents of ACC with the contents of <address>
LSL #n Bits in ACC are shifted logically n places to the left. Zeros are introduced on
the right hand end
LSR #n Bits in ACC are shifted logically n places to the right. Zeros are introduced on
the left hand end
<address> can be an absolute or symbolic address
# denotes a denary number, e.g. #123
Address Data
100 01010101
101 11110000
102 00001111
103 00000000
104 11111111
W-21-12
(i) In the following table, each row shows the current contents of the ACC in binary and the
instruction that will be performed on those contents.
Complete the table by writing the new contents of the ACC after the execution of each
instruction.
00001111 LSL #4
11111111 OR 102
[4]
(ii) The following table contains five assembly language instruction groups.
Write an appropriate assembly language instruction for each instruction group, using the
given instruction set. The first one has been completed for you.
Arithmetic operations
Compare instructions
[4]
W-21-12
(iii) The opcode LDM uses immediate addressing. The opcode LDD uses direct addressing.
Description ........................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
[2]
W-21-12
(a) The table shows part of the instruction set for a processor. The processor has one general
purpose register, the Accumulator (ACC).
Instruction
Explanation
Opcode Operand
AND #n Bitwise AND operation of the contents of ACC with the operand
XOR #n Bitwise XOR operation of the contents of ACC with the operand
OR #n Bitwise OR operation of the contents of ACC with the operand
LSL #n Bits in ACC are shifted logically n places to the left. Zeros are
introduced on the right hand end
LSR #n Bits in ACC are shifted logically n places to the right. Zeros are
introduced on the left hand end
# denotes a denary number, e.g. #123
(i) Complete the register to show the result after the instruction AND #2 is executed.
Register before: 0 1 1 0 1 1 0 1
Register after:
[1]
(ii) Complete the register to show the result after the instruction OR #8 is executed.
Register before: 0 1 1 0 1 1 0 1
Register after:
[1]
S-22-11
(iii) Complete the register to show the result after the operation LSL #4 is executed.
Register before: 0 1 1 0 1 1 0 1
Register after:
[1]
S-22-11
The table shows part of the instruction set for a processor. The processor has one general purpose
register, the Accumulator (ACC).
Instruction
Explanation
Opcode Operand
AND #n Bitwise AND operation of the contents of ACC with the operand
Bitwise AND operation of the contents of ACC with the contents
AND <address>
of <address>
XOR #n Bitwise XOR operation of the contents of ACC with the operand
Bitwise XOR operation of the contents of ACC with the contents
XOR <address>
of <address>
OR #n Bitwise OR operation of the contents of ACC with the operand
Bitwise OR operation of the contents of ACC with the contents of
OR <address>
<address>
<address> can be an absolute or a symbolic address
# denotes a denary number, e.g. #123
(a) The ACC currently contains the following positive binary integer:
0 1 1 0 0 1 0 1
Write the bit manipulation instruction that would change the binary integer in ACC to:
1 1 1 1 1 1 1 1
(b) The ACC currently contains the following positive binary integer:
0 1 1 0 0 1 0 1
Write the bit manipulation instruction that would change the binary integer in ACC to:
1 0 0 1 1 0 1 0
S-22-12
(c) Convert the following positive binary integer into hexadecimal.
01111110
............................................................................................................................................. [1]
(d) A three-place logical shift to the left is performed on the following positive binary integer.
01111110
............................................................................................................................................. [1]
(e) Convert the denary numbers 127 and 12 to 8-bit binary and then perform the subtraction
12 − 127 in binary.
12 in binary ...............................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
[3]
S-22-12
(a) The table shows part of the instruction set for a processor. The processor has one general
purpose register, the Accumulator (ACC).
Instruction
Explanation
Opcode Operand
LDM #n Immediate addressing. Load the number n to ACC
Direct addressing. Load the contents of the location at the
LDD <address>
given address to ACC
Indirect addressing. The address to be used is at the given
LDI <address>
address. Load the contents of this second address to ACC
<address> can be an absolute or symbolic address
# denotes a denary number, e.g. #123
Address
100 101
101 67
102 104
103 100
104 68
Complete the table by writing the value stored in the accumulator after the execution of each
instruction.
Instruction Accumulator
LDM #103
LDD 102
LDI 103
[3]
S-22-13
(b) The instructions in part (a) are examples of the data movement group.
1 ................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
2 ................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
[4]
S-22-13
(c) The table shows part of the instruction set for a processor. The processor has one general
purpose register, the Accumulator (ACC).
Instruction
Explanation
Opcode Operand
AND Bn Bitwise AND operation of the contents of ACC with the operand
XOR Bn Bitwise XOR operation of the contents of ACC with the operand
OR Bn Bitwise OR operation of the contents of ACC with the operand
B denotes a binary number, e.g. B01001010
Each instruction in the diagram is performed on the data in memory address 200.
Instruction Result
01111101
XOR B11110000
00111101
OR B01010101 11111111
11001101
[3]
S-22-13
The following table shows part of the instruction set for a processor. The processor has one
general purpose register, the Accumulator (ACC), and an Index Register (IX).
Instruction
Explanation
Opcode Operand
LDM #n Immediate addressing. Load the number n to ACC
LDD <address> Direct addressing. Load the contents of the location at the given
address to ACC
LDX <address> Indexed addressing. Form the address from <address> + the
contents of the index register. Copy the contents of this calculated
address to ACC
LDR #n Immediate addressing. Load the number n to IX
STO <address> Store contents of ACC at the given address
ADD <address> Add the contents of the given address to the ACC
ADD #n Add the denary number n to the ACC
INC <register> Add 1 to the contents of the register (ACC or IX)
CMP #n Compare the contents of ACC with number n
JPE <address> Following a compare instruction, jump to <address> if the
compare was True
JPN <address> Following a compare instruction, jump to <address> if the
compare was False
OUT Output to the screen the character whose ASCII value is stored in
ACC
END Return control to the operating system
<address> can be an absolute or a symbolic address
# denotes a denary number, e.g. #123
B denotes a binary number, e.g. B01001101
W-22-11
(a) The current contents of main memory and selected values from the ASCII character set are
given.
(i) Trace the program currently in memory using the trace table.
ASCII
Character
value
49 1
50 2
51 3
52 4
65 A
66 B
67 C
68 D
[4]
W-22-11
(ii) The following instructions are repeated for your reference.
Instruction
Explanation
Opcode Operand
LDD <address> Direct addressing. Load the contents of the location at the given
address to ACC
STO <address> Store contents of ACC at the given address
LDD 100
STO 165
LDD 101
STO 100
LDD 165
STO 101
...........................................................................................................................................
...........................................................................................................................................
[1]
W-22-11
The following table shows part of the instruction set for a processor. The processor has one
general purpose register, the Accumulator (ACC), and an Index Register (IX).
Instruction
Explanation
Opcode Operand
LDM #n Immediate addressing. Load the number n to ACC
LDD <address> Direct addressing. Load the contents of the location at the given address to
ACC
LDX <address> Indexed addressing. Form the address from <address> + the contents of the
index register. Copy the contents of this calculated address to ACC
LDR #n Immediate addressing. Load the number n to IX
STO <address> Store the contents of ACC at the given address
ADD <address> Add the contents of the given address to the ACC
ADD #n Add the denary number n to the ACC
INC <register> Add 1 to the contents of the register (ACC or IX)
JMP <address> Jump to the given address
CMP <address> Compare the contents of ACC with the contents of <address>
CMI <address> Indirect addressing. The address to be used is at the given address. Compare
the contents of ACC with the contents of this second address
JPE <address> Following a compare instruction, jump to <address> if the compare was True
JPN <address> Following a compare instruction, jump to <address> if the compare was False
END Return control to the operating system
<address> can be an absolute or symbolic address
# denotes a denary number, e.g. #123
B denotes a binary number, e.g. B01001101
W-22-12
(a) Trace the program currently in memory using the trace table, stopping when line 90 is
executed for a second time.
77 CMI 102
78 JPE 91
79 CMP 103
80 JPN 84
81 ADD 101
82 STO 101
83 JMP 86
84 INC ACC
85 STO 101
86 LDD 100
87 INC ACC
88 STO 100
89 INC IX
90 JMP 76
91 END
100 0
101 0
102 112
103 4
110 1
111 4
112 0
[5]
W-22-12
(b) The following table shows another part of the instruction set for the processor.
Instruction
Explanation
Opcode Operand
AND #n Bitwise AND operation of the contents of ACC with the operand
AND <address> Bitwise AND operation of the contents of ACC with the contents of <address>
XOR #n Bitwise XOR operation of the contents of ACC with the operand
XOR Bn Bitwise XOR operation of the contents of ACC with the binary number n
XOR <address> Bitwise XOR operation of the contents of ACC with the contents of <address>
OR #n Bitwise OR operation of the contents of ACC with the operand
OR <address> Bitwise OR operation of the contents of ACC with the contents of <address>
LSL #n Bits in ACC are shifted logically n places to the left. Zeros are introduced on
the right-hand end
LSR #n Bits in ACC are shifted logically n places to the right. Zeros are introduced on
the left-hand end
<address> can be an absolute or symbolic address
# denotes a denary number, e.g. #123
B denotes a binary number, e.g. B01001101
50 01001101
51 10001111
0 1 0 1 0 0 1 1
Show the contents of the ACC after the execution of the following instruction.
XOR B00011111
...........................................................................................................................................
...........................................................................................................................................
[1]
W-22-12
(ii) The current contents of the ACC are:
0 1 0 1 0 0 1 1
Show the contents of the ACC after the execution of the following instruction.
AND 50
...........................................................................................................................................
...........................................................................................................................................
[1]
0 1 0 1 0 0 1 1
Show the contents of the ACC after the execution of the following instruction.
LSL #3
...........................................................................................................................................
...........................................................................................................................................
[1]
0 1 0 1 0 0 1 1
Show the contents of the ACC after the execution of the following instruction.
OR 51
...........................................................................................................................................
...........................................................................................................................................
[1]
W-22-12
The following table shows part of the instruction set for a processor. The processor has one
general purpose register, the Accumulator (ACC), and an Index Register (IX).
Instruction
Explanation
Opcode Operand
LDM #n Immediate addressing. Load the number n to ACC
LDD <address> Direct addressing. Load the contents of the location at the given
address to ACC
LDX <address> Indexed addressing. Form the address from <address> + the contents
of the index register. Copy the contents of this calculated address to
ACC
LDR #n Immediate addressing. Load the number n to IX
MOV <register> Moves the contents of the accumulator to the given register (IX)
STO <address> Store contents of ACC at the given address
ADD <address> Add the contents of the given address to the ACC
ADD #n Add the denary number n to the ACC
SUB #n Subtract the denary number n from the ACC
INC <register> Add 1 to the contents of the register (ACC or IX)
JMP <address> Jump to the given address
CMP #n Compare the contents of ACC with number n
CMI <address> Indirect addressing. The address to be used is at the given address.
Compare the contents of ACC with the contents of this second
address
JPE <address> Following a compare instruction, jump to <address> if the compare
was True
JPN <address> Following a compare instruction, jump to <address> if the compare
was False
OUT Output to the screen the character whose ASCII value is stored in
ACC
END Return control to the operating system
<address> can be an absolute or a symbolic address
# denotes a denary number, e.g. #123
B denotes a binary number, e.g. B01001101
W-22-13
(a) The current contents of main memory and selected values from the ASCII character set are
given.
(i) Trace the program currently in memory using the trace table.
100 1
101 0
110 97
111 98
112 97
ASCII Character
value
49 1
50 2
51 3
52 4
65 A
66 B
67 C
68 D
[4]
W-22-13
(ii) Explain the purpose of relative addressing in an assembly language program.
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
..................................................................................................................................... [2]
(b) The following table shows another part of the instruction set for the processor.
Instruction
Explanation
Opcode Operand
AND #n Bitwise AND operation of the contents of ACC with the operand
AND Bn Bitwise AND operation of the contents of ACC with the binary number n
AND <address> Bitwise AND operation of the contents of ACC with the contents of <address>
XOR #n Bitwise XOR operation of the contents of ACC with the operand
XOR <address> Bitwise XOR operation of the contents of ACC with the contents of <address>
OR #n Bitwise OR operation of the contents of ACC with the operand
OR Bn Bitwise OR operation of the contents of ACC with the binary number n
OR <address> Bitwise OR operation of the contents of ACC with the contents of <address>
LSL #n Bits in ACC are shifted logically n places to the left. Zeros are introduced on
the right-hand end
LSR #n Bits in ACC are shifted logically n places to the right. Zeros are introduced on
the left-hand end
<address> can be an absolute or a symbolic address
# denotes a denary number, e.g. #123
B denotes a binary number, e.g. B01001101
0 0 1 1 0 1 1 0
Show the contents of the ACC after the execution of the following instruction.
AND B01001100
...........................................................................................................................................
...........................................................................................................................................
[1]
W-22-13
(ii) The current contents of the ACC are:
1 0 0 1 0 1 0 1
Show the contents of the ACC after the execution of the following instruction.
OR B01001111
...........................................................................................................................................
...........................................................................................................................................
[1]
1 0 0 1 1 1 0 1
Show the contents of the ACC after the execution of the following instruction.
LSR #2
...........................................................................................................................................
...........................................................................................................................................
[1]
...................................................................................................................................................
............................................................................................................................................. [1]
W-22-13