9608_w20_qp_32
A paper of Computer Science, 9608
Questions:
8
Year:
2020
Paper:
3
Variant:
2

Login to start this paper & get access to powerful tools

1
2
3
4
6
7
8
A car monitoring system provides information to the driver about the car’s performance and alerts the driver to possible problems. • Data about the car’s performance is stored in three memory locations with addresses 601 to 603. • Location 601 contains the distance travelled in kilometres for the current trip as a binary integer. • Location 602 contains the quantity of fuel used in litres for the current trip, as a fixed-point binary number with 5 places before the binary point and three places after the binary point. • The four least significant bits of location 603 are flags used to identify problems with the car, for example, the fuel is low. A flag is set to 1 if there is a problem, or 0 if not. These problems are: • Bit 0 - high engine temperature • Bit 1 - low oil pressure • Bit 2 - low battery • Bit 3 - low fuel • Bits 4 to 7 are not used The current contents of addresses 601 to 603 are: Most significant Least significant State the information that the current contents of addresses 601 to 603 will provide to the driver. A car has low oil pressure and low fuel. It has travelled 80 kilometres and used 7.25 litres of fuel. Complete the contents of the addresses to record this information. The following table shows the assembly language instructions for the car performance monitoring system. There is one general purpose register, the Accumulator (ACC). Table 8.1 Instruction Explanation Label Op code Operand LDM #n Load the number n to ACC LDD Load the contents of the location at the given address to ACC STO Store the contents of ACC at the given address AND #n Bitwise AND operation of the contents of ACC with the numeric operand CMP #n Compare the contents of ACC with the number n JPE Following a compare instruction, jump to or if the compare was True JMP Jump to or : Labels an instruction Note: # denotes immediate addressing B denotes a binary number, for example B01001010 & denotes a hexadecimal number, for example &4A Write assembly language instructions to set the contents of addresses 601 and 602 to zero, and set all four least significant bits of the contents of address 603 to one. Use the instruction set from Table 8.1. A program continuously checks the flags. If a flag is set, the program moves to the error-handling routine at the specified label. For example, if the engine temperature is high, the program jumps to the label for the error-handling routine HIGHTEMP. The error-handling routine instructions have not been provided. A programmer has written most of the instructions for the program in the following table. There are four missing operands. Complete the assembly language program by writing the four missing operands. Label Op code Operand CHECKFLAGS: LDD AND &0F STO TEMP AND &01 CMP &01 JPE HIGHTEMP LDD TEMP AND &02 CMP JPE LOWOIL LDD TEMP AND CMP &04 JPE LOWBATT LDD AND &08 CMP &08 JPE LOWFUEL JMP TEMP: