The program counter (PC) and stack pointer (SP) registers are 16-bit registers in the 8085 and in the 8086/8088 because that is how Intel designed the processors.
there are 14 registers in 8088 micro processor. All the 14 are 16 bit registers. They are4 segment registers viz - code segment register, stack segment register, data segment register, extra segment register.general registers are - accumulator register i.e. AX, base register i.e. BX, count register i.e. CX, data register i.e. DX and stack pointer (SP), base pointer (BP).index registers are - source index(SI), destination index(DI),and the other registers are instruction pointer and flags register.
The various 16-bit registers on the 8085 are BC, DE, HL, SP, PC.
PC (Program Counter) IX (Index Register X) IY (Index Register Y) SP (Stack Pointer)
There are 6 general purpose Registers and Two special purpose registers: General purpose registers(8 bit basically) are B,C,D,E,H,L and SPECIAL Purpose resisters are STACK PONITER,PROGRAM COUNTER these two are 16 bit registers. If u want make general purpose registers as 16 bit registers, the combination is BC,DE,HL these are 16 bit pair registers
The program counter (PC) and the stack pointer (SP).
Arithmetic Logic Unit, usually contains registers for storing operands and results.Control Unit, contains registers for the program counter, and current instruction, may contain other registers like a program status word (PSW) register, subroutine return address register, stack pointer register, branch condition code register, etc. depending on the architecture.Memory Unit, may contain a memory address register (MAR) and a memory data register (MDR) on some architectures it may contain memory management registers to control memory mapping, memory protection, virtual memory, etc.Input/Output Units, contains data input and data output registers, may also contain port configuration control registers, port status registers, direct memory access (DMA) registers, data channel management registers, etc.In other words, all units in a computer normally contain and employ at least one register. Some of these registers are directly visible to the programmer, but others are hidden and managed entirely by the hardware (e.g. the program counter and current instruction registers in the Control Unit).
instruction register is used to store the next instruction to be executed. instruction pointer is used to store the address of the next instruction to be executed.
A stored-program computer at least needs to know which instruction it has to execute next. Other memory addresses of special significance are e.g. the top of one or more stacks, or addresses to be used by instructions.To keep track of such addresses, all CPUs have one or more registers; for instance the address of the next instruction is stored in the instruction pointer, a.k.a. program counter. Which and how many registers of a CPU are designated to keep addresses depends on the CPU type. The Z80 for instance has a program counter, a stack pointer, two index registers and an indirect address register doubling as 16 bit accumulator, while the contemporay 6502 only has a program counter and a stack pointer.
In the 8086/8088 microprocessor, there are eight 8 bit general registers, AH, AL, BH, BL, CH, CL, and DH, DL. They can be used as four 16 bit registers AX, BX, CX, and DX. There are four 16 bit pointer/index registers, SP (stack pointer), BP (base pointer), SI (source index), and DI (destination index). There are four 16 bit segment registers, CS (code segment), DS (data segment), SS (stack segment), and ES (extra segment). There is the 16 bit instruction pointer, IP, and there is a 16 bit flags register.
Program Counter( PC)stores the 16-bit memory address of the next instruction to be fetched. Stack Pointer (SP)stores the address of a memory location which is used as a stack.
The stack pointer keeps track of the top of the stack used by the current thread. The program counter keeps track of the next instruction in a program. Both are registers and both store a memory address.
The Program Counter and Stack Pointer registers are called special purpose registers because they can not be used arbitrarily; they are, well, special. You cannot, for instance, load a new value into the Program Counter and blithely continue, that action would cause an unconditional jump. Also, the Program Counter is automatically incremented by the size of the instruction, so you can not just put something in it and expect its value to persist. Similarly, you cannot load a new value into the Stack Pointer without losing the entire stack context that you are in.