bus is simply a set of eight wires that goes to various places inside the computer. Of course, eight is the number of wires needed to carry a byte of information. Inside the computer, the contents of bytes need to get from where they are to other places, so the bus goes to all these places, and the design of the register allows the contents of any selected byte to get onto the bus, and get off at a selected destination.
In the following example, we have a bus, and there are five registers, each of which has both its input and output connected to the same bus.
If all of the ‘s’ bits and ‘e’ bits are off, each register will be set the way it is, and will stay that way. If you want to copy the information from R1 into R4, first you turn the ‘e’ bit of R1 on. The data in R1 will now be on the bus, and available at the inputs of all five registers. If you then briefly turn the ‘s’ bit of R4 on and back off, the data on the bus will be captured into R4. The byte has been copied. So a computer bus is a little like the bus that carries people. There are a number of stops, and bytes can get to where they need to go.
Notice that we can copy any byte into any other byte. You can copy R2 into R5, or R4 into R1. The bus works in either direction. The electricity put on the bus when you enable any register goes as fast as possible to the inputs of everything else on the bus. You could even enable one register onto the bus and set it into two or more other registers at the same time. The one thing you don’t want to do is to enable the outputs of two registers onto the bus at the same time.
In terms of the sizes of bits, you could look at it this way: When the ‘e’ bit of R1 gets turned on, the bits in R1 now get longer, they are a bigger space because they are now connected to the bus, so those 8 bits now include R1 and the entire bus. When the ‘s’ bit of R4 gets turned on, the R1 bits get even bigger because they now include R1, the bus and R4. If anything in R1 were to somehow change at this time, the bus and R4 would immediately change with it. When the ‘s’ bit of R4 gets turned off, R4 regains its status as a separate byte, and when the ‘e’ bit of R1 turns off, the bus ceases being a part of R1.
So this is a bus. It is a bundle of eight wires that typically goes to many places.
One more thing about registers: There are many places where we are going to connect the input and output of a register to the same bus, so to simplify even further, we can just show one bundle of wires labeled ‘i/o,’ meaning input and output. All of the following are exactly equivalent as far as how they work. The placement of the wires on the drawing may be adjusted to make it as uncluttered as possible.
Another language note: A byte is a location that can be in one of 256 states. Sometimes we talk about moving a byte from here to there. By definition, bytes do not move around inside the computer. The byte only refers to the location, but sometimes when someone wants to refer to the current setting of the byte, and they ought to say “lets copy the contents of R1 into R4,” they simplify and say “move R1 to R4” or “move this byte over there.” They’re using the word byte to refer to the contents of the byte. Again, the context usually makes this very clear. In the example above of copying the contents of R1 into R4, you may hear it described as “moving a byte from R1 to R4.” Technically, R1 and R4 are the bytes, which do not move, only the contents goes from place to place.
Also, the contents do not leave the place where they came from. When you are done “moving” a byte, the “from” byte has not changed, it doesn’t lose what it had. At the other end, the pattern that was originally in the “to” byte is now “gone,” it didn’t go anywhere, it was just written over by the new information. The old pattern simply ceases to exist. The new information is exactly the same as what is still in