19
1. MAR and MBR is the
part of
User visible Register
Address Register
condition code Register
control status Register
Answers
Answer:
Explanation:
• User-visible registers: These enable the assembly-language programmer to minimize main
memory references by optimizing the use of registers. For high-level languages, an optimizing compiler will attempt to make intelligent choices of which variables to assign to registers and which to main memory locations. Some high-level languages, such as C and C++,
allow the programmer to suggest to the compiler which variables should be held in registers.
• Control and status registers: These are used by the processor to control the operation of
the processor and by privileged, operating-system routines to control the execution of programs.
POP 6-1 Computer Components: Top-Level View
CPU Memory
MAR
MBR
PC
IR
I/O AR
I/O BR
Buffers
I/O Module
Instruction
Instruction
Data
Data
Data
Data
Instruction
PC = Program counter
IR = Instruction register
MAR = Memory address register
MBR = Memory buffer register
I/O AR = I/O address register
I/O BR = I/O buffer register
PART OF THE PICTURE: Computer Architecture 3
There is not a clean separation of registers into these two categories. For example, on some machines
the program counter is user visible, but on many it is not. For purposes of the following discussion, however, it is convenient to use these categories.
User-Visible Registers. A user-visible register is one that may be referenced by means of
the machine language that the processor executes and that is generally available to all programs,
including application programs as well as system programs. The following types of registers are
typically available: data, address, and condition codes.
Data registers can be assigned to a variety of functions by the programmer. In some cases, they are
general purpose in nature and can be used with any machine instruction that performs operations on data.
Often, however, there are restrictions. For example, there may be dedicated registers for floating-point
operations.
Address registers contain main memory addresses of data and instructions, or they contain a portion
of the address that is used in the calculation of the complete address. These registers may themselves be
somewhat general purpose, or they may be devoted to a particular addressing mode. Examples include:
• Index register: Indexed addressing is a common mode of addressing that involves adding
an index to a base value to get the effective address.
• Segment pointer: With segmented addressing, memory is divided into variable-length
blocks of words called segments. A memory reference consists of a reference to a particular
segment and an offset within the segment; this mode of addressing is important in memory
management. In this mode of addressing, a register is used to hold the address of the base
(starting location) of the segment. There may be multiple registers; for example, one for the
operating system (i.e., when operating-system code is executing on the processor) and one
for the currently executing application.
• Stack pointer: If there is user-visible stack addressing, then typically the stack is in main
memory and there is a dedicated register that points to the top of the stack. This allows the
use of instructions that contain no address field, such as push and pop.