Section 01 Part 01 – Computer Memory “Computers, huh?  I've heard it all boils down to just a bunch of ones and zeroes.... I don't know how that enables me to see naked women, but however it works, God bless you guys.” ~From the television show King of Queens, spoken by the character Doug Heffernan

Introduction

The first thing you’ll need to know, is how computers store memory, this will be a good and simple starting point.

Binary

Computers store memory in “bits”, each bit can be in one of two possible states:

• 0 – Clear
• 1 – Set

Bits are usually grouped together in groups of 4, for example 0100, a group of 4 bits is called a “nybble”.  There are 16 possible nybbles that you can make:

 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Memorising bits can become very tricky and very confusing, so to make it easier, each of these nybbles have a digit that represents them:

 Binary Hexadecimal 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F

As you can see, the left column is our 16 nybbles in binary.  In the right column, is the same 16 nybbles, but in “hexadecimal” form.

So, as an example here, 0011 in binary is the same as 3 in hexadecimal, we use hexadecimal digits because they are smaller and easier to remember, you’ll remember the digit 8 more than 1000 any day.  All that you need to remember is that they are pretty much the same thing.

Counting

Normal numbers that you use in your every day life count upwards like so:

 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, etc…

I’m sure you are more than familiar with counting, hell, even a 3 year old is capable of counting.  This normal counting system is called “decimal”.

Counting in hexadecimal however, is slightly different:

 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  A,  B,  C,  D,  E,  F,  10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F,  20, 21, 22, 23, 24, 25, etc…

As you can see, hexadecimal numbers count up to 9 just like the decimal numbers, but they don’t continue to 10 right away, they count through A, B, C, D, E, F then 10.  These extra 6 digits (A to F) come after 9.  The same applies to all digits, for example, if you have the number 9F, and you add 1 to it, you won’t get 100, instead, you’ll get A0.

 Binary Hexadecimal Decimal 0000 0 0 0001 1 1 0010 2 2 0011 3 3 0100 4 4 0101 5 5 0110 6 6 0111 7 7 1000 8 8 1001 9 9 1010 A 10 1011 B 11 1100 C 12 1101 D 13 1110 E 14 1111 F 15

The table above shows the 16 possible nybbles in binary, hexadecimal, and decimal, just so we’re on the right level here, the nybble 1100 in binary, is the same as the nybble C in hexadecimal, and 12 in decimal.  They all mean the same thing, just a different way of representing nybbles.

We’ll be working with hexadecimal more in this tutorial, and I’ll be calling it “hex” from now on, as it’s much smaller than hexadecimal.

Data Sizes

By now, you should know what a nybble is (four bits grouped together), but we also have other sizes:

• If you group two nybbles together (e.g. 0100 1101), you get what is known as a “byte”.
• If you group two “bytes” together (e.g. 0100 1101 1011 0000), you get what is known as a “word”.
• If you group two “words” together (e.g. 0100 1101 1011 0000 1111 0001 0000 0110), you get what is known as a “long-word”.

Sizes don’t stop there of course, they do continue, doubling each time, however, the 68k handles data only up to the size of a long-word, and no higher, so we don’t really need to know what’s beyond that.  Here’s a table to help clear things up a bit:

 Size binary hexadecimal nybble 0010 2 byte 0010 1100 2C word 0010 1100 1111 0101 2C F5 long-word 0010 1100 1111 0101 1001 1101 0111 0110 2C F5 9D 76

 Previous Part