[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: VIM Q again

Mikkel L. Ellertson wrote:
Cameron Simpson wrote:
On 02Jun2008 02:09, Gene Heskett <gene heskett verizon net> wrote:
| Jump tables scattered around in your code, taking up valuable space cuz the | darned thing doesn't have a conditional long branch ability, just for starters.

Hmm. I don't seem to recall needing jump tables, but perhaps my code
was smaller than yours. In fact, I've got some z80 code right here [...]
The long jump JP command allows conditionals. The 8080 might not have;
I never used that, either.  I did have a Z80 macro for measuring the
length of the jump and using a JR instead of a JP where possible, but
JPs definitely allowed conditions.

The 8080/8085 had jump to an absolute address, with or with out conditions, but did not have the jump relative that the Z80 did. So even for a jump of 126 bytes away, you had to use the 3 byte jump instructions.

The Z80 had:

	JR idx(unconditional)
	JR Z,idx (jump relative if zero)
	JR NZ,idx (jump relative if non-zero)
	JR C,idx (jump relative if carry)
	JR NC,idx (jump relative if non-carry)

And one of my favorites for loops:

	DJNZ idx (decrement and jump relative if non-zero)

So, yes, the Z80 had conditional relative jumps.  It also had that nice
set of secondary registers...very handy for interrupt processing.

- Rick Stevens, Systems Engineer                       rps2 nerd com -
- Hosting Consulting, Inc.                                           -
-                                                                    -
-           Lottery: A tax on people who are bad at math.            -

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]