Implementing an 8 bit fixed point register
grante at visi.com
Tue Jul 1 21:38:29 CEST 2008
On 2008-07-01, Terry Reedy <tjreedy at udel.edu> wrote:
> nickooooola wrote:
>> Hello to all
>> I'm about to write a simulator for a microcontroller in python
>> (why python? because I love it!!!)
>> but I have a problem.
>> The registry of this processor are all 8 bit long (and 10 bit for some
>> other strange register)
>> and I need to simulate the fixed point behaviour of the register,
>> and to access the single bit.
> In Python3, I would use a (mutable) bytearray.
> IDLE 3.0b1
> >>> reg1 = bytearray((0,)*8) # or *10 for 10 bits
> >>> reg1
> >>> reg1=1
> >>> reg1
> >>> tuple(reg1)
> (0, 1, 0, 0, 0, 0, 0, 0)
> A bytearray subclass could enforce that all 'bits' (stored as bytes) are
> 0 or 1, have a customized representation to your taste, and add methods
> like .flipall().
It seems like implementing ALU operations on such arrays would
be a lot more work than implementing bit-indexing on a type
derived on a more "integer" like base. I'm pretty fuzzy on how
one sub-classes basic things like integers, so maybe I'm all
wet, and adding __getitem__ and __setitem__ to an integer type
isn't even possible.
Grant Edwards grante Yow! Do you guys know we
at just passed thru a BLACK
visi.com HOLE in space?
More information about the Python-list