<story><title>How the Z80&apos;s registers are implemented</title><url>http://www.righto.com/2014/10/how-z80s-registers-are-implemented-down.html</url></story><parent_chain></parent_chain><comment><author>VLM</author><text>If you think swapping via register renaming is creative, you&amp;#x27;d really like barrel shifters.&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Barrel_shifter&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Barrel_shifter&lt;/a&gt;&lt;p&gt;The easiest way to shift bits isn&amp;#x27;t &amp;quot;adder like&amp;quot; with carry propagation across data lines (sorta), although that could be done.  The easiest way is just to phase distort the bus (sorta) so what you called bit X is now bit X-4 for all bits on the bus, and use a 2x1 mux to select which, and cascade rollers in binary (you don&amp;#x27;t need a roller for all integer numbers if you can cascade them 16, 8, 2, 1 position only activating some rolls).  If you can rotate, you can shift by adding one more stage at the end that does bit oriented ops to clear MSBs or LSBs.  Also if your roller is capable of rolling all bits on the bus, you don&amp;#x27;t need two rollers one in each direction.  Latency does add up of course, all those cascaded ops.&lt;p&gt;Also I saw in the notes the Rodney Zaks z80 book being referenced.  I learned assembly from that book, back when it was new.  I enjoyed that book.  I also looked at the PDF scan of someone&amp;#x27;s beat up copy... remember when textbooks were only $10.95 each?</text></comment>
<story><title>How the Z80&apos;s registers are implemented</title><url>http://www.righto.com/2014/10/how-z80s-registers-are-implemented-down.html</url></story><parent_chain></parent_chain><comment><author>sudowhodoido</author><text>A little comment regarding the Z80 vs 6502 register count: I always consider the 6502 to have 256 registers (zero page) and an accumulator and two index registers. Never a shortage if you use it like that...</text></comment>