eval('07') works, eval('08') fails, why?

Grant Edwards invalid at invalid
Fri Jan 9 20:47:27 CET 2009

On 2009-01-09, Dennis Lee Bieber <wlfraed at ix.netcom.com> wrote:
> On Thu, 08 Jan 2009 09:46:26 -0600, Grant Edwards <invalid at invalid>
> declaimed the following in comp.lang.python:
>> Heathkit Z80 stuff used octal notation too.
> 	Octal worked well for the old 8080 and derivative processors as
> there were only 7 registers and "memory/indirect" to encode in an
> instruction... So (pseudo example) a MOV command might have been
> 	01sssddd (binary)
> or
> 	1SD (octal)
> 	and S or D representing
> 	A		1
> 	B		2
> 	C		3
> 	D		4
> 	E		5
> 	H		6
> 	L		7
> 	Mem	0	(indirect via contents of HL pair)

I presume that's why DEC chose octal for the PDP-11 also. There
were 8 registers and 8 addressing modes, so they ended up with
several fields within the opcodes that were three-bits wide and
aligned with octal digits:


When I was in University, we spent an entire quarter studying
the PDP-11 instruction set at the binary/octal level and
discussing instruction decoding and sequencing.  We wrote a few
PDP-11 assembly language programs as well, but the course was
more about machine level instruction sets than about assembly

Octal made a lot of sense if you had to deal with raw memory,
but once you had access to an assembler and disassembler it
didn't really matter.

Grant Edwards                   grante             Yow! NANCY!!  Why is
                                  at               everything RED?!

More information about the Python-list mailing list