0% found this document useful (0 votes)
41 views25 pages

The User's View: A User Is A Person Employing The Computer To Do Useful Work Examples of Useful Work Include

The document discusses different views of computers including the user's view, assembly language, computer architecture, and logic design. It provides examples of assembly language instructions and their machine language equivalents. Useful tools for assembly language programmers and computer architects are outlined such as assemblers, linkers, debuggers, and performance benchmarks. The concept of the instruction set architecture and implementation domain are introduced.

Uploaded by

hamza abbas
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)
41 views25 pages

The User's View: A User Is A Person Employing The Computer To Do Useful Work Examples of Useful Work Include

The document discusses different views of computers including the user's view, assembly language, computer architecture, and logic design. It provides examples of assembly language instructions and their machine language equivalents. Useful tools for assembly language programmers and computer architects are outlined such as assemblers, linkers, debuggers, and performance benchmarks. The concept of the instruction set architecture and implementation domain are introduced.

Uploaded by

hamza abbas
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/ 25

The user’s view

 A user is a person employing the computer to


do useful work
 Examples of useful work include
• spreadsheets
• word processing
• developing programs in higher level languages
 The internal structure of the computer is
totally hidden from the user
 Important characteristics for the user are
• execution speed
• storage capacity
• peripheral device functionality
1
Assembly Language
 Assembly language commands are a
symbolic representation of machine
language commands using “English like”
keywords called “mnemonics”
 Using assembly language commands its
much easier to program as compared to
machine language in the form of long
strings of 1s and 0s
 Commands in assembly language have a
one-to-one correspondence with machine
language commands 2
Example
 Some assembly language instructions of the x86
family of computers and their equivalent machine
language instructions
Machine
Assembly Machine Language Language Instruction
Language (Binary) (Hex) type

add cx, dx 0000 0001 1101 0001 01 D1 Arithmetic

mov alx, 34h 1011 1000 0011 0100 0000 0000 B8 34 00 Data transfer

xor ax, bx 0011 0001 1101 1000 31 D8 Logic

jmp alpha 1110 1011 1111 1100 EB FC Control

3
Useful tools for
Assembly Language Programmers

• The assembler
• The linker
• The debugger or monitor
• The development system

4
The Assembler
 Assembler is a program written for converting
the assembly language program into its
equivalent machine language program, and the
process of conversion is called the assembly
process
 The assembly process can also be done
without using a computer, but it is very
tedious and error-prone
 An “assembler” that runs on one processor
and translates an assembly language program
into the machine language of another
5
processor is called a “cross assembler”
The Linker
• When developing large programs,
separate modules can be developed
and assembled by different persons
working at the same time
• The linker links those different
modules together to form a single
module for loading and execution.
• It also resolves cross references and
determines the starting point for
execution of the program
6
The Debugger
• Working in assembly language is
tedious and error-prone
• “Run-time” errors often crash the
system instead of smoothly
returning the user to the operating
system
• A “debugger”, also called a
“monitor”, is a computer program
used to help in finding the logical
errors in the program
7
The Debugger (continued…)
• Useful functions which are
available with most of the
debuggers include:
• Display and alter the contents of
memory, CPU registers and flags
• Disassembly of machine code
• Single-stepping and breakpoints
8
Differences between
HLLs and Assembly Language

In general, there is a “many-


to-many” mapping between
HLL and equivalent assembly
language constructs

9
Differences between
HLLs and Assembly Language
(continued…)

• In HLLs type checking is provided


 Verifies proper use of variables at compile time
 Allows compiler to determine memory
requirements
 Helps detect bad programming practices

10
Difference between
HLLs and Assembly Language
(continued…)

• Most machines have no type checking


 The machine sees only strings of bits
 Instructions interpret the strings as a type:
usually limited to signed or unsigned integers
and FP numbers
 A given 32-bit word might be an instruction,
an integer, a FP number, or 4 ASCII characters
11
General operation of a
stored program computer
(continued)

In case of branch instructions, the


contents of the PC are replaced by
the address of the next instruction
contained in the present branch
instruction, and the current status of
the processor is stored in a register
called the Processor Status Word
(PSW) 12
General operation of a
stored program computer
(continued)

This entire process of reading


memory, incrementing the PC,
and decoding the instruction is
known as the Fetch And Execute
principle of the stored program
computer.
13
Concept of the ISA
• ISA stands for Instruction Set Architecture
and it could be viewed as a model for the
computer
• It includes the instruction set, memory
space and all the programmer-accessible
registers
• It serves as the interface between the
program and the functional units of the
computer 14
The computer architect’s view
• concerned with design &
performance of the entire system
• designs the ISA for optimum
programming and optimum
performance of implementation
• designs the hardware for best
implementation of the instructions
15
The computer architect’s view
(continued…)

• uses performance measurement tools,


such as benchmark programs, to see
that goals are met or not
• balances performance of building
blocks such as CPU, memory, I/O
devices, and interconnections
• meets performance goals at lowest
cost
16
Useful tools for
the computer architect
• Software models, simulators and
emulators
• Performance benchmark programs
• Specialized measurement programs
• Data flow and bottleneck analysis
• Subsystem balance analysis
• Parts, manufacturing, and testing cost
analysis
17
The logic designer’s view
• Designs the machine at the logic
gate level
• Determines whether the architect
meets cost and performance goals
• A single person or a single team
may be performing the job of a
computer architect and a logic
designer 18
Useful tools for
the logic designer
• CAD tools
 Logic design and simulation packages
 Printed circuit layout tools
 IC (integrated circuit) design and layout
tools
• Logic analyzers and oscilloscopes
• Hardware development systems
19
Concept of the
Implementation Domain
• The implementation domain is the
collection of hardware devices
with which the logic designer
works

20
Concept of the
Implementation Domain
(continued…)

• Examples of the implementation


domain
 TTL or ECL chips
 Gallium arsenide chips
 PLAs or sea-of-gates arrays
 VLSI on silicon

21
A 2-1 multiplexer in different
implementation domains
1. Generic logic gates (abstract domain)

I0
O

I1

(a ) A b s tra c t v ie w o f
B o o le a n lo g ic 22
A 2-1 multiplexer in different
implementation domains
(continued…)

2. National Semiconductor FAST Advanced


Schottky TTL (VLSI on Silicon)
U6
15 /G
S1 /A/B
2 1A
3 1Y 4
1B
5 2A
6 2Y 7
2B
11 3A
10 3Y 9
3B
I0 14 4A
4Y 12 O
I1 13 4B
74F257N
(b) TTL implementation 23
domain
A 2-1 multiplexer in different
implementation domains
(continued…)

3. Fiber optic directional coupler switch


(optical signals in LiNbO3)

I0 O
I1

(c) O ptic al s w itch


im ple m entation
24
Classical Logic Design vs.
Computer Logic Design
• The classical logic design usually
deals with the state diagram. It
implements sequential logic
considering machine as a finite state
machine.
• However, the traditional techniques
used in logic design cannot be
efficiently used in the design of
computers.
25

You might also like