410 likes | 489 Views
Computer Systems 2009-2010. Week 7: Looping and Input/Output with 3-bit Alma Whitfield. 3 bits are available for the op-codes with which 8 different patterns of 0s and 1s are possible. Quick Quiz. 1. How many different instructions does 3-bit use? 3 8 10 16.
E N D
Computer Systems2009-2010 Week 7: Looping and Input/Output with 3-bit Alma Whitfield
3 bits are available for the op-codes with which 8 different patterns of 0s and 1s are possible Quick Quiz 1. How many different instructions does 3-bit use? • 3 • 8 • 10 • 16
Each location can hold one instruction. Each instruction is 8 bits long Quick Quiz 2. How many bits can each memory location hold? • 3 • 8 • 10 • 16
Abbreviation for operation code Quick Quiz 3. Each instruction is split into two sections, the first section is known as what? • The operand • The opinstruction • The op-code • The opexecute
The part that identifies what the op-code is to act upon Quick Quiz 4. Each instruction is split into two sections, the second section is known as what? • The operand • The opinstruction • The op-code • The opexecute
Quick Quiz 5. Which CPU register contains the address of the next instruction to be executed? • Accumulator • Instruction Register • Program Counter • Index Register
Quick Quiz 5. Which CPU register contains values brought from memory and perhaps added to or subtracted from by ADD and SUB instructions? • Accumulator • Instruction Register • Program Counter • Index Register
Quick Quiz 5. Which CPU register holds a copy of the instruction currently being executed? • Accumulator • Instruction Register • Program Counter • Index Register
Repetition in 3-bit programs • The instructions considered so far are: • LDD • LDI • STD • ADD • SUB • None of these enable instructions to be executed repeatedly inside loops
Repetition and selection in 3-bit programs • These next instructions provide these facilities • JMP - repetition • JEZ - repetition and selection
Flow chart START ADD 16 Repetition in 3-bit programs • An infinite loop • Demo
JMP • JMP is the Jump command. • It changes the sequence of execution of the program by changing the contents of the program counter to the address specified • E.g. JMP 10, will cause the next instruction to be fetched from location with address 10 instead of the next one after the current address
Repetition and selection in 3-bit programs • An finite loop • Demo jez.tbt
Repetition and selection in 3-bit programs Flow chart START LDD 16 SUB 17 STD 16 True AC = 0? False STP
JEZ • JEZ is similar to JMP but it will only jump if the AC is equal to zero • Jump if Equal to Zero • Thus selection is determined by whether the accumulator contains zero • All computers make decisions by comparing numbers. 3-bit does it by comparing the number in the accumulator with zero
JEZ • Given the following program ... • ... what will happen?
We have now covered all eight instructions: the instruction set
CPU • The CPUs processing power is measured with a clock speed. • The higher the speed the quicker the CPU will process instructions • MHz • GHz
3-bit and the clock speed • 3-bit has a clock speed too. • By default it is set to 0.3 Hz • 1 Hz is a frequency of one instruction per second • so 0.3 Hz means each instruction takes about 3 seconds • Very slow, this is deliberate so that you can see the instructions being executed • real computers can execute billions of instructions per second • The clock speed can be set to: • 0.2 Hz • 0.3 Hz • 10 Hz • 50 Hz
Inputting and outputting data • Outputting Data • Inputting Data • Using the hard disc • Saving / Opening
Memory mapped input and output • Input concerns getting data into the computer • Output concerns getting data/information out of the computer • 3-bit uses memory mapping to provide input and output • Input is achieved by reading from a specific memory locations • Output is achieved by writing to specific memory locations
Today • Location 31 Keyboard • Location 30 Printer • Location 29 Disk Buffer
Next Week • Location 18 – 25 Display memory • Location 26 Screen Mode
Week after Next • Location 27 and 28 Network Interface Card
Keyboard • LDD 31 will copy what is in address 31 to the accumulator. • 31 is mapped to an input device, in this case the keyboard
LDD 31 • Effectively, LDD 31 will: • ask the user for a value • store the value in address 31 • copy the value from memory address 31 to the accumulator
STD 31? Memory Address 31 is mapped to an input device, what happens if you try STD 31? • 3BIT will perform an illegal operation and close down • Nothing will happen • The value in the accumulator will be copied to address location 31 as normal • 31 will be copied into the accumulator
LDD 31 If there is a value already present in location 31, will it still ask the user for input or will it use the value already there? • Ask • Use
Outputting: STD 30 • Use STD 30 to send the contents of the accumulator to the printer
Outputting: STD 30 • Effectively, STD 30 will: • copy what is currently in the accumulator to memory address 30 • copy what is in memory address 30 to the printer This button will clear any output occurred
LDD 30? Memory Address 30 is mapped to an output device, what happens if you try LDD 30? • 3BIT will perform an illegal operation and close down • Nothing will happen • The value in the accumulator will be copied to address 30 • The value in memory address 30 will be copied into the accumulator
The Hard Disc Your 3-bit programs can be saved and loaded as required You can also edit and open data files Contents of the data file are shown in this window
LDD 29 • Data file input memory is mapped to: • Location 29 • Data files work using positional pointers • For the purpose of 3-bit, the pointer starts at the beginning of the file and moves down one line each time data is fetched
Data • LDD 29 • This will fetch data from the data file • Put the data into memory address 29 • Copy the value in location 29 into the accumulator
STD 29? Memory Address 29 is mapped to an input device, what happens if you try STD 29? • 3BIT will perform an illegal operation and close down • Nothing will happen • The value in the accumulator will be copied to address 29 as normal • 29 will be copied into the accumulator
What ends up in the AC? 0 LDD 29 1 STD 30 2 STP Data File 15 33 65 0 29 0 15 30
What about now? 0 LDD 29 1 STD 30 2 JEZ 4 3 JMP 0 4 STP Data File 15 33 65 0 29 0 15 30
What have we covered? • STD 30 sends to printer • LDD 31 gets data from keyboard • We can save programs to hard disc • We can load programs from hard disc • We can read a data file with LDD 29