 In this section, we're going to start looking at hardware. Digital logic will form essentially the foundation for everything else that we'd like to build with our hardware. We're going to be focusing on the logical principles that will allow us to connect very simple hardware devices to build larger structures. Then we're going to start assembling those logic gates to make things that we'll actually be interested in using when we get to building a processor. So we'll look at how we can build a multiplexer. A multiplexer is just a very simple device that allows us to choose one of two inputs. But we're going to need a whole lot of these when we start building our processor. We'll have a whole lot of places where we need to choose which of two pieces of data are we going to work with. And our multiplexer will allow us to do this. An arithmetic logic unit will allow us to do the actual computation that we're interested in. If we want to add two numbers together, our ALU will handle that. If we want to do subtraction, our ALU will handle that. We won't build a full ALU, but we'll get a whole lot of useful stuff out of this. We'll get addition, subtraction, comparisons, as well as ands and ors. Finally, we'll also look at how we can build some memory structures. We'll want to be able to store our data so that we can retrieve it later and use it for other operations. And to do that, we're going to need some memory structures. We're going to need some place to put this data. So we'll be looking at how we can use some logicates to actually accomplish that. All of this will come back in the next section when we start looking at how to actually build a processor. We'll be taking a whole lot of these same structures and just using them. We won't worry about how they've been built. We will just accept that we've managed to build one and assemble these components in such a way that we can actually process instructions. But first, we'd like to know how to actually build all of these parts.