[Coco] Assembler Question???
jdaggett at gate.net
jdaggett at gate.net
Wed Sep 2 15:19:30 EDT 2009
On 2 Sep 2009 at 11:49, William Astle wrote:
> jdaggett at gate.net wrote:
> > That is what I would expect. To better qualify what my question better is what is the
> > binary code generated from a SUBA #1. My suspicion is;
> >
> > When SUBA #1 ( immedate mode) is assembled and it is stored in binary form as
> >
> > $80 $FF instead of $80 $01.
> >
> >
> > Why I think this is because of the two things. One from what I remember from teh
> > MC6800 schematic, there was an internal adder but no subtractor. Subtraction was done
> > by 2's compliment. Also by the branch relative instruction offset byte(s) are stored as 2's
> > compliment so that a simple add is performed and the adition is unsigned addition.
> >
> > Also the Motorola Freeware Assembler mentions that arithmetic is done is 2's
> > complement. Thus this implies that subtraction is done with 2's complement.
> >
> > I can be wrong about this and to do addition internally, one port to the ALU has a 2's
> > complement generator at its input to do subtraction by addition
> >
> > Any way I can implement a 2's complementor and then do add and either invoke it or
> > not.
>
> The assembler does not do anything special with SUB instructions. SUBA
> #1 is encoded as $80 $01. After all, if it did expect something special,
> SUB instructions would not work with data accessed via indexing and so on!
>
> Note that both SUB and ADD take the same number of clock cycles so
> whatever the CPU does internally fits in a clock cycle.
>
>
> --
> William Astle
William
Turning on or off a 2's complementor internally is easy. Just takes up a bit more area on
the chip and no increase in time.
thanks
james
More information about the Coco
mailing list