chapter 7 low-level programming languages (slides modified by erin chambers)
TRANSCRIPT
![Page 1: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/1.jpg)
Chapter 7
Low-Level Programming Languages
(slides modified by Erin Chambers)
![Page 2: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/2.jpg)
2
Computer Operations
Computer
•A programmable electronic device that can store, retrieve, and process data
•Data and instructions to manipulate the data are all binary numbers and can be stored in the same place– Recall: this is called the von Neumann
architecture
![Page 3: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/3.jpg)
3
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?)
![Page 4: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/4.jpg)
4
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
![Page 5: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/5.jpg)
5
Pep/7: A Virtual Computer
Virtual computer
A hypothetical machine designed to contain the important features of a real computer that we want to illustrate
Pep/7
A virtual computer designed by Stanley Warford that has 32 machine-language instructions
No; we are not going to cover all of them!
![Page 6: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/6.jpg)
6
Features in Pep/7
Figure 7.1 Pep/7’s architecture
![Page 7: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/7.jpg)
7
Features in Pep/7Pep/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)
![Page 8: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/8.jpg)
8
More Features
Pep/7 Registers/Status Bits Covered– 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)
The memory unit is made up of 4,096 bytes
![Page 9: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/9.jpg)
9
Instruction Format
Figure 7.2 The Pep/7 instruction format
![Page 10: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/10.jpg)
10
Instruction Format
Operation code– Specifies which instruction
is to be carried out
Register specifier– Specifies which register is
to be used (only use A in this chapter)
Addressing-mode specifier– Says how to interpret the
operand part of the instruction
![Page 11: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/11.jpg)
11
The Addressing Mode Specifier
Figure 7.3 Difference between immediate-mode and direct-mode addressing
![Page 12: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/12.jpg)
12
Instruction Format
Is there something we are not telling youabout the addressing mode specifier?
How can you tell?
![Page 13: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/13.jpg)
13
Some Sample Instructions
Figure 7.3 Subset of Pep/7 instructions
![Page 14: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/14.jpg)
14
Sample Instructions
What do these instructions mean?
![Page 15: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/15.jpg)
15
Sample Instructions
What do these instructions mean?
![Page 16: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/16.jpg)
16
Sample Instructions
What do these instructions mean?
![Page 17: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/17.jpg)
17
Sample Instructions
What do these instructions mean?
![Page 18: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/18.jpg)
18
Algorithms
Write "Hello"
Write "Hell"Write "H"Write "e"Write "l"Write "l"Write "o"
Are we concrete yet?
Are we concrete yet?
![Page 19: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/19.jpg)
19
Algorithms
• Is this concrete enough?
• How can we explicitly tell the computer to print, and what to print?
Write "Hell"Write "H"Write "e"Write "l"Write "l"Write "o"
![Page 20: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/20.jpg)
20
How to print:
• We use opcodes to tell the computer that it needs to print
•Now how do we tell it what to print?
![Page 21: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/21.jpg)
21
What to print: remember ASCII?
•To print 'H', we need to look up ACSII code for H (and other letters)
•Then, write that code in binary as our operand
![Page 22: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/22.jpg)
22
A Program Example
![Page 23: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/23.jpg)
23
Hand Simulation
What is the fetch/execute cycle?How much is the PC incremented?
![Page 24: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/24.jpg)
24
Fetch/Execute Cycle
•Fetch the next instruction– How long is instruction here?
•Decode the instruction– Look up in table
•Get data if needed– If code is '01', then need to get value from
memory location
•Execute the instruction
![Page 25: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/25.jpg)
25
Hand Simulation
What is the fetch/execute cycle here?
![Page 26: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/26.jpg)
26
Hand Simulation
What is the fetch/execute cycle here?
![Page 27: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/27.jpg)
27
Pep/7 Simulator
Pep7/Simulator
A program that behaves just like the Pep/7 virtual machine behaves
To run a program
Enter the hexadecimal code, byte by byte with blanks between each
![Page 28: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/28.jpg)
28
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
![Page 29: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/29.jpg)
29
Pep/7 Assembly Language
Rememberthedifferencebetweenimmediateanddirectaddressing?
i : immediated: direct
![Page 30: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/30.jpg)
30
Pep/7 Assembly Language
What is the difference between operations and pseudo operations?
![Page 31: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/31.jpg)
31
Assembly Process
![Page 32: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/32.jpg)
32
A New Program
Reading and adding three numbersSet sum to 0Read num1Add num1 to sumRead num2Add num2 to sumRead num3Addnum3 to sumWrite sum
Are weconcrete
yet?
![Page 33: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/33.jpg)
33
Our Completed Program
![Page 34: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/34.jpg)
34
Decision Making
Remember the status bits A and Z?
![Page 35: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/35.jpg)
35
Decision Making
…Add num3 to sumIf sum is negative
Write "Error"Else
Write sum
Write "Error" if sum is negative.
Are weconcrete yet?
![Page 36: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/36.jpg)
36
Decision Making
Add num3 to sumIf status bit N is 1
Go to NegMsgWrite sumQuit: STOPNegMsg: Write the message and go to Quit
Are we concrete yet?
![Page 37: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/37.jpg)
37
Decision Making
Read limitSet sum to 0While (limit is not zero)
Read numberSet sum to sum + numberSet limit to limit - 1
Are we concrete yet?
![Page 38: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/38.jpg)
38
Decision Making
Set the accumulator to limitSubtract one from the accumulatorCompare accumulator to zeroIf status bit Z is 1
go to QuitElse
go to Read
Are we concrete yet?
![Page 39: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/39.jpg)
39
Decision Making
![Page 40: Chapter 7 Low-Level Programming Languages (slides modified by Erin Chambers)](https://reader038.vdocument.in/reader038/viewer/2022102911/5697bf771a28abf838c813b0/html5/thumbnails/40.jpg)
40
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