University of Texas Pan AmDr. John P. Abraham Information Technology Computer Architecture Dr. John...

122
University of Texas Pan Am Dr. John P. Abraham Information Technology Computer Architecture Dr. John P. Abraham

Transcript of University of Texas Pan AmDr. John P. Abraham Information Technology Computer Architecture Dr. John...

University of Texas Pan Am Dr. John P. Abraham

Information Technology

Computer ArchitectureDr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

Computer Architecture

• The computer architecture is a branch of study that deals with

• designing of processors• their instruction sets• organizing various components to facilitate

most efficient communication between them• without significantly increasing cost.

University of Texas Pan Am Dr. John P. Abraham

Digital Computers

• Analog• Digital

– Distinct binary signals

• Instruction set– Predetermined by circuitry

University of Texas Pan Am Dr. John P. Abraham

CISC/RISC

• CISC– More instructions in the instruction set

• Easier for programmers• More complex and slower machines

• RISC– Simpler instructions

– Fewer instructions

University of Texas Pan Am Dr. John P. Abraham

A computer

• Input/output • Processor

– ALU

– Control Unit

– Registers

– Connecting busses

University of Texas Pan Am Dr. John P. Abraham

Basic Operation of a CPU

• Obtain instructions kept in the memory, one at a time

• Decode• Execute• Write the result back

University of Texas Pan Am Dr. John P. Abraham

Binary number system• Calculate value of 11110101 in decimal • Number from right to left Digit value Value

• 1 1 1 x 1 = 1• 0 2 0 x 2 = 0• 1 4 1 x 4 = 4• 0 8 0 x 8 = 0• 1 16 1 x 16 = 16• 1 32 1 x 32 = 32• 1 64 1 x 64 = 64• 1 128 1 x 128 = 128 • Total 245

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

Signed binary• signed-magnitude

• The most significant bit (MSB) is set aside to indicate the sign, zero for positive and 1 for negative.

• One’s-complement• The MSB of a negative number will begin with a one

and a positive number with a zero. 0011 will represent +3 and 1100 (complement of the positive 3) will represent -3.

• Two’s-complement. • a negative number is represented by complementing the

bits of the positive number and adding a 1. a –3 is represented as 1101 (complement of 0011 is 1100, and add a 1).

University of Texas Pan Am Dr. John P. Abraham

Two’s complement• a binary number’s MSB is a zero then it is a

positive and no further action is necessary. • If the MSB is 1, it is a negative number. • Suppose the number is 10000001, we know it is

a negative number. Complement the bits and add a 1, we get 01111110 +1 = 01111111 which is 127.

• The sign is already determined to be negative it is –127.

University of Texas Pan Am Dr. John P. Abraham

ASCII Character Set• a specific binary sequence must be established for

representing the alphabets, numeric symbols and other special symbols that are in use in English as well as other languages of the world.

• An agreement was reached in 1968 to represent all English alphabets

• The standard ASCII character set consists of 128 decimal numbers ranging from zero through 127

• The Extended ASCII Character Set also consists of 128 decimal numbers and ranges from 128 through 255 representing additional special, mathematical, graphic, and some foreign characters.

University of Texas Pan Am Dr. John P. Abraham

ASCII Character Set• The first 32 (0 to 31) ASCII codes are for

special purposes such as line feed, carriage return, form feed, bell, etc.

• The ASCII can only represent languages that use Roman Alphabets such as English.

• To represent an ASCII character we need 7 bits and an extended ASCII character requires 8 bits; therefore, we set aside a byte for it and a byte happens to be the smallest addressable memory unit.

University of Texas Pan Am Dr. John P. Abraham

Unicode

• Unicode provides a unique number for every character regardless of the platform, the program, or the language.

• Unicode uses two bytes to represent one character. This means we can have 65,536 possible symbols in a given alphabet.

• encoding scheme that IBM mainframes used is the Extended Binary Coded Decimal Interchange Code (EBCDIC).

University of Texas Pan Am Dr. John P. Abraham

Numbering schemes

• Binary• Octal

– Since the basic addressable memory unit is a byte an octal (base eight) makes sense and some early computers used the octal system. Octal numbering system uses 8 symbols, 0 to 7. The next number after 7 is 10.

• Hexadecimal

University of Texas Pan Am Dr. John P. Abraham

Hexadecimal• Hexadecimal (base 16) numbers give more compactly

written numbers and programmers use it very often.• It uses 15 symbols 0-9 and A-F. The A stands for

decimal 10, B for 11, C for 12, D for 13, E for 14 and F for 15.

• These 15 symbols can be represented using four bits or a nibble. For example , 1111 will represent F (decimal 15).

• Two hexadecimal digits can be represented in one byte; FF representing 255.

• After the F, the next number is 10 (decimal 16).

University of Texas Pan Am Dr. John P. Abraham

Boolean Operations

• The mathematics used in digital systems is the special case of Boolean Algebra.– the variables only assumes only two values (0 or

1). • The basic operations of Boolean Algebra are:

NOT, AND, OR, XOR, NAND and NOR.

University of Texas Pan Am Dr. John P. Abraham

Not gate

• The NOT operation gives the inverse (complement) of a Boolean variable. For example NOT(True) is false.

University of Texas Pan Am Dr. John P. Abraham

AND gate• The AND operation is a logical multiplication. • An example: IF US CITIZEN AND AGE GREATER

THAN OREQUAL TO 18 THEN ELIGIBLE TO VOTE.

• There are two inputs, citizenship and age, and one output, voting eligibility, in this example.

• In a situation where a person is a US citizen and 20 years of age, the inputs will be TRUE and TRUE. The output also will be TRUE. If one or both of the inputs are FALSE then the output will be FALSE.

University of Texas Pan Am Dr. John P. Abraham

AND gate

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

OR gate

• The OR operation is a local addition. • An example: If grade == 90 or grade >90 then

Grade = ‘A’. • In an OR operation only one condition has to be

true for the output to be true.

University of Texas Pan Am Dr. John P. Abraham

OR gate

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

XOR gate

University of Texas Pan Am Dr. John P. Abraham

NOR Gate

University of Texas Pan Am Dr. John P. Abraham

Half Adder#include <iostream.h> void main() { short x,y, sum, carry; bool a,b,c,d; cout <<"Enter two bits to add seperated by a space ";cin >> x>>y; a=x==1; b=y==1; //actually c++ assigns 0 for false and 1 for true,

we could have read these directly; c=(a||b) && !(a&&b); d=(a&&b); 9sum=c?1:0; //if c is true then sum gets 1 else sum gets 0 carry=d?1:0; cout <<x <<"+"<<y <<"="<<carry<<sum<<endl; if (a = true) cout <<"it is true"; if (a) cout << "it is ture"; }

University of Texas Pan Am Dr. John P. Abraham

Computer Programming Languages

• Computers perform operations such as moving data and data manipulation by activating switches and gates.

• Instructions to do that also must be given in the form of 1s and 0s or on and off.

• When we program computers using just ones and zeros we are using the “machine language”.

University of Texas Pan Am Dr. John P. Abraham

Structure of 8088 Microprocessor

• execution unit (EU) • the bus interface unit (BIU)

University of Texas Pan Am Dr. John P. Abraham

Execution Unit (EU)

• the control logic for decoding and executing instructions

• ALU for performing arithmetic and logic operations

• A set of general purpose registers

University of Texas Pan Am Dr. John P. Abraham

Bus interface unit (BIU)• A bus is a set of wires that connects the

various components of a computer together and transfers signals and data between them.

• The number of lines a bus has depends on the architecture of the microprocessor and is directly proportional to the CPU speed.

– ControlDataAddress

University of Texas Pan Am Dr. John P. Abraham

3 Functions of the BUS

• memory address transfers, data transfers and control signal transfers.

• One set of physical wires may handle all three operations one at a time, or there may be different sets of wires for each, the address bus, data bus and the control bus.

• If we say that the hypothetical processor is 16 bit, then 16 bits of data should be transferred at the same time.

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

Major microprocessor components

• PC- Program Counter• MBR- Memory Buffer Register• MAR- Memory Address Register• ALU- Arithmetic Logic Unit• IR- Instruction Register• General Purpose Registers.

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

Microprocessor operation

• When a program begins execution, the program counter (PC, a register inside the CPU) has the address of the next instruction to fetch.

• this address is placed there initially by the operating system and updated automatically by the CPU.

• There are three additional registers, the instruction register (IR), memory address register (MAR) and the memory buffer register (MBR) that work together to fetch the instruction.

University of Texas Pan Am Dr. John P. Abraham

Microprocessor Operation (2)

• The address from the PC is moved to the MAR.– The reason for this is that the address bus is

connected to the MAR and all addresses issued must go through this register.

• Then the address contained in the MAR is placed on the address bus and the READ line is asserted on the control bus.

University of Texas Pan Am Dr. John P. Abraham

Microprocessor Operation(3)

• The memory whose address is found on the address bus places its contents on the data bus.

• The only register that is connected to the data bus is the MBR, and all data should go in an out through this register.

• Thus the data on the data bus is copied into the MBR. The instruction is now copied on to the IR to free up the MBR to handle another transfer.

University of Texas Pan Am Dr. John P. Abraham

Microprocessor Operation(4)

• The contents of the PC will be now incremented by one instruction.

• The instruction is then decoded and executed.

• In practice, more than one instruction is read during an instruction cycle. Additional instructions are kept in temporary storage registers such as the Instruction Buffer Register (IBR).

University of Texas Pan Am Dr. John P. Abraham

The Program Counter

• The size of the PC depends on the number of address lines of the CPU.

• Let us assume that the CPU has 16 address lines. Then the PC should be able to address 65,536 locations.

• Initially the CPU starts its operation based on the contents of the PC. Assume that initially the PC contains the value 0000h where “h” stands for hexadecimal notation.

University of Texas Pan Am Dr. John P. Abraham

The Fetch Cycle

• MAR holds the address of the memory location from which the instruction is to be fetched.

• At the start up, the CPU performs an instruction fetch.

• Instruction fetch involves reading the instruction stored in the memory.

• The location from which the instruction is read is derived from the PC.

University of Texas Pan Am Dr. John P. Abraham

The Decode Cycle

• An instruction will have an opcode and none, one or more operands (data to operate on)

• The opcode is defined as the type of operation the CPU has to perform.

• The number of bits assigned to the opcode will determine the maximum number of instructions that processor is allowed to have.

University of Texas Pan Am Dr. John P. Abraham

Opcode

• suppose that the length of an instruction (opcode and operand) is 16 bits, 4 bits are allocated for the instructions and the remaining 12 bits are allocated for an operand.

• Four bits can give us a maximum of sixteen instructions. Each of these 16 bit patterns, ranging from decimal 0 to 15, or binary 0 to 1111, or hexadecimal 0 to F will stand for a particular instruction.

University of Texas Pan Am Dr. John P. Abraham

Instruction set of an imaginary computer

University of Texas Pan Am Dr. John P. Abraham

Operations of a Microprocessor

• This hypothetical computer has only one user addressable register, which is the accumulator (AC).

• When a load (LD) is executed, the contents of the location as indicated by the operand is brought into the AC

• The reverse happens in a store (ST).

University of Texas Pan Am Dr. John P. Abraham

Operations of a Microprocessor(2)

• When an add (A) is executed, the value contained in the memory location as indicated by the operand is added to the contents of the AC, and the result is placed back in the AC.

• The add immediate (AI) differs from the add (A) in that the operand is what is added, not the content of the memory pointed by the operand.

University of Texas Pan Am Dr. John P. Abraham

Program Example

• B = B + A • C = B + 2• The variable A is kept in memory location 200h• Variable B in 201h• Variable C in 202h. • The values in each are 5, 3 and 0 respectively.

University of Texas Pan Am Dr. John P. Abraham

Program Example (2)

• There are three registers that need watching, the Accumulator (AC), Program Counter (PC), and the Instruction Register (IR).

• The PC contains 100h, which means that the next instruction should be fetched from memory location 100 hexadecimal.

University of Texas Pan Am Dr. John P. Abraham

Program Example (3) – The code

University of Texas Pan Am Dr. John P. Abraham

Program Example (4)

• The control unit fetches the instruction contained in the address indicated by the PC, which is 100h.

• The instruction 0200 is brought into the IR.• The IR now contains 0200. The instruction is decoded

and separated in opcode of 0 and operand of 200. This is based on the assumption that 4 bits (one hexadecimal digit) are used for the opcode and 12 bits (three hexadecimal digits) are used for the operand.

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

Program Example (5)

• Once the instruction is fetched the PC is automatically incremented, and now contains 101h.

• The opcode 0 indicates a load, and the operand is fetched from memory location 200h and loaded into the accumulator (AC).

• Now the accumulator contains 5.

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

Program Example (6)

• The instruction from 101h is fetched and placed in the IR.

• The PC is incremented to 102h. • The content of IR is decoded and based on the

opcode of 2, the operand located in address 201h is added to the AC.

• The AC now has a value of 8.

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

Program Example (7)

• The next instruction whose address is contained in the PC is fetched and placed in the IR giving it a value of 1201.

• The PC is incremented to 103h. • The contents of IR (1201) is decoded and based on the

opcode of 1, the contents of the AC is saved in the address indicated by the operand, which is 201h.

• Address 201 (variable B) now has a value of 8.

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

Program Example (8)

• The instruction contained in 103h (PC content) is fetched next and placed in the IR giving it a value of 3002.

• The PC is incremented to 104h The contents of IR is decoded, and based on the opcode of 3 it is an add immediate.

• No data fetching is necessary and the 2 is added to the AC.

• The new value of the accumulator is now 10.

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

Program Example (9)

• The last instruction is now fetched and placed in IR.• The PC is incremented to 105h. • The PC now contains 1202, and it is decoded to give the

opcode of 1 and operand of 202. • Since hex 1 is a store, the value of AC (the value is 10)

is stored in memory location 202h.• It was already mentioned that 202h is the memory

location assigned to C.

University of Texas Pan Am Dr. John P. Abraham

University of Texas Pan Am Dr. John P. Abraham

Slides from textbook

• The following are taken from Dale and Lewis book

University of Texas Pan Am Dr. John P. Abraham64

Chapter Goals

• List the operations that a computer can perform• Describe the important features of the Pep/8 virtual

machine• Distinguish between immediate addressing mode

and direct addressing mode• Write a simple machine-language program• Distinguish between machine language and

assembly language

University of Texas Pan Am Dr. John P. Abraham65

Computer Operations

Computer

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

What operations can a computer execute?

University of Texas Pan Am Dr. John P. Abraham66

Machine Language

Machine language The language made up of binary coded instructions built into the hardware of a particular computer and used directly by the computer

Why would anyone choose to use machine language?

(Hint: they had no choice. Why?)

University of Texas Pan Am Dr. John P. Abraham67

Machine Language

Characteristics of 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

University of Texas Pan Am Dr. John P. Abraham68

Pep/8 Virtual Computer

Virtual computer

A hypothetical machine designed to contain the important features of a real computer that we want to illustrate

Pep/8

A virtual computer designed by Stanley Warford that has 39 machine-language instructions No; we are not going to cover all of them!

University of Texas Pan Am Dr. John P. Abraham69

Features in Pep/8

Pep/8 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)

The memory unit is made up of 65,636 bytes of storage

University of Texas Pan Am Dr. John P. Abraham70

Architecture of Pep/8

Figure 6.1 Pep/8’s Architecture

University of Texas Pan Am Dr. John P. Abraham

Instruction Format

Figure 6.2 Pep/8 Instruction Format

71

University of Texas Pan Am Dr. John P. Abraham72

Instruction Format

Operation codeSpecifies which instruction is to be carried outRegister specifier Specifies which register is to be used (only use A in this chapter)Addressing-mode specifierSays how to interpret the operand part of the instruction

University of Texas Pan Am Dr. John P. Abraham

Instruction Format

Figure 6.3 Difference between immediate addressing mode and direct addressing mode

73

University of Texas Pan Am Dr. John P. Abraham74

Some Sample Instructions

Figure 6.4 Subset of Pep/8 instructions

University of Texas Pan Am Dr. John P. Abraham75

Sample InstructionsWhat do these instructions mean?

University of Texas Pan Am Dr. John P. Abraham76

Sample InstructionsWhat do these instructions mean?

University of Texas Pan Am Dr. John P. Abraham77

Sample InstructionsWhat do these instructions mean?

University of Texas Pan Am Dr. John P. Abraham78

Sample InstructionsWhat do these instructions mean?

Why is there only one on this page?

University of Texas Pan Am Dr. John P. Abraham79

Sample InstructionsWhat do these instructions mean?

University of Texas Pan Am Dr. John P. Abraham

Written Algorithm of Hello

80

University of Texas Pan Am Dr. John P. Abraham81

Hand Simulation

What is the fetch/execute cycle?How much is the PC incremented?

University of Texas Pan Am Dr. John P. Abraham82

Hand Simulation

What is the fetch/execute cycle here?

University of Texas Pan Am Dr. John P. Abraham83

Pep/8 Simulator

Pep8/Simulator

A program that behaves just like the Pep/8 virtual machine behaves

To run a program

Enter the hexadecimal code, byte by byte with blanks between each

University of Texas Pan Am Dr. John P. Abraham84

Pep/8 Simulator

What are the "zz"s for?

University of Texas Pan Am Dr. John P. Abraham85

Pep/8 Simulator

load

execute

University of Texas Pan Am Dr. John P. Abraham86

Pep/8 SimulatorWhat is a loader? What does it do?

Where does execution begin?

replace

E0 with

50 in 5

places

University of Texas Pan Am Dr. John P. Abraham

Pep/8 Simulator

University of Texas Pan Am Dr. John P. AbrahamWhat does this program do?

Pep/8 Simulator

University of Texas Pan Am Dr. John P. Abraham89

Assembly Language

Assembly language A language that uses mnemonic codes to represent machine-language instructions

AssemblerA program that reads each of the instructions in mnemonic form and translates it into the machine-language equivalent

University of Texas Pan Am Dr. John P. Abraham90

Pep/8 Assembly Language

Rememberthedifferencebetweenimmediateanddirectaddressing?

i : immediated: direct

University of Texas Pan Am Dr. John P. Abraham91

Pep/8 Assembly Language

What is the difference between operations and pseudo operations?

University of Texas Pan Am Dr. John P. Abraham92

Pep/8 Assembly LanguageProgram "Hello"

CHARO 0x0048,i; Output an 'H'CHARO 0x0065,i;Output an 'e'CHARO 0x006C,i; Output an 'l'CHARO 0x006C,i; Output an 'l'CHARO 0x006F,i;Output an 'o'STOP.END

University of Texas Pan Am Dr. John P. Abraham93

Pep/8 Assembly Language

University of Texas Pan Am Dr. John P. Abraham94

Assembly Process

University of Texas Pan Am Dr. John P. Abraham95

A New Program

Problem: Read and sum three values and print the sum

How would you do it by hand?

University of Texas Pan Am Dr. John P. Abraham96

Our Completed ProgramBR main

sum: .WORD 0x0000num1: .BLOCK 2num2: .BLOCK 2num3: .BLOCK 2main: LDA sum,d

DECI num1,d ADDA num1,d DECI num2,d ADDA num2,d DECI num3,d ADDA num3,d STA sum,d DECO sum,d STOP .END

University of Texas Pan Am Dr. John P. Abraham97

Decision MakingBRLT i Set PC to operand if A < 0

BREQ I Set PC to operand if A = 0

negMsg: CHARO 0x0045,i BR finish

main: LDA sum,d…BRLT negMsgSTA sum,dDECO sum,d

finish: STOP How many ways to finish?

University of Texas Pan Am Dr. John P. Abraham98

Decision MakingProblem: Read and sum limit values.

How many values?Where does this value come from?Will require repeating the reading and

summingHow do we know when we are done?

University of Texas Pan Am Dr. John P. Abraham99

Pseudocode

PseudocodeA mixture of English and formatting to make the steps in an algorithm explicit

Algorithm to Convert base-10 number to other bases

While ( the quotient is not zero )Divide the decimal number by the new baseMake the remainder the next digit to the left in the answerReplace the original decimal number with the quotient

University of Texas Pan Am Dr. John P. Abraham100

Following an Algorithm

University of Texas Pan Am Dr. John P. Abraham101

Following an Algorithm

Algorithm for preparing a Hollandaise sauceIF concerned about cholesterol

Put butter substitute in a potELSE

Put butter in a potTurn on burnerPut pot on the burnerWHILE (NOT bubbling)

Leave pot on the burnerPut other ingredients in the blenderTurn on blenderWHILE (more in pot)

Pour contents into lender in slow steamTurn off blender

University of Texas Pan Am Dr. John P. Abraham102

Developing an Algorithm

Two methodologies used to develop computer solutions to a problem

– Top-down design focuses on the tasks to be done

– Object-oriented design focuses on the data involved in the solution

But first, let's look at a way to express algorithms: pseudocode

University of Texas Pan Am Dr. John P. Abraham103

Pseudocode

Pseudocode

A way of expressing algorithms that uses a mixture of English phrases and indentation to make the steps in the solution explicit

There are no grammar rules in pseudocode

Pseudocode is not case sensitive

University of Texas Pan Am Dr. John P. Abraham104

Following Pseudocode

What is 93 in base 8?93/8 gives 11 remainder 511/6 gives 1 remainder 31/ 8 gives 0 remainder 1

answer 1 3 5

While ( the quotient is not zero )Divide the decimal number by the new baseMake the remainder the next digit to the left in the answerReplace the original decimal number with the quotient

University of Texas Pan Am Dr. John P. Abraham105

Following Pseudocode

Easier way to organize solution

University of Texas Pan Am Dr. John P. Abraham106

Pseudocode for Complete Computer Solution

Write "Enter the new base"

Read newBase

Write "Enter the number to be converted"

Read decimalNumber

Set quotient to 1

WHILE (quotient is not zero)

Set quotient to decimalNumber DIV newBase

Set remainder to decimalNumber REM newBase

Make the remainder the next digit to the left in the answer

Set decimalNumber to quotient

Write "The answer is "

Write answer

University of Texas Pan Am Dr. John P. Abraham107

Pseudocode FunctionalityVariablesNames of places to store values

quotient, decimalNumber, newBase

AssignmentStoring the value of an expression into avariable

Set quotient to 64quotient <-- 64quotient <-- 6 * 10 + 4

University of Texas Pan Am Dr. John P. Abraham108

Pseudocode Functionality

Output

Printing a value on an output deviceWrite, Print

Input

Getting values from the outside word and storing them into variables

Get, Read

University of Texas Pan Am Dr. John P. Abraham109

Pseudocode Functionality

Repetition

Repeating a series of statements Set count to 1

WHILE ( count < 10)

Write "Enter an integer number"

Read aNumber

Write "You entered " + aNumber

Set count to count + 1

How many values were read?

University of Texas Pan Am Dr. John P. Abraham110

Pseudocode FunctionalitySelectionMaking a choice to execute or skip a statement (or group of statements)

Read numberIF (number < 0)

Write number + " is less than zero."or

Write "Enter a positive number."Read numberIF(number < 0)

Write number + " is less than zero."Write "You didn't follow

instructions."

University of Texas Pan Am Dr. John P. Abraham111

Pseudocode Functionality

SelectionChoose to execute one statement (or group of statements) or another statement (or group of statements)

IF ( age < 12 )Write "Pay children's rate"Write "You get a free box of popcorn"

ELSE IF ( age < 65 )Write "Pay regular rate"

ELSEWrite "Pay senior citizens rate"

University of Texas Pan Am Dr. John P. Abraham112

Pseudocode Example

Problem: Read in pairs of positive numbers and print each pair in order.

WHILE (not done)Write "Enter two values separated by blanks"Read number1Read number2

Print them in order

University of Texas Pan Am Dr. John P. Abraham113

Pseudocode ExampleHow do we know when to stop?

Let the user tell us how many

Print them in order?

If first number is smaller

print first, then second

If first number if larger

print second, then first

University of Texas Pan Am Dr. John P. Abraham114

Pseudocode Example

Write "How many pairs of values are to be entered?"

Read numberOfPairs

Set numberRead to 0

WHILE (numberRead < numberOfPairs)

Write "Enter two values separated by a blank; press return"

Read number1

Read number2

IF(number1 < number2)

Print number1 + " " + number2

ELSE

Print number2 + " " number1

Increment numberRead

University of Texas Pan Am Dr. John P. Abraham115

Walk Through

Data Fill in values during each iteration3 numberRead

number1 number2

55 70

2 1

33 33

numberOfPairs

What is the output?

University of Texas Pan Am Dr. John P. Abraham116

Translating Pseudocode

To What?

Assembly language

Very detailed and time consuming

High-level language

Easy as you'll see in Chapter 9

University of Texas Pan Am Dr. John P. Abraham117

Testing

Test plan A document that specifies how many times and with what data the program must be run in order to thoroughly test itCode coverage An approach that designs test cases by looking atthe codeData coverage An approach that designs test cases by looking at the allowable data values

University of Texas Pan Am Dr. John P. Abraham118

Testing

Test plan implementationUsing the test cases outlined in the test plan to verify that the program outputs the predicted results

University of Texas Pan Am Dr. John P. Abraham

Important Threads

Operations of a ComputerComputer can store, retrieve, and process data

Computer’s Machine LanguageA set of instructions the machine’s hardware is built to recognize and execute

Machine-language Programs Written by entering a series of these instructions in binary form

119

University of Texas Pan Am Dr. John P. Abraham

Important ThreadsPep/8: A Virtual Computer with One Register (A) and two-part instructions:One part tells which action the instruction performs; the other part details where the data to be used can be found

Pep/8 Assembly LanguageA language that permits the user to enter mnemonic codes for each instruction rather than binary numbers

PseudocodeShorthand-type language people use to express algorithms

120

University of Texas Pan Am Dr. John P. Abraham

Important Threads

Testing ProgramsAll programs must be tested; code coverage testing and data coverage (black-box testing) two common approaches

121

University of Texas Pan Am Dr. John P. Abraham122

Ethical Issues

Software Piracy and CopyrightingHave you every "borrowed" softwarefrom a friend?Have you ever "lent" software to a friend?Did you know that 107,000 jobs werelost in the US one year due to such"borrowing" and "lending?"