SlideShare a Scribd company logo
1 of 119
Chapter 2
Instruction Set Architecture
Chapter Outline
• Memory Locations and Addresses
• Memory Operations
• Instructions and Instruction Sequencing
• Addressing Modes
• Assembly Language
• Stacks and subroutines
• Additional Instructions
• Dealing with 32-Bit Immediate Values
• CISC Instruction Sets
• RISC and CISC Styles
Memory Organization
• Memory consists of many millions of cells
• Each cell holds a bit of information, 0 or 1
• Information usually handled in larger units
• A word is a group of n bits
• Word length can be 16 to 64 bits
• Memory is a collection of consecutive words
of the size specified by the word length
Word and Byte Encoding
• A common word length is 32 bits
• Such a word can store a 32-bit signed integer
or four 8-bit bytes (e.g., ASCII characters)
• For 32-bit integer encoding, bit b31 is sign bit
• Words in memory may store data
or machine instructions for a program
• Each machine instruction may require
one or more consecutive words for encoding
Addresses for Memory Locations
• To store or retrieve items of information,
each memory location has a distinct address
• Numbers 0 to 2k - 1 are used as addresses
for successive locations in the memory
• The 2k locations constitute the address space
• Memory size set by k (number of address bits)
• Examples: k = 20 implies 220 or 1M locations,
k = 32 implies 232 or 4G locations
Byte Addressability
• Byte size is always 8 bits
• But word length may range from 16 to 64 bits
• Impractical to assign an address to each bit
• Instead, provide a byte-addressable memory
that assigns an address to each byte
• Byte locations have addresses 0, 1, 2, …
• Assuming a word length is 32 bits,
word locations have addresses 0, 4, 8, …
Big- and Little-Endian Addressing
• Two ways to assign byte address across words
• Big-endian addressing assigns lower addresses
to more significant (leftmost) bytes of word
• Little-endian addressing uses opposite order
• Commercial computers use either approach,
and some can support both approaches
• Addresses for 32-bit words are still 0, 4, 8, …
• Bits in each byte labeled b7 … b0, left to right
Word Alignment
• # of bytes per word is normally a power of 2
• Word locations have aligned addresses if they
begin at byte addresses that are multiples of
the number of bytes in a word
• Examples of aligned addresses:
2 bytes per word ⇒ 0, 2, 4, …
8 bytes per word ⇒ 0, 8, 16, …
• Some computers permit unaligned addresses
Memory Operations
• Memory contains data & program instructions
• Control circuits initiate transfer of data and
instructions between memory and processor
• Read operation: memory retrieves contents at
address location given by processor
• Write operation: memory overwrites contents
at given location with given data
Session 2
Instruction Set Architecture
• Different kinds of instruction available: Types
of Instruction
• What each instruction looks like: Instruction
Format
• How Operands are specified: Addressing
Modes
Types of Instructions
• data transfers Instructions
• arithmetic and logic Instructions
• program sequencing and control
• input/output transfers
Types of Instructions
Data transfers Instructions
• memory and the general-purpose and
segment registers
• Contents in the source remain same
• perform operations such as conditional
moves, stack access, and data conversion
• Examples:
– Load(Copy data to register from memory)
– Store(Copy data to memory location from register)
– Move
Types of Instructions
Arithmetic and logic Instructions
• Instruction consists of arithmetic, logic and
shift operations
• Arithmetic Instructions: add, subtract,
multiply or divide
• Logical Instructions: AND, OR, XOR, NOT
• Shift Instructions: shift left, shift right
Types of Instructions
Program sequencing & control Instructions
• Jump, conditional branch, subrutine call, return
I/o transfers Instructions
• Transfer of data to and from an I/O device
• Examples: IN and OUT
Instruction Format
• Three Address Instruction
– Add A,B,C C[A] + [B]
• Two Address Instruction
– Add A,B B[A] + [B]
– Value of B is overwritten
• One Address Instruction
– Add A Acc[A] + Acc
• Instruction with zero operands
– ADD e.g. Stack
– Addition operation perform on the items that are
on top of the stack
TYPES OF NOTATIONS
REGISTER TRANSFER NOTATION
ASSEMBLY-LANGUAGE NOTATION
Register Transfer Notation(RTN)
• Register Transfer Notation is used to describe
hardware-level data transfers and operations
• […] to denote contents of a location
• ← to denote transfer to a destination
• Example: R2 ← [LOC]
(transfer from LOC in memory to register R2)
Register Transfer Notation
• RTN can be extended to also show
arithmetic operations involving locations
• Example: R4 ← [R2] + [R3]
(add the contents of registers R2 and R3,
place the sum in register R4)
• Right-hand expression always denotes a value,
left-hand side always names a location
Assembly-Language Notation
• RTN shows data transfers and arithmetic
• Another notation needed to represent
machine instructions & programs using them
• Assembly language is used for this purpose
• For the two preceding examples using RTN,
the assembly-language instructions are:
Load R2, LOC
Add R4, R2, R3
Assembly-Language Notation
• An instruction specifies the desired operation
and the operands that are involved
• Examples in this chapter will use English words
for the operations (e.g., Load, Store, and Add)
• Commercial processors use mnemonics,
usually abbreviations (e.g., LD, ST, and ADD)
• Mnemonics differ from processor to processor
A Program in the Memory
• Consider the preceding 4-instruction program
• How is it stored in the memory?
(32-bit word length, byte-addressable)
• Place first RISC instruction word at address i
• Remaining instructions are at i + 4, i + 8, i + 12
Instruction Execution/Sequencing
• How is the program executed?
• Processor has program counter (PC) register
• Address i for first instruction placed in PC
• Control circuits fetch and execute instructions,
one after another : straight-line sequencing
• During execution of each instruction,
PC register is incremented by 4
• PC contents are i + 16 after Store is executed
Details of Instruction Execution
• Two-phase procedure: fetch and execute
• Fetch involves Read operation using PC value
• Data placed in instruction register (IR)
• To complete execution, control circuits
examine encoded machine instruction in IR
• Specified operation is performed in steps,
e.g., transfer operands, perform arithmetic
• Also, PC is incremented, ready for next fetch
0
1
2
3 0101 0000
0000 0110
4
5
Memory
+1
Memory
Address
Register
Memory Data
Register
Instruction
Register
0000 0000 0000 0011
Address Bus
Data Bus
0000 0000 0000 0011
0101 0000 0000 0110
0101 0000 0000 0110
Instruction
Decoder
ALU
ADD #6
0000 0000 0000 0100
000 0000 0000 0110
PC
0
1
2
3 0101 0000
0000 0110
4
5
Memory
Memory Address
Register
Memory Data
Register
Instruction
Register
0000 0000 0000 0100
Address Bus
Data Bus
0000 0000 0000 0011
0101 0000 0000 0110
0101 0000 0000 0110
Instruction
Decoder
ALU
ADD #6
0000 0000 0000 1010
+1
PC
Branching
• We can illustrate the concept of branching
with a program that adds a list of numbers
• Same operations performed repeatedly,
so the program contains a loop
• Loop body is straight-line instruction sequence
• It must determine address of next number,
load value from the memory, and add to sum
• Branch instruction causes repetition of body
Branching
• Assume that size of list, n, stored at location N
• Use register R2 as a counter, initialized to N
• Body of loop includes the instruction
Subtract R2, R2, #1
to decrement counter in each loop pass
• Branch_if_[R2]=0 goes to branch target LOOP
as long as contents of R2 are greater than zero
• Therefore, this is a conditional branch
Branching
• Branches that test a condition are used in
loops and various other programming tasks
• One way to implement conditional branches
is to compare contents of two registers, e.g.,
Branch_if_[R4]>[R5] LOOP
• In generic assembly language with mnemonics
the same instruction might actually appear as
BGT R4, R5, LOOP
Registers are faster than memory
• For 32-bit memory 232 memory locations
• One location can be identified by 32-bit
address
• For 32-bit registers  5 bit are required to
represent
• 32 bit reduced to 5 bit
MCQ
• A collection of lines that connects several
devices is called:
a. peripheral connection wires
b. bus
c. Both a and b
d. Internal wires
• PC Program Counter is also called
a. instruction pointer
b. memory pointer
c. file pointer
d. data counter
MCQ
• The instruction, Add Loc,R1 in RTN is _______
a) AddSetCC Loc+R1
b) R1=Loc+R1
c) Not possible to write in RTN
d) R1<-[Loc]+[R1].
• In a system, which has 32 registers the register
id is ____ long.
a) 16 bit
b) 8 bits
c) 5 bits
d) 6 bits
• The two phases of executing an instruction are
__________
a) Instruction decoding and storage
b) Instruction fetch and instruction execution
c) Instruction execution and storage
d) Instruction fetch and Instruction processing
• When using Branching, the usual sequencing
of the PC is altered. A new instruction is
loaded which is called as ______
a) Branch target
b) Loop target
c) Forward target
d) Jump instruction
• Which registers can interact with the
secondary storage?
a) MAR
b) PC
c) IR
d) R0
• During the execution of a program which gets
initialized first?
a) MDR
b) IR
c) PC
d) MAR
ADDRESSING MODES
Addressing Modes
• Programs use data structures to organize
the information used in computations
• High-level languages enable programmers
to describe operations for data structures
• Compiler translates into assembly language
• Addressing modes provide compiler with different
ways to specify operand locations
– Operands can be placed either in processor register or in
memory
– There are different ways to get operands
– The Way which operand is taken from register or memory
is named as Addressing modes
Addressing Modes
• Immediate Mode
• Register Mode
• Register Indirect Mode
• Direct Addressing Mode
• Indirect Addressing Mode
• Displacement Addressing Mode
– Relative Addressing Mode
– Base Register Addressing Mode
– Stack Addressing Mode
• Auto-increment and auto-decrement Addressing
Mode
Immediate Mode
• Operand is specified in the instruction itself.
• An immediate mode instruction has an
operand field rather than the address field
• MVI A,15h A 15h
– 15h is immediate operand
Move Immediate
Register Mode
• Operand is stored in the register and this
register is present in CPU
• The instruction has the address of the Register
where the operand is stored
• MOV C,A CA
– Here A is operand specified in register
Register Indirect Mode
• Instruction specifies the register whose
contents give us the address of operand which
is in memory
• Register contains the address of operand
rather than the operand itself.
• MOV A,M A[[H][L]]
Register Indirect Mode
• Example
Direct Addressing Mode
• Effective address of operand is present in instruction itself.
• Single memory reference to access data.
• No additional calculations to find the effective address of the
operand.
• For Example: ADD R1, 4000 - In this the 4000 is effective
address of operand.
• LDA 2800h A[2800h]
– Load data from memory 2800h to A
• NOTE: Effective Address is the location where operand is
present.
Direct Addressing Mode
• Example
Indirect Addressing Mode
• The instruction specifies the indirect address
where the effective address of operand is
placed
• Memory address id specified where actual
address of operand ios placed
• MOV A,2800h A[[2800h]]
Indirect Addressing Mode
• Example
Displacement Addressing Mode
• the contents of the indexed register is added to the Address
part of the instruction, to obtain the effective address of
operand.
• EA = A + (R), In this the address field holds two values,
A(which is the base value) and R(that holds the displacement),
or vice versa.
Relative Addressing Mode
• In this the contents of PC(Program Counter) is
added to address part of instruction to obtain
the effective address.
• When offset added with PC resultant number
is memory location where operand will be
placed
• EA = A + (PC), where EA is effective address
and PC is program counter.
Relative Addressing Mode
• Example
Base Register Addressing Mode
• Contents of base register is added with address part
of instruction to obtain effective address
• Base address hold Beginning/Base address
• Address part of instruction holds offset
• When offset added with base resister then the
resultant number is memory location where operand
will be placed
• This can be defined as EA = A + (R), where A is
displacement and R holds pointer to base address
Base Register Addressing Mode
• Example
Stack Addressing Mode
• Operand is at the top of the stack. For
example: ADD, this instruction will POP top
two items from the stack, add them, and will
then PUSH the result to the top of the stack.
Auto-increment and auto-decrement
Addressing Mode
• Similar to register indirect Addressing mode
• Register is incremented or decremented by one after
the value used
MCQ
1. The instruction, Add #45,R1 does _______
a) Adds the value of 45 to the address of R1
and stores 45 in that address
b) Adds 45 to the value of R1 and stores it in
R1
c) Finds the memory location 45 and adds that
content to that of R1
MCQ
2. In the case of, Zero-address instruction
method the operands are stored in _____
a) Registers
b) Accumulators
c) Push down stack
d) Cache
MCQ
3. The addressing mode which makes use of in-
direction pointers is ______
a) Indirect addressing mode
b) Index addressing mode
c) Relative addressing mode
d) Offset addressing mode
MCQ
4. In the following indexed addressing mode
instruction, MOV 5(R1),LOC the effective
address is ______
a) EA = 5+R1
b) EA = R1
c) EA = [R1].
d) EA = 5+[R1].
MCQ
5. The addressing mode/s, which uses the PC
instead of a general purpose register is ______
a) Indexed with offset
b) Relative
c) direct
d) both Indexed with offset and direct
MCQ
6. When we use auto increment or auto decrements, which of
the following is/are true?
1) In both, the address is used to retrieve the operand and
then the address gets altered
2) In auto increment, the operand is retrieved first and then
the address altered
3) Both of them can be used on general purpose registers as
well as memory locations
a) 1, 2, 3
b) 2
c) 1, 3
d) 2, 3
MCQ
7. The addressing mode, where you directly
specify the operand value is _______
a) Immediate
b) Direct
c) Definite
d) Relative
MCQ
8. _____ addressing mode is most suitable to
change the normal sequence of execution of
instructions.
a) Relative
b) Indirect
c) Index with Offset
d) Immediate
MCQ
9. Match the following
1. Indirect a. loop
2. Immediate b. Pointer
3. Auto-increment c. Constants
A. 1b 2a 3c
B. 1b 2c 3a
C. 1c 2a 3b
D. 1a 2c 3b
MCQ
10. Match the following
1. Indirect a. Array
2. Index b. Relocatable
3. Base Register c. Passing as Parameter
A. 1b 2a 3c
B. 1b 2c 3a
C. 1c 2a 3b
D. 1a 2c 3b
MCQ
11. Match the following
1. A[i]=B[j] a. Indirect
2. while(*A++) b. Index
3. int temp=*X c. Auto-increment
A. 1b 2a 3c
B. 1b 2c 3a
C. 1c 2a 3b
D. 1a 2c 3b
Answers
Question Answer
1 B
2 C
3 A
4 D
5 B
6 D
7 A
8 A
9 B
10 C
11 B
Program for addition of n numbers
Exercise
• Implement Assembly language Program for
multiplication
• Implement Assembly language Program for
division
Assembly Language
• Mnemonics (LD/ADD instead of Load/Add)
used when programming specific computers
• The mnemonics represent the OP codes
• Assembly language is the set of mnemonics
and rules for using them to write programs
• The rules constitute the language syntax
• Example: suffix ‘I’ to specify immediate mode
ADDI R2, R3, 5 (instead of #5)
Assembler Directives
• Other information also needed to translate
source program to object program
• How should symbolic names be interpreted?
• Where should instructions/data be placed?
• Assembler directives provide this information
• ORIGIN defines instruction/data start position
• RESERVE and DATAWORD define data storage
• EQU associates a name with a constant value
Program Assembly & Execution
• From source program, assembler generates
machine-language object program
• Assembler uses ORIGIN and other directives
to determine address locations for code/data
• For branches, assembler computes ±offset
from present address (in PC) to branch target
• Loader places object program in memory
• Debugger can be used to trace execution
Number Notation
• Decimal numbers used as immediate values:
ADDI R2, R3, 93
• Assembler translates to binary representation
• Programmer may also specify binary numbers:
ADDI R2, R3, %01011101
• Hexadecimal specification is also possible:
ADDI R2, R3, 0x5D
• Note that 93  10111012  5D16
Stacks
• A stack is a list of data elements where
elements are added/removed at top end only
• Also known as pushdown stack or
last-in-first-out (LIFO) stack
• We push a new element on the stack top
or pop the top element from the stack
• Programmer can create a stack in the memory
• There is often a special processor stack as well
Processor Stack
• Processor has stack pointer (SP) register
that points to top of the processor stack
• Push operation involves two instructions:
Subtract SP, SP, #4
Store Rj, (SP)
• Pop operation also involves two instructions:
Load Rj, (SP)
Add SP, SP, #4
Subroutines
• In a given program, a particular task may be
executed many times using different data
• Examples: mathematical function, list sorting
• Implement task in one block of instructions
• This is called a subroutine
• Rather than reproduce entire subroutine block
in each part of program, use a subroutine call
• Special type of branch with Call instruction
Subroutines
• Branching to same block of instructions
saves space in memory, but must branch back
• The subroutine must return to calling program
after executing last instruction in subroutine
• This branch is done with a Return instruction
• Subroutine can be called from different places
• How can return be done to correct place?
• This is the issue of subroutine linkage
Subroutine Linkage
• During execution of Call instruction,
PC upated to point to instruction after Call
• Save this address for Return instruction to use
• Simplest method: place address in link register
• Call instruction performs two operations:
store updated PC contents in link register,
then branch to target (subroutine) address
• Return just branches to address in link register
Subroutine Nesting and the Stack
• We can permit one subroutine to call another,
which results in subroutine nesting
• Link register contents after first subroutine call
are overwritten after second subroutine call
• First subroutine should save link register
on the processor stack before second call
• After return from second subroutine,
first subroutine restores link register
Parameter Passing
• A program may call a subroutine many times
with different data to obtain different results
• Information exchange to/from a subroutine
is called parameter passing
• Parameters may be passed in registers
• Simple, but limited to available registers
• Alternative: use stack for parameter passing,
and also for local variables & saving registers
The Stack Frame
• Locations at the top of the processor stack are
used as a private work space by subroutines
• A stack frame is allocated on subroutine entry
and deallocated on subroutine exit
• A frame pointer (FP) register enables access to
private work space for current subroutine
• With subroutine nesting, the stack frame also
saves return address and FP of each caller
Logic Instructions
• AND, OR, and NOT operations on single bits
are basic building blocks of digital circuits
• Similar operations in software on multiple bits
• Using RISC-style instructions, all operands are
in registers or specified as immediate values:
Or R4, R2, R3
And R5, R6, #0xFF
• 16-bit immediate is zero-extended to 32 bits
Shift and Rotate Instructions
• Shifting binary value left/right = mult/div by 2
• Arithmetic shift preserves sign in MS bit
• Rotate copies bits from one end to other end
• Shift amount in register or given as immediate
• Carry flag (discussed later) may be involved
• Examples:
LShiftL R3, R3, #2 (mult by 4)
RotateL R3, R3, #2 (MS bits to LS bits)
Example Program: Digit Packing
• Illustrate shift, logic, byte-access instructions
• Memory has two binary-coded decimal digits
• Pointer set to 1st byte for index-mode access
to load 1st digit, which is shifted to upper bits
• Upper bits of 2nd digit are cleared by ANDing
• ORing combines 2nd digit with shifted 1st digit
for result of two packed digits in a single byte
• 32-bit registers, but only 8 lowest bits relevant
Multiplication and Division
• Signed integer multiplication of n-bit numbers
produces a product with as many as 2n bits
• Processor truncates product to fit in a register:
Multiply Rk, Ri, Rj (Rk  [Ri]  [Rj])
• For general case, 2 registers may hold result
• Integer division produces quotient as result:
Divide Rk, Ri, Rj (Rk  [Ri] / [Rj])
• Remainder is discarded or placed in a register
32-bit Immediate Values
• To construct 32-bit immediates or addresses,
use two instructions in sequence:
OrHigh R2, R0, #0x2000
Or R2, R0, #0x4FF0
• Result is 0x20004FF0 in register R2
• Useful pseudoinstruction:
MoveImmediateAddress R2, LOC
• Assembler can substitute OrHigh & Or
CISC Instruction Sets
• Not constrained to load/store architecture
• Instructions may be larger than one word
• Typically use two-operand instruction format,
with at least one operand in a register
• Implementation of C  A  B using CISC:
Move Ri, A
Add Ri, B
Move C, Ri
CISC Instruction Sets
• Move instruction equivalent to Load/Store
• But also can transfer immediate values
and possibly between two memory locations
• Arithmetic instructions may employ
addressing modes for operands in memory:
Subtract LOC, Ri
Add Rj, 16(Rk)
Additional Addressing Modes
• CISC style has other modes not usual for RISC
• Autoincrement mode: effective address given
by register contents; after accessing operand,
register contents incremented to point to next
• Useful for adjusting pointers in loop body:
Add SUM, (Ri)
MoveByte (Rj), Rk
• Increment by 4 for words, and by 1 for bytes
Additional Addressing Modes
• Autodecrement mode: before accessing
operand, register contents are decremented,
then new contents provide effective address
• Notation in assembly language:
Add Rj, (Ri)
• Use autoinc. & autodec. for stack operations:
Move (SP), NEWITEM (push)
Move ITEM, (SP) (pop)
Condition Codes
• Processor can maintain information on results
to affect subsequent conditional branches
• Results from arithmetic/comparison & Move
• Condition code flags in a status register:
N (negative) 1 if result negative, else 0
Z (zero) 1 if result zero, else 0
V (overflow) 1 if overflow occurs, else 0
C (carry) 1 if carry-out occurs, else 0
Branches using Condition Codes
• CISC branches check condition code flags
• For example, decrementing a register causes
N and Z flags to be cleared if result is not zero
• A branch to check logic condition N  Z  0:
Branch>0 LOOP
• Other branches test conditions for , , , , 
• Also Branch_if_overflow and Branch_if_carry
• Consider CISC-style list-summing program
RISC and CISC Styles
• RISC characteristics include:
simple addressing modes
all instructions fitting in a single word
fewer total instructions
arithmetic/logic operations on registers
load/store architecture for data transfers
more instructions executed per program
• Simpler instructions make it easier to
design faster hardware (e.g., use of pipelining)
RISC and CISC Styles
• CISC characteristics include:
more complex addressing modes
instructions spanning more than one word
more instructions for complex tasks
arithmetic/logic operations on memory
memory-to-memory data transfers
fewer instructions executed per program
• Complexity makes it somewhat more difficult
to design fast hardware, but still possible
Example Programs
• First example program computes:
• First elements of each array, A(0) and B(0), are
stored at memory locations AVEC and BVEC
• Consider RISC and CISC versions of program
• Use Multiply instruction on pairs of elements
and accumulate sum with Add instruction
• Some processors have MultiplyAccumulate





1
0
)
(
)
(
n
i
i
B
i
A
Product
Dot
Example Programs
• Second example searches for 1st occurrence
of pattern string P in target string T
• String P has length m and string T has length n
• Algorithm to implement in RISC/CISC styles:
Encoding of Machine Instructions
• Assembly-language instructions express the
actions to be performed by processor circuitry
• Assembler converts to machine instructions
• Three-operand RISC instructions require
enough bits in single word to identify registers
• 16-bit immediates must be supported
• Instruction must include bits for OP code
• Call instruction also needs bits for address
Concluding Remarks
• Many fundamental concepts presented:
– memory locations, byte addressability, endianness
– assembly-language and register-transfer notation
– RISC-style and CISC-style instruction sets
– addressing modes and instruction execution
– assembler to generate machine instructions
– subroutines and the processor stack
• Later chapters build on these concepts
RISC and CISC Instruction Sets
• Nature of instructions distinguishes computer
• Two fundamentally different approaches
• Reduced Instruction Set Computers (RISC)
have one-word instructions and
require arithmetic operands to be in registers
• Complex Instruction Set Computers (CISC)
have multi-word instructions and
allow operands directly from memory
RISC Instruction Sets
• Focus on RISC first because it is simpler
• RISC instructions each occupy a single word
• A load/store architecture is used, meaning:
–only Load and Store instructions are used
to access memory operands
–operands for arithmetic/logic instructions
must be in registers, or one of them
may be given explicitly in instruction word
RISC Instruction Sets
• Instructions/data are stored in the memory
• Processor register contents are initially invalid
• Because RISC requires register operands,
data transfers are required before arithmetic
• The Load instruction is used for this purpose:
Load procr_register, mem_location
• Addressing mode specifies memory location;
different modes are discussed later
RISC Instruction Sets
• Consider high-level language statement:
C = A + B
• A, B, and C correspond to memory locations
• RTN specification with these symbolic names:
C ← [A] + [B]
• Steps: fetch contents of locations A and B,
compute sum, and transfer result to location C
RISC Instruction Sets
• Sequence of simple RISC instructions for task:
Load R2, A
Load R3, B
Add R4, R2, R3
Store R4, C
• Load instruction transfers data to register
• Store instruction transfers data to the memory
• Destination differs with same operand order

More Related Content

Similar to CO_Chapter2.ppt

Basic Structure of a Computer System
Basic Structure of a Computer SystemBasic Structure of a Computer System
Basic Structure of a Computer SystemAmirthavalli Senthil
 
MCA-I-COA- overview of register transfer, micro operations and basic computer...
MCA-I-COA- overview of register transfer, micro operations and basic computer...MCA-I-COA- overview of register transfer, micro operations and basic computer...
MCA-I-COA- overview of register transfer, micro operations and basic computer...Rai University
 
Introduction to Computer Architecture
Introduction to Computer ArchitectureIntroduction to Computer Architecture
Introduction to Computer ArchitectureKSundarAPIICSE
 
EE5440 – Computer Architecture - Lecture 2
EE5440 – Computer Architecture - Lecture 2EE5440 – Computer Architecture - Lecture 2
EE5440 – Computer Architecture - Lecture 2Dilawar Khan
 
heuring_jordan_----------ch02(1) (1).pptx
heuring_jordan_----------ch02(1) (1).pptxheuring_jordan_----------ch02(1) (1).pptx
heuring_jordan_----------ch02(1) (1).pptxchristinamary2620
 
micro chapter 3jjgffffyeyhhuyerfftfgggffgjj
micro chapter 3jjgffffyeyhhuyerfftfgggffgjjmicro chapter 3jjgffffyeyhhuyerfftfgggffgjj
micro chapter 3jjgffffyeyhhuyerfftfgggffgjjTadeseBeyene
 
Computer organization and architecture
Computer organization and architectureComputer organization and architecture
Computer organization and architectureSubesh Kumar Yadav
 
B.sc cs-ii-u-2.2-overview of register transfer, micro operations and basic co...
B.sc cs-ii-u-2.2-overview of register transfer, micro operations and basic co...B.sc cs-ii-u-2.2-overview of register transfer, micro operations and basic co...
B.sc cs-ii-u-2.2-overview of register transfer, micro operations and basic co...Rai University
 
6_2018_11_23!09_24_56_PM (1).pptx
6_2018_11_23!09_24_56_PM (1).pptx6_2018_11_23!09_24_56_PM (1).pptx
6_2018_11_23!09_24_56_PM (1).pptxHebaEng
 
Bca 2nd sem-u-2.2-overview of register transfer, micro operations and basic c...
Bca 2nd sem-u-2.2-overview of register transfer, micro operations and basic c...Bca 2nd sem-u-2.2-overview of register transfer, micro operations and basic c...
Bca 2nd sem-u-2.2-overview of register transfer, micro operations and basic c...Rai University
 
10 instruction sets characteristics
10 instruction sets characteristics10 instruction sets characteristics
10 instruction sets characteristicsAnwal Mirza
 
Instruction set.pptx
Instruction set.pptxInstruction set.pptx
Instruction set.pptxssuser000e54
 
Module 1-ppt System programming
Module 1-ppt System programmingModule 1-ppt System programming
Module 1-ppt System programmingvishnu sankar
 

Similar to CO_Chapter2.ppt (20)

Basic Structure of a Computer System
Basic Structure of a Computer SystemBasic Structure of a Computer System
Basic Structure of a Computer System
 
Chapter 7
Chapter 7Chapter 7
Chapter 7
 
MCA-I-COA- overview of register transfer, micro operations and basic computer...
MCA-I-COA- overview of register transfer, micro operations and basic computer...MCA-I-COA- overview of register transfer, micro operations and basic computer...
MCA-I-COA- overview of register transfer, micro operations and basic computer...
 
Introduction to Computer Architecture
Introduction to Computer ArchitectureIntroduction to Computer Architecture
Introduction to Computer Architecture
 
EE5440 – Computer Architecture - Lecture 2
EE5440 – Computer Architecture - Lecture 2EE5440 – Computer Architecture - Lecture 2
EE5440 – Computer Architecture - Lecture 2
 
heuring_jordan_----------ch02(1) (1).pptx
heuring_jordan_----------ch02(1) (1).pptxheuring_jordan_----------ch02(1) (1).pptx
heuring_jordan_----------ch02(1) (1).pptx
 
micro chapter 3jjgffffyeyhhuyerfftfgggffgjj
micro chapter 3jjgffffyeyhhuyerfftfgggffgjjmicro chapter 3jjgffffyeyhhuyerfftfgggffgjj
micro chapter 3jjgffffyeyhhuyerfftfgggffgjj
 
Computer organization and architecture
Computer organization and architectureComputer organization and architecture
Computer organization and architecture
 
Programming Techniques.pptx
Programming Techniques.pptxProgramming Techniques.pptx
Programming Techniques.pptx
 
Microprocessor
MicroprocessorMicroprocessor
Microprocessor
 
module-3.pptx
module-3.pptxmodule-3.pptx
module-3.pptx
 
B.sc cs-ii-u-2.2-overview of register transfer, micro operations and basic co...
B.sc cs-ii-u-2.2-overview of register transfer, micro operations and basic co...B.sc cs-ii-u-2.2-overview of register transfer, micro operations and basic co...
B.sc cs-ii-u-2.2-overview of register transfer, micro operations and basic co...
 
6_2018_11_23!09_24_56_PM (1).pptx
6_2018_11_23!09_24_56_PM (1).pptx6_2018_11_23!09_24_56_PM (1).pptx
6_2018_11_23!09_24_56_PM (1).pptx
 
Bca 2nd sem-u-2.2-overview of register transfer, micro operations and basic c...
Bca 2nd sem-u-2.2-overview of register transfer, micro operations and basic c...Bca 2nd sem-u-2.2-overview of register transfer, micro operations and basic c...
Bca 2nd sem-u-2.2-overview of register transfer, micro operations and basic c...
 
10 instruction sets characteristics
10 instruction sets characteristics10 instruction sets characteristics
10 instruction sets characteristics
 
Instruction set.pptx
Instruction set.pptxInstruction set.pptx
Instruction set.pptx
 
Instruction codes
Instruction codesInstruction codes
Instruction codes
 
Arithmetic & Logic Unit
Arithmetic & Logic UnitArithmetic & Logic Unit
Arithmetic & Logic Unit
 
Anshika 1111.pptx
Anshika 1111.pptxAnshika 1111.pptx
Anshika 1111.pptx
 
Module 1-ppt System programming
Module 1-ppt System programmingModule 1-ppt System programming
Module 1-ppt System programming
 

Recently uploaded

Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
TEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxTEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxruthvilladarez
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationdeepaannamalai16
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
EmpTech Lesson 18 - ICT Project for Website Traffic Statistics and Performanc...
EmpTech Lesson 18 - ICT Project for Website Traffic Statistics and Performanc...EmpTech Lesson 18 - ICT Project for Website Traffic Statistics and Performanc...
EmpTech Lesson 18 - ICT Project for Website Traffic Statistics and Performanc...liera silvan
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 

Recently uploaded (20)

FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
TEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxTEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docx
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentation
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
EmpTech Lesson 18 - ICT Project for Website Traffic Statistics and Performanc...
EmpTech Lesson 18 - ICT Project for Website Traffic Statistics and Performanc...EmpTech Lesson 18 - ICT Project for Website Traffic Statistics and Performanc...
EmpTech Lesson 18 - ICT Project for Website Traffic Statistics and Performanc...
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 

CO_Chapter2.ppt

  • 2. Chapter Outline • Memory Locations and Addresses • Memory Operations • Instructions and Instruction Sequencing • Addressing Modes • Assembly Language • Stacks and subroutines • Additional Instructions • Dealing with 32-Bit Immediate Values • CISC Instruction Sets • RISC and CISC Styles
  • 3. Memory Organization • Memory consists of many millions of cells • Each cell holds a bit of information, 0 or 1 • Information usually handled in larger units • A word is a group of n bits • Word length can be 16 to 64 bits • Memory is a collection of consecutive words of the size specified by the word length
  • 4.
  • 5. Word and Byte Encoding • A common word length is 32 bits • Such a word can store a 32-bit signed integer or four 8-bit bytes (e.g., ASCII characters) • For 32-bit integer encoding, bit b31 is sign bit • Words in memory may store data or machine instructions for a program • Each machine instruction may require one or more consecutive words for encoding
  • 6.
  • 7. Addresses for Memory Locations • To store or retrieve items of information, each memory location has a distinct address • Numbers 0 to 2k - 1 are used as addresses for successive locations in the memory • The 2k locations constitute the address space • Memory size set by k (number of address bits) • Examples: k = 20 implies 220 or 1M locations, k = 32 implies 232 or 4G locations
  • 8. Byte Addressability • Byte size is always 8 bits • But word length may range from 16 to 64 bits • Impractical to assign an address to each bit • Instead, provide a byte-addressable memory that assigns an address to each byte • Byte locations have addresses 0, 1, 2, … • Assuming a word length is 32 bits, word locations have addresses 0, 4, 8, …
  • 9. Big- and Little-Endian Addressing • Two ways to assign byte address across words • Big-endian addressing assigns lower addresses to more significant (leftmost) bytes of word • Little-endian addressing uses opposite order • Commercial computers use either approach, and some can support both approaches • Addresses for 32-bit words are still 0, 4, 8, … • Bits in each byte labeled b7 … b0, left to right
  • 10.
  • 11. Word Alignment • # of bytes per word is normally a power of 2 • Word locations have aligned addresses if they begin at byte addresses that are multiples of the number of bytes in a word • Examples of aligned addresses: 2 bytes per word ⇒ 0, 2, 4, … 8 bytes per word ⇒ 0, 8, 16, … • Some computers permit unaligned addresses
  • 12. Memory Operations • Memory contains data & program instructions • Control circuits initiate transfer of data and instructions between memory and processor • Read operation: memory retrieves contents at address location given by processor • Write operation: memory overwrites contents at given location with given data
  • 14. Instruction Set Architecture • Different kinds of instruction available: Types of Instruction • What each instruction looks like: Instruction Format • How Operands are specified: Addressing Modes
  • 15. Types of Instructions • data transfers Instructions • arithmetic and logic Instructions • program sequencing and control • input/output transfers
  • 16. Types of Instructions Data transfers Instructions • memory and the general-purpose and segment registers • Contents in the source remain same • perform operations such as conditional moves, stack access, and data conversion • Examples: – Load(Copy data to register from memory) – Store(Copy data to memory location from register) – Move
  • 17. Types of Instructions Arithmetic and logic Instructions • Instruction consists of arithmetic, logic and shift operations • Arithmetic Instructions: add, subtract, multiply or divide • Logical Instructions: AND, OR, XOR, NOT • Shift Instructions: shift left, shift right
  • 18. Types of Instructions Program sequencing & control Instructions • Jump, conditional branch, subrutine call, return I/o transfers Instructions • Transfer of data to and from an I/O device • Examples: IN and OUT
  • 19. Instruction Format • Three Address Instruction – Add A,B,C C[A] + [B] • Two Address Instruction – Add A,B B[A] + [B] – Value of B is overwritten • One Address Instruction – Add A Acc[A] + Acc • Instruction with zero operands – ADD e.g. Stack – Addition operation perform on the items that are on top of the stack
  • 20. TYPES OF NOTATIONS REGISTER TRANSFER NOTATION ASSEMBLY-LANGUAGE NOTATION
  • 21. Register Transfer Notation(RTN) • Register Transfer Notation is used to describe hardware-level data transfers and operations • […] to denote contents of a location • ← to denote transfer to a destination • Example: R2 ← [LOC] (transfer from LOC in memory to register R2)
  • 22. Register Transfer Notation • RTN can be extended to also show arithmetic operations involving locations • Example: R4 ← [R2] + [R3] (add the contents of registers R2 and R3, place the sum in register R4) • Right-hand expression always denotes a value, left-hand side always names a location
  • 23. Assembly-Language Notation • RTN shows data transfers and arithmetic • Another notation needed to represent machine instructions & programs using them • Assembly language is used for this purpose • For the two preceding examples using RTN, the assembly-language instructions are: Load R2, LOC Add R4, R2, R3
  • 24. Assembly-Language Notation • An instruction specifies the desired operation and the operands that are involved • Examples in this chapter will use English words for the operations (e.g., Load, Store, and Add) • Commercial processors use mnemonics, usually abbreviations (e.g., LD, ST, and ADD) • Mnemonics differ from processor to processor
  • 25. A Program in the Memory • Consider the preceding 4-instruction program • How is it stored in the memory? (32-bit word length, byte-addressable) • Place first RISC instruction word at address i • Remaining instructions are at i + 4, i + 8, i + 12
  • 26.
  • 27. Instruction Execution/Sequencing • How is the program executed? • Processor has program counter (PC) register • Address i for first instruction placed in PC • Control circuits fetch and execute instructions, one after another : straight-line sequencing • During execution of each instruction, PC register is incremented by 4 • PC contents are i + 16 after Store is executed
  • 28. Details of Instruction Execution • Two-phase procedure: fetch and execute • Fetch involves Read operation using PC value • Data placed in instruction register (IR) • To complete execution, control circuits examine encoded machine instruction in IR • Specified operation is performed in steps, e.g., transfer operands, perform arithmetic • Also, PC is incremented, ready for next fetch
  • 29. 0 1 2 3 0101 0000 0000 0110 4 5 Memory +1 Memory Address Register Memory Data Register Instruction Register 0000 0000 0000 0011 Address Bus Data Bus 0000 0000 0000 0011 0101 0000 0000 0110 0101 0000 0000 0110 Instruction Decoder ALU ADD #6 0000 0000 0000 0100 000 0000 0000 0110 PC
  • 30. 0 1 2 3 0101 0000 0000 0110 4 5 Memory Memory Address Register Memory Data Register Instruction Register 0000 0000 0000 0100 Address Bus Data Bus 0000 0000 0000 0011 0101 0000 0000 0110 0101 0000 0000 0110 Instruction Decoder ALU ADD #6 0000 0000 0000 1010 +1 PC
  • 31. Branching • We can illustrate the concept of branching with a program that adds a list of numbers • Same operations performed repeatedly, so the program contains a loop • Loop body is straight-line instruction sequence • It must determine address of next number, load value from the memory, and add to sum • Branch instruction causes repetition of body
  • 32.
  • 33. Branching • Assume that size of list, n, stored at location N • Use register R2 as a counter, initialized to N • Body of loop includes the instruction Subtract R2, R2, #1 to decrement counter in each loop pass • Branch_if_[R2]=0 goes to branch target LOOP as long as contents of R2 are greater than zero • Therefore, this is a conditional branch
  • 34. Branching • Branches that test a condition are used in loops and various other programming tasks • One way to implement conditional branches is to compare contents of two registers, e.g., Branch_if_[R4]>[R5] LOOP • In generic assembly language with mnemonics the same instruction might actually appear as BGT R4, R5, LOOP
  • 35. Registers are faster than memory • For 32-bit memory 232 memory locations • One location can be identified by 32-bit address • For 32-bit registers  5 bit are required to represent • 32 bit reduced to 5 bit
  • 36. MCQ • A collection of lines that connects several devices is called: a. peripheral connection wires b. bus c. Both a and b d. Internal wires • PC Program Counter is also called a. instruction pointer b. memory pointer c. file pointer d. data counter
  • 37. MCQ • The instruction, Add Loc,R1 in RTN is _______ a) AddSetCC Loc+R1 b) R1=Loc+R1 c) Not possible to write in RTN d) R1<-[Loc]+[R1]. • In a system, which has 32 registers the register id is ____ long. a) 16 bit b) 8 bits c) 5 bits d) 6 bits
  • 38. • The two phases of executing an instruction are __________ a) Instruction decoding and storage b) Instruction fetch and instruction execution c) Instruction execution and storage d) Instruction fetch and Instruction processing
  • 39. • When using Branching, the usual sequencing of the PC is altered. A new instruction is loaded which is called as ______ a) Branch target b) Loop target c) Forward target d) Jump instruction
  • 40. • Which registers can interact with the secondary storage? a) MAR b) PC c) IR d) R0
  • 41. • During the execution of a program which gets initialized first? a) MDR b) IR c) PC d) MAR
  • 43. Addressing Modes • Programs use data structures to organize the information used in computations • High-level languages enable programmers to describe operations for data structures • Compiler translates into assembly language • Addressing modes provide compiler with different ways to specify operand locations – Operands can be placed either in processor register or in memory – There are different ways to get operands – The Way which operand is taken from register or memory is named as Addressing modes
  • 44. Addressing Modes • Immediate Mode • Register Mode • Register Indirect Mode • Direct Addressing Mode • Indirect Addressing Mode • Displacement Addressing Mode – Relative Addressing Mode – Base Register Addressing Mode – Stack Addressing Mode • Auto-increment and auto-decrement Addressing Mode
  • 45. Immediate Mode • Operand is specified in the instruction itself. • An immediate mode instruction has an operand field rather than the address field • MVI A,15h A 15h – 15h is immediate operand Move Immediate
  • 46. Register Mode • Operand is stored in the register and this register is present in CPU • The instruction has the address of the Register where the operand is stored • MOV C,A CA – Here A is operand specified in register
  • 47. Register Indirect Mode • Instruction specifies the register whose contents give us the address of operand which is in memory • Register contains the address of operand rather than the operand itself. • MOV A,M A[[H][L]]
  • 49. Direct Addressing Mode • Effective address of operand is present in instruction itself. • Single memory reference to access data. • No additional calculations to find the effective address of the operand. • For Example: ADD R1, 4000 - In this the 4000 is effective address of operand. • LDA 2800h A[2800h] – Load data from memory 2800h to A • NOTE: Effective Address is the location where operand is present.
  • 51. Indirect Addressing Mode • The instruction specifies the indirect address where the effective address of operand is placed • Memory address id specified where actual address of operand ios placed • MOV A,2800h A[[2800h]]
  • 53. Displacement Addressing Mode • the contents of the indexed register is added to the Address part of the instruction, to obtain the effective address of operand. • EA = A + (R), In this the address field holds two values, A(which is the base value) and R(that holds the displacement), or vice versa.
  • 54. Relative Addressing Mode • In this the contents of PC(Program Counter) is added to address part of instruction to obtain the effective address. • When offset added with PC resultant number is memory location where operand will be placed • EA = A + (PC), where EA is effective address and PC is program counter.
  • 56. Base Register Addressing Mode • Contents of base register is added with address part of instruction to obtain effective address • Base address hold Beginning/Base address • Address part of instruction holds offset • When offset added with base resister then the resultant number is memory location where operand will be placed • This can be defined as EA = A + (R), where A is displacement and R holds pointer to base address
  • 57. Base Register Addressing Mode • Example
  • 58. Stack Addressing Mode • Operand is at the top of the stack. For example: ADD, this instruction will POP top two items from the stack, add them, and will then PUSH the result to the top of the stack.
  • 59. Auto-increment and auto-decrement Addressing Mode • Similar to register indirect Addressing mode • Register is incremented or decremented by one after the value used
  • 60. MCQ 1. The instruction, Add #45,R1 does _______ a) Adds the value of 45 to the address of R1 and stores 45 in that address b) Adds 45 to the value of R1 and stores it in R1 c) Finds the memory location 45 and adds that content to that of R1
  • 61. MCQ 2. In the case of, Zero-address instruction method the operands are stored in _____ a) Registers b) Accumulators c) Push down stack d) Cache
  • 62. MCQ 3. The addressing mode which makes use of in- direction pointers is ______ a) Indirect addressing mode b) Index addressing mode c) Relative addressing mode d) Offset addressing mode
  • 63. MCQ 4. In the following indexed addressing mode instruction, MOV 5(R1),LOC the effective address is ______ a) EA = 5+R1 b) EA = R1 c) EA = [R1]. d) EA = 5+[R1].
  • 64. MCQ 5. The addressing mode/s, which uses the PC instead of a general purpose register is ______ a) Indexed with offset b) Relative c) direct d) both Indexed with offset and direct
  • 65. MCQ 6. When we use auto increment or auto decrements, which of the following is/are true? 1) In both, the address is used to retrieve the operand and then the address gets altered 2) In auto increment, the operand is retrieved first and then the address altered 3) Both of them can be used on general purpose registers as well as memory locations a) 1, 2, 3 b) 2 c) 1, 3 d) 2, 3
  • 66. MCQ 7. The addressing mode, where you directly specify the operand value is _______ a) Immediate b) Direct c) Definite d) Relative
  • 67. MCQ 8. _____ addressing mode is most suitable to change the normal sequence of execution of instructions. a) Relative b) Indirect c) Index with Offset d) Immediate
  • 68. MCQ 9. Match the following 1. Indirect a. loop 2. Immediate b. Pointer 3. Auto-increment c. Constants A. 1b 2a 3c B. 1b 2c 3a C. 1c 2a 3b D. 1a 2c 3b
  • 69. MCQ 10. Match the following 1. Indirect a. Array 2. Index b. Relocatable 3. Base Register c. Passing as Parameter A. 1b 2a 3c B. 1b 2c 3a C. 1c 2a 3b D. 1a 2c 3b
  • 70. MCQ 11. Match the following 1. A[i]=B[j] a. Indirect 2. while(*A++) b. Index 3. int temp=*X c. Auto-increment A. 1b 2a 3c B. 1b 2c 3a C. 1c 2a 3b D. 1a 2c 3b
  • 71. Answers Question Answer 1 B 2 C 3 A 4 D 5 B 6 D 7 A 8 A 9 B 10 C 11 B
  • 72. Program for addition of n numbers
  • 73. Exercise • Implement Assembly language Program for multiplication • Implement Assembly language Program for division
  • 74. Assembly Language • Mnemonics (LD/ADD instead of Load/Add) used when programming specific computers • The mnemonics represent the OP codes • Assembly language is the set of mnemonics and rules for using them to write programs • The rules constitute the language syntax • Example: suffix ‘I’ to specify immediate mode ADDI R2, R3, 5 (instead of #5)
  • 75. Assembler Directives • Other information also needed to translate source program to object program • How should symbolic names be interpreted? • Where should instructions/data be placed? • Assembler directives provide this information • ORIGIN defines instruction/data start position • RESERVE and DATAWORD define data storage • EQU associates a name with a constant value
  • 76.
  • 77. Program Assembly & Execution • From source program, assembler generates machine-language object program • Assembler uses ORIGIN and other directives to determine address locations for code/data • For branches, assembler computes ±offset from present address (in PC) to branch target • Loader places object program in memory • Debugger can be used to trace execution
  • 78. Number Notation • Decimal numbers used as immediate values: ADDI R2, R3, 93 • Assembler translates to binary representation • Programmer may also specify binary numbers: ADDI R2, R3, %01011101 • Hexadecimal specification is also possible: ADDI R2, R3, 0x5D • Note that 93  10111012  5D16
  • 79. Stacks • A stack is a list of data elements where elements are added/removed at top end only • Also known as pushdown stack or last-in-first-out (LIFO) stack • We push a new element on the stack top or pop the top element from the stack • Programmer can create a stack in the memory • There is often a special processor stack as well
  • 80. Processor Stack • Processor has stack pointer (SP) register that points to top of the processor stack • Push operation involves two instructions: Subtract SP, SP, #4 Store Rj, (SP) • Pop operation also involves two instructions: Load Rj, (SP) Add SP, SP, #4
  • 81. Subroutines • In a given program, a particular task may be executed many times using different data • Examples: mathematical function, list sorting • Implement task in one block of instructions • This is called a subroutine • Rather than reproduce entire subroutine block in each part of program, use a subroutine call • Special type of branch with Call instruction
  • 82. Subroutines • Branching to same block of instructions saves space in memory, but must branch back • The subroutine must return to calling program after executing last instruction in subroutine • This branch is done with a Return instruction • Subroutine can be called from different places • How can return be done to correct place? • This is the issue of subroutine linkage
  • 83. Subroutine Linkage • During execution of Call instruction, PC upated to point to instruction after Call • Save this address for Return instruction to use • Simplest method: place address in link register • Call instruction performs two operations: store updated PC contents in link register, then branch to target (subroutine) address • Return just branches to address in link register
  • 84.
  • 85. Subroutine Nesting and the Stack • We can permit one subroutine to call another, which results in subroutine nesting • Link register contents after first subroutine call are overwritten after second subroutine call • First subroutine should save link register on the processor stack before second call • After return from second subroutine, first subroutine restores link register
  • 86. Parameter Passing • A program may call a subroutine many times with different data to obtain different results • Information exchange to/from a subroutine is called parameter passing • Parameters may be passed in registers • Simple, but limited to available registers • Alternative: use stack for parameter passing, and also for local variables & saving registers
  • 87. The Stack Frame • Locations at the top of the processor stack are used as a private work space by subroutines • A stack frame is allocated on subroutine entry and deallocated on subroutine exit • A frame pointer (FP) register enables access to private work space for current subroutine • With subroutine nesting, the stack frame also saves return address and FP of each caller
  • 88.
  • 89. Logic Instructions • AND, OR, and NOT operations on single bits are basic building blocks of digital circuits • Similar operations in software on multiple bits • Using RISC-style instructions, all operands are in registers or specified as immediate values: Or R4, R2, R3 And R5, R6, #0xFF • 16-bit immediate is zero-extended to 32 bits
  • 90. Shift and Rotate Instructions • Shifting binary value left/right = mult/div by 2 • Arithmetic shift preserves sign in MS bit • Rotate copies bits from one end to other end • Shift amount in register or given as immediate • Carry flag (discussed later) may be involved • Examples: LShiftL R3, R3, #2 (mult by 4) RotateL R3, R3, #2 (MS bits to LS bits)
  • 91.
  • 92.
  • 93. Example Program: Digit Packing • Illustrate shift, logic, byte-access instructions • Memory has two binary-coded decimal digits • Pointer set to 1st byte for index-mode access to load 1st digit, which is shifted to upper bits • Upper bits of 2nd digit are cleared by ANDing • ORing combines 2nd digit with shifted 1st digit for result of two packed digits in a single byte • 32-bit registers, but only 8 lowest bits relevant
  • 94.
  • 95. Multiplication and Division • Signed integer multiplication of n-bit numbers produces a product with as many as 2n bits • Processor truncates product to fit in a register: Multiply Rk, Ri, Rj (Rk  [Ri]  [Rj]) • For general case, 2 registers may hold result • Integer division produces quotient as result: Divide Rk, Ri, Rj (Rk  [Ri] / [Rj]) • Remainder is discarded or placed in a register
  • 96. 32-bit Immediate Values • To construct 32-bit immediates or addresses, use two instructions in sequence: OrHigh R2, R0, #0x2000 Or R2, R0, #0x4FF0 • Result is 0x20004FF0 in register R2 • Useful pseudoinstruction: MoveImmediateAddress R2, LOC • Assembler can substitute OrHigh & Or
  • 97. CISC Instruction Sets • Not constrained to load/store architecture • Instructions may be larger than one word • Typically use two-operand instruction format, with at least one operand in a register • Implementation of C  A  B using CISC: Move Ri, A Add Ri, B Move C, Ri
  • 98. CISC Instruction Sets • Move instruction equivalent to Load/Store • But also can transfer immediate values and possibly between two memory locations • Arithmetic instructions may employ addressing modes for operands in memory: Subtract LOC, Ri Add Rj, 16(Rk)
  • 99. Additional Addressing Modes • CISC style has other modes not usual for RISC • Autoincrement mode: effective address given by register contents; after accessing operand, register contents incremented to point to next • Useful for adjusting pointers in loop body: Add SUM, (Ri) MoveByte (Rj), Rk • Increment by 4 for words, and by 1 for bytes
  • 100. Additional Addressing Modes • Autodecrement mode: before accessing operand, register contents are decremented, then new contents provide effective address • Notation in assembly language: Add Rj, (Ri) • Use autoinc. & autodec. for stack operations: Move (SP), NEWITEM (push) Move ITEM, (SP) (pop)
  • 101. Condition Codes • Processor can maintain information on results to affect subsequent conditional branches • Results from arithmetic/comparison & Move • Condition code flags in a status register: N (negative) 1 if result negative, else 0 Z (zero) 1 if result zero, else 0 V (overflow) 1 if overflow occurs, else 0 C (carry) 1 if carry-out occurs, else 0
  • 102. Branches using Condition Codes • CISC branches check condition code flags • For example, decrementing a register causes N and Z flags to be cleared if result is not zero • A branch to check logic condition N  Z  0: Branch>0 LOOP • Other branches test conditions for , , , ,  • Also Branch_if_overflow and Branch_if_carry • Consider CISC-style list-summing program
  • 103.
  • 104. RISC and CISC Styles • RISC characteristics include: simple addressing modes all instructions fitting in a single word fewer total instructions arithmetic/logic operations on registers load/store architecture for data transfers more instructions executed per program • Simpler instructions make it easier to design faster hardware (e.g., use of pipelining)
  • 105. RISC and CISC Styles • CISC characteristics include: more complex addressing modes instructions spanning more than one word more instructions for complex tasks arithmetic/logic operations on memory memory-to-memory data transfers fewer instructions executed per program • Complexity makes it somewhat more difficult to design fast hardware, but still possible
  • 106. Example Programs • First example program computes: • First elements of each array, A(0) and B(0), are stored at memory locations AVEC and BVEC • Consider RISC and CISC versions of program • Use Multiply instruction on pairs of elements and accumulate sum with Add instruction • Some processors have MultiplyAccumulate      1 0 ) ( ) ( n i i B i A Product Dot
  • 107.
  • 108.
  • 109. Example Programs • Second example searches for 1st occurrence of pattern string P in target string T • String P has length m and string T has length n • Algorithm to implement in RISC/CISC styles:
  • 110.
  • 111.
  • 112. Encoding of Machine Instructions • Assembly-language instructions express the actions to be performed by processor circuitry • Assembler converts to machine instructions • Three-operand RISC instructions require enough bits in single word to identify registers • 16-bit immediates must be supported • Instruction must include bits for OP code • Call instruction also needs bits for address
  • 113.
  • 114. Concluding Remarks • Many fundamental concepts presented: – memory locations, byte addressability, endianness – assembly-language and register-transfer notation – RISC-style and CISC-style instruction sets – addressing modes and instruction execution – assembler to generate machine instructions – subroutines and the processor stack • Later chapters build on these concepts
  • 115. RISC and CISC Instruction Sets • Nature of instructions distinguishes computer • Two fundamentally different approaches • Reduced Instruction Set Computers (RISC) have one-word instructions and require arithmetic operands to be in registers • Complex Instruction Set Computers (CISC) have multi-word instructions and allow operands directly from memory
  • 116. RISC Instruction Sets • Focus on RISC first because it is simpler • RISC instructions each occupy a single word • A load/store architecture is used, meaning: –only Load and Store instructions are used to access memory operands –operands for arithmetic/logic instructions must be in registers, or one of them may be given explicitly in instruction word
  • 117. RISC Instruction Sets • Instructions/data are stored in the memory • Processor register contents are initially invalid • Because RISC requires register operands, data transfers are required before arithmetic • The Load instruction is used for this purpose: Load procr_register, mem_location • Addressing mode specifies memory location; different modes are discussed later
  • 118. RISC Instruction Sets • Consider high-level language statement: C = A + B • A, B, and C correspond to memory locations • RTN specification with these symbolic names: C ← [A] + [B] • Steps: fetch contents of locations A and B, compute sum, and transfer result to location C
  • 119. RISC Instruction Sets • Sequence of simple RISC instructions for task: Load R2, A Load R3, B Add R4, R2, R3 Store R4, C • Load instruction transfers data to register • Store instruction transfers data to the memory • Destination differs with same operand order