[go: up one dir, main page]

0% found this document useful (0 votes)
74 views41 pages

Low-Level Programming Languages and Pseudocode

This chapter discusses low-level programming languages and pseudocode. It lists the goals of describing computer operations, machine language, assembly language, and pseudocode. Pseudocode is used to express algorithms and two testing approaches are described. Key topics covered include the Pep/8 virtual machine, machine language instructions and addressing modes, assembly language, and using pseudocode to represent algorithms.

Uploaded by

Muhammad Umar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views41 pages

Low-Level Programming Languages and Pseudocode

This chapter discusses low-level programming languages and pseudocode. It lists the goals of describing computer operations, machine language, assembly language, and pseudocode. Pseudocode is used to express algorithms and two testing approaches are described. Key topics covered include the Pep/8 virtual machine, machine language instructions and addressing modes, assembly language, and using pseudocode to represent algorithms.

Uploaded by

Muhammad Umar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 41

Chapter 6

Low-Level
Programming
Languages and
Pseudocode
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

2
Chapter Goals
• Describe the steps in creating and running an
assembly-language program
• Write a simple program in assembly language
• Distinguish between instructions to the
assembler and instructions to be translated
• Distinguish between following an algorithm and
developing one
• Describe the pseudocode constructs used in
expressing an algorithm
3
Chapter Goals

• Use pseudocode to express an algorithm


• Describe two approaches to testing
• Design and implement a test plan for a simple
assembly-language program

4
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

5
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

6
Machine Language

Characteristics of machine language:


– Every processor type has its own specific set
of machine instructions
– The digital logic of the CPU recognizes the
binary representations of the instructions
– Each machine-language instruction does only
one (typically) very low-level task

7
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!
8
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”)
(used to hold data and results of operations)

The main memory unit is made up of 64KB


(65,636 bytes) of storage
9
Architecture of Pep/8

10
Instruction Format

11
Instruction Format

Operation code
Specifies which instruction is to be carried out
Register specifier
Specifies which register is to be used (for our
purposes it always specifies the accumulator)
Addressing-mode specifier
Says how to interpret the operand part of the
instruction
12
Instruction Format

13
Addressing Modes

•The 3-bitaddressing mode specifier (shaded green)


indicates how to interpret the operand part of the
instruction.
•If the addressing mode is 000, the operand is in the
operand specifier of the instruction. This addressing mode
is called immediate
•If the addressing mode is 001, the operand is the memory
address named in the operand specifier. This addressing
mode is called direct

14
Some Sample Instructions

15
Sample Instructions

What do these instructions mean?

16
Sample Instructions

What do these instructions mean?

17
Sample Instructions

What do these instructions mean?

18
Sample Instructions

What do these instructions mean?

19
Sample Instructions

What do these instructions mean?

20
Assembly Language

Assembly language
A language that uses mnemonic codes to
represent machine-language instructions
Assembler
A program that reads each of the
instructions in mnemonic form and
translates it into the machine-language
equivalent
21
Assembly Process

22
Pseudocode

Pseudocode
A 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 base
Make the remainder the next digit to the left in the answer
Replace the original decimal number with the quotient

23
Following an Algorithm

24
Following an Algorithm

Algorithm for preparing a Hollandaise sauce


IF concerned about cholesterol
Put butter substitute in a pot
ELSE
Put butter in a pot
Turn on burner
Put pot on the burner
WHILE (NOT bubbling)
Leave pot on the burner
Put other ingredients in the blender
Turn on blender
WHILE (more in pot)
Pour contents into blender in slow steam
Turn off blender

25
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
26
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,
but it’s important to be consistent and
unambigous

27
Following Pseudocode
While (the quotient is not zero)
Divide the decimal number by the new base
Make the remainder the next digit to the left in the answer
Replace the original decimal number with quotient

What is 93 in base 8?
93/8 gives 11 remainder 5
11/6 gives 1 remainder 3
1/ 8 gives 0 remainder 1
answer 135

28
Following Pseudocode

Easier way to organize solution


29
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

30
Pseudocode Functionality

Variables
Names of places to store values
quotient, decimalNumber, newBase

Assignment
Storing the value of an expression into a
variable
Set quotient to 64
quotient <-- 64
quotient <-- 6 * 10 + 4
31
Pseudocode Functionality

Output
Printing a value on an output device
Write, Print

Input
Getting values from the outside word and
storing them into variables
Get, Read
32
Pseudocode Functionality
Selection
Making a choice to execute or skip a statement (or group of
statements)
Read number
IF (number < 0)
Write number + " is less than zero."
or
Write "Enter a positive number."
Read number
IF(number < 0)
Write number + " is less than zero."
Write "You didn't follow instructions."
33
Pseudocode Functionality

Selection
Choose 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"
ELSE
Write "Pay senior citizens rate"

34
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?


35
Translating Pseudocode

To What?
Assembly language
Very detailed and time consuming
High-level language
Easy, as you'll see in Chapter 9

36
Testing

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

37
Testing

Test plan implementation


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

38
Important Threads

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

Computer’s Machine Language


A 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

39
Important Threads

Pseudocode
Shorthand-type language people use to express algorithms

40
Important Threads

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

41

You might also like