In x86 assembly language there are two registers named BX and DX. In the 32bit architecture, their names are EBX, EDX and in 64bit RBX and RDX. The lower byte is respectively BL, DL and the higher byte BH and DH.
Writing in assembly language, it is most common practice, lower case to be used: bx,dx, ebx, edx and so on.
As you can see, in lower case these register names are much less readable, because the letters "b" and "d" look very similar.
One possible explanation of this phenomenon was provided by this answer. In assembly language, in contrast to high level languages and regular text, the source is organized by columns.
The reading of this source is not clear left-to-right, but column wise. This way, the horizontal differences between "b" and "d" are not enough for clear distinction between them. See the example source in NOTE3.
I have an idea, that for the assembly language source editor, some font has to be developed, where these 2 letters to be clearly different.
But how this goal can be achieved without sacrificing legibility of the text? In other words - how to make these letters to be completely different and in the same time to remain "b" and "d" usual letters?
NOTE1: I am not looking for suitable "programming font". I have nothing against to draw it myself. The big question is what actually to draw. :)
NOTE3: One example of problematic source code (function edx=abs(edx), ebx is used as a scratch register):
mov ebx, edx sar ebx, 31 xor edx, ebx sub edx, ebx
The same code with a bug:
mov ebx, edx sar ebx, 31 xor ebx, edx sub edx, ebx
The same code using ecx as a scratch register - it looks much more clear:
mov ecx, edx sar ecx, 31 xor edx, ecx sub edx, ecx
... and with the same bug:
mov ecx, edx sar ecx, 31 xor ecx, edx sub edx, ecx