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.
1
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.
1