RodnayQuest
Rodnay, my guide
Whisper in the night
Chapter 1 - Basic Concepts
- 8 bits = 1 byte
- 4 bits = 1 nibble
Binary format is used here for three internal representation of information: program, numbers, alphanumerics.
Program
Instructions are represented by either one byte (short instruction) or multiple bytes. Multi-bytes instructions takes more time than single-byte short instructions, because the 6502 is a 8-bit microprocessor, so it fetches bytes successively from its memory.
Numbers
Three are three representations of numeric data: integer, signed, decimal.
Two's Complement Representation
In the two's complement representation, positive numbers are still represented, in signed binary, just like in one's complement. The difference lies in the representation of negative numbers. A negative number represented in two's complement is obtained by first computing the one's complement, and then adding one.
BCD Representation
The principle used in representing numbers in BCD is to encode each decimal digit separately, and to use as many bits as necessary to represent the complete,number exactly.
Integer
Direct binary representation:
b7b6b5b4b3b2b1b0 = b7*2^7 + b6*2^6 + b5*2^5 + b4*2^4 + b3*2^3 + b2*2^2 + b1*2^1 + b0*2^0 128 64 32 16 8 4 2 1
E1.1
11111100 = 128 + 64 + 32 + 16 + 8 + 4 + 0 + 0 = 252
257 cannot be represented with 8 bits, with 9 bits it would be 1 0000 0001
E1.3
19/2 = 9 remains 1 <- LSB 9/2 = 4 remains 1 4/2 = 2 remains 0 2/2 = 1 remains 0 1/2 = 0 remains 1 <- MSB
19 -> 00010011 -> 16 + 2 + 1 = 19
Addition:
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 + carry of 1
E1.4
5 00000101 + 10 00001010 ------------ 15 00001111 00001111 -> 8 + 4 + 2 + 1 = 15
15/2 = 7 remains 1 7/2 = 3 remains 1 3/2 = 1 remains 1 1/2 = 0 remains 1
E1.5
1111 + 0001 ---- 0000 + Carry of 1
The result does not fit in 4 bits!
Signed
S b b b b b b b | `-----------' | | | `-> NUMBER MAGNITUDE (7 bits) | `-> SIGN: 0 positive 1 negative
E1.6
5 = 00000101 -5 = 10000101
One's complement, used as intermediary step to allow correct signed additions.
5 = 00000101 DIRECT BINARY REPRESENTATION or SIGNED BINARY (POS) -5 = 10000101 SIGNED BINARY (NEG) -5 = 11111010 ONE'S COMPLEMENT
E1.7
6 = 00000110 DIRECT BINARY REPRESENTATION -6 = 11111001 ONE'S COMPLEMENT
Two's complement:
- for positive number = signed binary representation
- for negative number = one's complement + 1
All signed integers in the 6502 are internally represented as two's complement.
Example:
5 = 00000101 TWO'S COMPLEMENT (same as POSITIVE SIGNED BINARY) -5 = 11111011 TWO'S COMPLEMENT (11111010 + 1)
E1.8
+127 -> 01111111
E1.9, E1.10, E.1.11
-128 -> 10000000
The magnitude of an signed integer is 7 bits, so the smaller number that can be represented is 0 and the larger 127.
20 -> 00010100 11101011 11101100 00010011 00010100 -> 20!
Chapter 2: The Quest Continues
E1.12, E1.13, E1.14
10111111 + 11000001 __________ = 10000000 V:NO C:Yes CORRECT
11111010 + 11111001 __________ = 11110011 V:No C:Yes CORRECT
00010000 + 01000000 __________ = 01010000 V:No C:No CORRECT Nothing happening here
01111110 + 00101010 __________ = 10101000 V: Yes C:No ERROR help overflow fix plz
E1.13 I am trying to understand why carry and overflow cancel each other out when adding a negative number and a positive number. But I can't find a decent calculation that shows this.
E1.14
Two bytes, largest and smallest number. largest:32767 smallest:-32768
E1.15
Largest negative integer in two's complement triple precision format.
-8388608
E1.16
BCD representation = Binary Coded Decimal. Using binary to represent numbers 0 to 9 in 4 bits and not to worry about the amount of bits used for a number. (using 4 bits per decimal)
29 = 0010 1001 (2) (9) 91 = 1001 0001 (9) (1)
E1.17
1010 0000 is not a valid BCD because 1010 is unused in BCD
E1.18
-23123 in multibyte BCD is
5 - 2 3 1 2 3 0000 0101 0001 0010 0011 0001 0010 0011
The first 5 states that there will be 5 nibbles of BCD for the numbers. In this convention: the - sign doens't count, why not 6 nibbles? Why is the 5 in a byte and not in a nibble?
Log
DJ Crunk
- 08/05/17 - Chapter 1 - E1.4
- ??/??/17 - Chapter 1 - E1.11
ultrageranium
- 11/05/17 - Chapter 1 - E1.11