Download - Chapter 10 Instruction Sets
Chapter 10Instruction Sets
10.1 Instruction Characteristics
10.2 Types of Operands
10.3 Data Types
10.4 Operators
10.1MACHINE INSTRUCTION
CHARACTERISTICS
Machine Instruction Characteristics
Machine Instructions- are instructions executed by the processor.
Instruction set- a collection of instructions that the processor can execute
Elements of a machine instruction
Opcode- uses a binary code which specifies the operation to be preformed.
Source operand reference- the input for the operation
Result operand reference- the result produced by the operation
Next instruction reference- tells the processor where to get the next instruction
Source and result operands can be found in
Main or virtual memory Processor register- contains registers that
can be used by machine instructions Immediate- the operand value is being
contained when the instruction is being executed
I/O devices- instruction specifies I/O module and device but if memory mapped then just another main or virtual memory address
Instruction Representation Are represented by a sequence of bits It is common to use “symbolic
representation” of machine instructions Op codes and operands are represented
by abbreviations called “mnemonics”
Mnemonics ADD add SUB subtract MUL multiply DIV divide LOAD load data from memory STOR store data to memory
Instruction types Data processing- arithmetic and logic
instructions Data storage- moving data into or out of
register or memory locations Data movement- I/O instructions Control- test and branch instructions
Number of Addresses• A traditional way of describing processor
architecture• What is the maximum number of
addresses one might need in an instruction?
• An instruction could be required to contain four addresses
Number of Addresses• 3 addresses
instructions• Operand 1, Operand
2, Result• a = b + c;• May be a forth - next
instruction (usually implicit)
• Not common• Needs very long
words to hold everything
Number of Addresses• 2 addresses
instructions• One address
doubles as operand and result
• a = a + b;• Reduces length of
instruction• Requires some extra
work• Temporary storage to
hold some results
Number of Addresses• 1 address
instructions• Implicit second
address• Usually a register
(accumulator)• Common on early
machines
Number of Addresses• 0 address instruction:
• Special memory organization
• Last in first out
• Stack is a known location
Number of AddressesUtilization of Instruction Addresses
(Nonbranching Instructions)
Number of Addresses1 ADDRESS INSTRUCTIONS 2 OR 3 ADDRESS
INSTRUCTIONS• One general purpose
register Multiple general
purpose registers
Instruction Set Design Operation Repertoire- How many and
which operations to provide, and how complex the operations should be.
Data Types- The various types of data upon which operations are performed.
Instruction Format- Instruction length (in bits), number of addresses and size of fields.
Instruction Set Design Registers- Number of processor registers
that can be referenced by instructions, and their use
Addressing- The mode or modes by which the address of an operand is specified.
10.2TYPES OF OPERANDS
TYPES OF OPERANDS Addresses Numbers Characters Logical Data Specialized Data Types Data Structures
Addresses Main or Virtual memory address Unsigned Integers
Numbers All machine languages include numeric
types Non-numeric processing: counters, field
widths, etc Numbers in a machine are limited by
magnitude and precision Consequences: rounding, overflow,
underflow
Numerical Data Binary integer or Binary fixed point Binary floating point Decimal
Decimal Majority of users deal with decimals Necessity to convert from decimal to
binary on input and binary to decimal on output
Packed decimal
Packed Decimal Used when there is a great deal of I/O
and simple computation Each decimal digit is represented by a 4-
bit code. Ex: 0 = 0000, 1 = 0001 Numbers are formed by a string of 4-bit
codes usually in multiples of 8-bit 246 = 0000 0010 0100 0110 Positive: 1100 Negative: 1101
Characters Text or character strings Represented by a sequence of bits Morse Code International Reference Alphabet (IRA) American Standard Code for Information
Interchange (ASCII) Extended Binary Coded Decimal
Interchange Code (EBCDIC)
Logical Data Consider n-bit unit as consisting of n 1-bit
items of data, each having a value of 0 or 1
Advantages: Store array of Boolean or Binary data items Manipulating bits of data items
10.3DATA TYPES
Intel x86 and ARM data types
are instruction set architecture.
change code into instructions a processor can understand and execute.
determines which operating systems and apps to run.
x86 data types The x86 can deal with data types of 8 (byte), 16
(word), 32 (doubleword), 64 (quadword),and 128 (double quadword) bits in length.
are referred to as general data types.
To allow maximum flexibility in data structures and efficient memory utilization, words do not need be aligned at even numbered addresses and doublewords do not need to aligned at addresses evenly divisible by 4.
x86 also supports specific data types that are recognized and operated on by particular instructions.
ARM data types support data types of 8 (byte), 16 (halfword),
and 32 (word) bits in length.
ARM processor do not provide floating point hardware, which saves power and area.
If required it must be implement in software.
Can be configure to be little Endian or big Endian mode.
10.4OPERATORS
Types of Operations Data Transfer Arithmetic Logical Conversion Input/output System Control Transfer of Control
Data TransferOPERATION NAME DESCRIPTION Move(Transfer) Store Load (Fetch) Exchange Clear ( Reset) Set Push Pop
Transfer word from source to destination
From processor to memory From memory to processor Swap contents of source and
destination Transfer 0s to destination Transfer 1s to destination Word from source to top of
stack From top of stack to
destination
Arithmetic
OPERATION NAME DESCRIPTION Add Subtract Multiply Divide Absolute Negate Increment Decrement
Compute sum of two operands
Difference of two operands
Product of two operands Quotient of two operands Replace by its absolute
value Change sign Add 1 to operand Subtract 1 to operand
LogicalOPERATION NAME DESCRIPTION AND; OR; NOT; OR Test Compare Set Control Variables Shift Variables
Perform the specified logical operation bitwise
Test specified condition; set flags based on outcome
Make logical and arithmetic comparison of two operands
Class of instructions to set controls for protection purposes, interrupt handling, timer control.
Left/right operand introducing constants at end.
Left/right with wraparound end
Conversion
OPERATION NAME DESCRIPTION Translate Convert
Translate values in a section of memory based on a table of correspondences
Convert the contents of a word from one form to another. E.g(packed decimal to binary
I/OOPERATION NAME DESCRIPTION Input (Read) Output ( Write) Start I/O End I/O
Transfer data from specified I/O port or device to destination
From specified source to I/O port or device
Transfer instructions to I/O processor to initiate I/O operation
Transfer status info from I/O system to specified destination
System Of Control 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.
These instructions, are reserved for the use of the operating system.
Examples: A system control instruction may read or alter a
control register An instruction to read or modify a storage
protection key Access to process control blocks in
multiprogramming system
Transfer Of Control
OPERATION NAME DESCRIPTION Jump (Branch) Jump Conditional Jump to Subroutine Return Execute Skip Skip conditional Halt Wait (Hold) No Operation
Unconditional Transfer: load PC with specified address
Test condition: either load PC with specified address or do nothing
Place current program control info in known location; jump to specified address
Replace contents of PC and other register from known location
Fetch operand from location and execute as instructed
Increment PC to skip next instruction Either skip or do nothing based on
condition Stop program execution Test specified repeatedly and resume
condition No operation is performed; but program
execution is continued.
QUESTIONS How many different address designs are
there? Name two types of operations. What are the most general categories of
data? What type of endian mode does x86 use? What are the most used Character Codes
nowadays? What are the elements of machine
instruction? What are the advantages of Logical Data?