240 likes | 376 Views
Chapter 7. Low-Level Programming Languages. Chapter Goals. List the operations that a computer can perform Discuss the relationship between levels of abstraction and the determination of concrete algorithm steps Describe the important features of the Pep/7 virtual machine
E N D
Chapter 7 Low-Level Programming Languages
Chapter Goals • List the operations that a computer can perform • Discuss the relationship between levels of abstraction and the determination of concrete algorithm steps • Describe the important features of the Pep/7 virtual machine • Distinguish between immediate mode addressing and direct addressing
Chapter Goals • Convert a simple algorithm into a machine-language program • Distinguish between machine language and assembly language • Describe the steps in creating and running an assembly-language program • Convert a simple algorithm into an assembly-language program
Chapter Goals • Distinguish between instructions to the assembler and instructions to be translated • Describe two approaches to testing • Design and implement a test plan for a simple assembly-language program
Computer Operations • A computer is a programmable electronic device that can store, retrieve, and process data • Data and instructions to manipulate the data are logically the same and can be stored in the same place • Store, retrieve, and process are actions that the computer can perform on data
Machine Language • Machine languageThe instructions built into the hardware of a particular computer • Initially, humans had no choice but to write programs in machine language because other programming languages had not yet been invented
Machine Language • Every processor type has its own set of specific machine instructions • The relationship between the processor and the instructions it can carry out is completely integrated • Each machine-language instruction does only one very low-level task
Pep/7: A Virtual Computer • Virtual computer A hypothetical machine designed to contain the important features of real computers that we want to illustrate • Pep/7 • designed by Stanley Warford • has 32 machine-language instructions • We are only going to examine a few of these instructions
Features in Pep/7 • The memory unit is made up of 4,096 bytes • Pep/7 Registers/Status Bits Covered • The program counter (PC) (contains the address of the next instruction to be executed) • The instruction register (IR) (contains a copy of the instruction being executed) • The accumulator (A register) • Status bit N (1 if A register is negative; 0 otherwise) • Status bit Z (1 if the A register is 0; and 0 otherwise)
Features in Pep/7 Figure 7.1 Pep/7’s architecture
Instruction Format • There are two parts to an instruction • The 8-bit instruction specifier • And optionally, the 16-bit operand specifier Figure 7.2 The Pep/7 instruction format
Instruction Format • The instruction specifier is made up of several sections • The operation code • The register specifier • The addressing-mode specifier
Instruction Format • The operation code specifies which instruction is to be carried out • The 1-bit register specifier is 0 if register A (the accumulator) is involved, which is the case in this chapter. • The 2-bit addressing-mode specifier says how to interpret the operand part of the instruction
Instruction Format Figure 7.3 Difference between immediate-mode and direct-mode addressing
Some Sample Instructions Figure 7.3 Subset of Pep/7 instructions
A Program Example • Let’s write "Hello" on the screen Page 200
Pep/7 Simulator • A program that behaves just like the Pep/7 virtual machine behaves • To run a program, we enter the hexadecimal code, byte by byte with blanks between each Page 202
Assembly Language • Assembly languages A language that uses mnemonic codes to represent machine-language instructions • The programmer uses these alphanumeric codes in place of binary digits • A program called an assembler reads each of the instructions in mnemonic form and translates it into the machine-language equivalent
A New Program Page 213
Our Completed Program Page 214 7-22
Status Bits Status bits allow a program to make a choice. BRLT Set the PC to the operand, if N is 1 (A register is less than zero) BREQ Set the PC to operand, if Z is 1 (A register is equal to zero)
Testing • Test planA document that specifies how many times and with what data the program must be run in order to thoroughly test the program • A code-coverage approach designs test cases to ensure that each statement in the program is executed. • Adata-coverageapproach designs test cases to ensure that the limits of the allowable data are covered.