I'm trying to make my C programming exciting by learning assembly programming.

I've encountered an image of flag registers in 8085 assembly programming. In that image blocks are named from d0-d7(numerals in subscript). Why are they named 'd'? Is this arbitrarily chosen? There is another register with the name 'D', are both same or different?


If the image you saw is like this one, D0-D7 imply bit positions in the status register, called F (for flags) when part of the AF register pair. The Ds are misleading because they imply some (nonexistent) relationship to the D register or the data pins (which are multiplexed with the address lines and are actually called AD0-AD7).

Describing bit positions for the status flags doesn't mean much of anything for most people because the only instructions that operate on F deal with a single bit at a time (conditional jumps, conditional subroutine calls and the instructions that set and clear the carry flag). The only way to operate on the flags as a whole would be to transfer them to or from another register by way of the stack.

  • Yes, that's how the image looked. Thanks for replying.
    – want2code
    Feb 18 '15 at 17:16

Yes there is difference

d0-d7 are 8 bit data bus and D is one of the register in 8085


In 8086 assembly that I learnt in Uni, D stood for data. There were four main register groups, AX, BX, CX, DX. Accumulator, Base, Count, and Data. And I suspect it didn't hurt that they were ABCD.

  • The register structure on the 8086 was not the same as the 8085.
    – Blrfl
    Feb 18 '15 at 13:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.