Performing arithmetic

To perform arithmetic with the 6502 requires various manipulations to get around what could be seen as a major limitation, when compared to other microprocessors – the 6502 only has addition and subtraction instructions! You may wonder how it is possible to perform division and multiplication! Well, thankfully it is possible.

Addition

We can perform addition by using the instruction ADC. ADC means ADd with Carry. Before addition we need to make sure that the carry is clear, so we use CLC, which is CLear Carry.

When two numbers are added together, the 6502 produces an 8-bit number with a carry-bit.

00000001
+00000001
————–
00000010

The way that this works is by comparing each digit. 1 + 1 = 10. The 0 becomes the least most significant bit of the result and the 1 is carried over. The next seven calculations are 0 + 0 = 0.

Increment and decrement

There are instructions that allow us to increment and decrement a value. You may wonder why these are included in a section on arithmetic but these instructions are a form of arithmetic! The increment and decrement instructions add and subtract 1 to a number and therefore provide a means of performing addition and subtraction when you want to add or subtract 1.

INX and INY can be used to increment the value of the X and Y registers respectively.

DEX and DEY can be used to decrement the value of the X and Y registers respectively.

There are 2 further instructions, INC and DEC, which increment and decrement a value in a given memory address.