+
William Stallings
Computer Organization
and Architecture
10th Edition
© 2016 Pearson Education, Inc., Hoboken,
NJ. All rights reserved.
+ Chapter 12
Instruction Sets:
Characteristics and Functions
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Machine Instruction Characteristics
The operation of the processor is determined by the instructions it
executes, referred to as machine instructions or computer instructions
The collection of different instructions that the processor can execute
is referred to as the processor’s instruction set
Each instruction must contain the information required by the
processor for execution
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Elements of a Machine Instruction
Operation code Source operand
(opcode) reference
• Specifies the operation to • The operation may
be performed. The involve one or more
operation is specified by source operands, that is,
a binary code, known as operands that are inputs
the operation code, or for the operation
opcode
Result operand Next instruction
reference reference
• The operation may • This tells the processor
produce a result where to fetch the next
instruction after the
execution of this
instruction is complete
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Source and result operands can be in
one of four areas:
3) Processor register
A processor contains one or more
1) Main or virtual memory registers that may be referenced
As with next instruction by machine instructions.
references, the main or virtual
memory address must be supplied
If more than one register exists
each register is assigned a unique
name or number and the
instruction must contain the
number of the desired register
2) I/O device
The instruction must specify the
I/O module and device for the 4) Immediate
operation. If memory-mapped I/O
is used, this is just another main or
The value of the operand is
virtual memory address contained in a field in the
instruction being executed
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Instruction Representation
Within the computer each instruction is represented by a sequence of
bits
The instruction is divided into fields, corresponding to the constituent
elements of the instruction
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Instruction Representation
Opcodes are represented by abbreviations
called mnemonics
Examples include:
ADD Add
SUB Subtract
MUL Multiply
DIV Divide
LOAD Load data from memory
STOR Store data to memory
Operands are also represented symbolically
Each symbolic opcode has a fixed binary representation
The programmer specifies the location of each symbolic operand
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Instruction Types
• Arithmetic instructions provide computational capabilities • Movement of data into or out
for processing numeric data of register and or memory
• Logic (Boolean) instructions operate on the bits of a word locations
as bits rather than as numbers, thus they provide
capabilities for processing any other type of data the user
may wish to employ
Data
Data storage
processing
Data
Control
movement
• Test instructions are used to test the value of a data word or the • I/O instructions are needed to
status of a computation transfer programs and data
• Branch instructions are used to branch to a different set of into memory and the results
instructions depending on the decision made of computations back out to
the user
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Table 12.1
Utilization of Instruction Addresses
(Nonbranching Instructions)
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Instruction Set Design
Very complex because it affects so many aspects of the computer system
Defines many of the functions performed by the processor
Programmer’s means of controlling the processor
Fundamental design issues:
Operation repertoire Data types Instruction format Registers Addressing
• How many and which • The various types of data upon • Instruction length in bits, • Number of processor registers • The mode or modes by which
operations to provide and how which operations are performed number of addresses, size of that can be referenced by the address of an operand is
complex operations should be various fields, etc. instructions and their use specified
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Types of Operands
e sses
Ad d r
Num
be rs
Chara
cters
a l Da t a
Lo gi c
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+ Numbers
All machine languages include numeric data types
Numbers stored in a computer are limited:
Limit to the magnitude of numbers representable on a machine
In the case of floating-point numbers, a limit to their precision
Three types of numerical data are common in computers:
Binary integer or binary fixed point
Binary floating point
Decimal
Packed decimal
Each decimal digit is represented by a 4-bit code with two digits stored per
byte
To form numbers 4-bit codes are strung together, usually in multiples of 8 bits
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Characters
A common form of data is text or character strings
Textual data in character form cannot be easily stored or transmitted
by data processing and communications systems because they are
designed for binary data
Most commonly used character code is the International Reference
Alphabet (IRA)
Referred to in the United States as the American Standard Code for
Information Interchange (ASCII)
Another code used to encode characters is the Extended Binary
Coded Decimal Interchange Code (EBCDIC)
EBCDIC is used on IBM mainframes
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Logical Data
An n-bit unit consisting of n 1-bit items of data, each item having the
value 0 or 1
Two advantages to bit-oriented view:
Memory can be used most efficiently for storing an array of Boolean or
binary data items in which each item can take on only the values 1 (true)
and 0 (false)
To manipulate the bits of a data item
If floating-point operations are implemented in software, we need to be
able to shift significant bits in some operations
To convert from IRA to packed decimal, we need to extract the
rightmost 4 bits of each byte
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Types Of Operations
The number of different opcodes varies widely from machine to machine.
However, the same general types of operations are found on all machines. A
useful and typical categorization is the following:
Data transfer
Arithmetic
Logical
Conversion
I/O
System control
Transfer of control
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Table 12.3
Common
Instruction Set
Operations
(page 1 of 2)
(Table can be found on page
426 in textbook.)
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Table 12.3
Common
Instruction Set
Operations
(page 2 of 2)
(Table can be found on page
426 in textbook.)
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Table 12.4
Processor Actions for Various Types of Operations
(Table can be found on page 427 in textbook.)
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Data Transfer
Must specify:
• Location of the source and destination
operands
Most fundamental type of • The length of data to be transferred
machine instruction must be indicated
• The mode of addressing for each
operand must be specified
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Table 12.5
Examples of IBM EAS/390 Data Transfer Operations
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved. (Table can be found on page 428 in textbook.)
+ Most machines provide the basic arithmetic operations
of add, subtract, multiply, and divide
These are provided for signed integer (fixed-point)
numbers
Often they are also provided for floating-point and
packed decimal numbers
Other possible operations include a variety of single-
operand instructions:
Absolute Arithmetic
Take the absolute value of the operand
Negate
Negate the operand
Increment
Add 1 to the operand
Decrement
Subtract 1 from the operand
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Table 12.6
Basic Logical Operations
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Table 12.7
Examples of Shift and Rotate Operations
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Instructions that
change the format
or operate on the Conversion
format of data
An example of a
more complex
editing instruction
is the EAS/390
An example is Translate (TR)
converting instruction
from decimal
to binary
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Input/Output
Variety of approaches taken:
Isolated programmed I/O
Memory-mapped programmed I/O
DMA
Use of an I/O processor
Many implementations provide only a few I/O instructions, with the
specific actions specified by parameters, codes, or command words
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
System Control
Instructions that can be executed only while the processor is in a certain
privileged state or is executing a program in a special privileged area of
memory
Typically these instructions are reserved for the use of the operating system
Examples of system control operations:
A system control instruction Access to process control
An instruction to read or modify
may read or alter a control blocks in a multiprogramming
a storage protection key
register system
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Transfer of Control
Reasons why transfer-of-control operations are required:
It is essential to be able to execute each instruction more than once
Virtually all programs involve some decision making
It helps if there are mechanisms for breaking the task up into smaller
pieces that can be worked on one at a time
Most common transfer-of-control operations found in instruction sets:
Branch
Skip
Procedure call
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Skip Instructions
Typically implies that one
instruction be skipped, thus
the implied address equals
Includes an implied address
the address of the next
instruction plus one
instruction length
Because the skip instruction
Example is the increment-
does not require a destination
and-skip-if-zero (ISZ)
address field it is free to do
instruction
other things
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+
Procedure Call Instructions
Self-contained computer program that is incorporated into a larger
program
At any point in the program the procedure may be invoked, or called
Processor is instructed to go and execute the entire procedure and then
return to the point from which the call took place
Two principal reasons for use of procedures:
Economy
A procedure allows the same piece of code to be used many times
Modularity
Involves two basic instructions:
A call instruction that branches from the present location to the procedure
Return instruction that returns from the procedure to the place from which
it was called
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
+ Summary Instruction Sets:
Characteristics and
Chapter 12 Functions
Machine instruction characteristics Types of operations
Elements of a machine instruction Data transfer
Instruction representation Arithmetic
Instruction types Logical
Number of addresses Conversion
Instruction set design Input/output
Types of operands System control
Numbers
Transfer of control
Characters
Logical data
© 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.