 This time we're going to be building a data path for a store word instruction. This will look pretty similar to our load word instruction because it does a very similar job to the load word instruction. So this time instead of reading something out of memory, I want to put something into memory. I will need to know two things. I need to know where I'm going to put this thing in memory and what this thing is. What this thing is is stored in registers. Where the thing is at is at some base address plus an offset from the instruction. So I'll also want an instruction memory. My instruction memory will tell me what my base address is and what this data I should be storing is. Then I can take the base address and add it to the offset from my instruction to get my target address. Now I'll want to go over to data memory. I've got my target address. So that's where I'm going to store my data. And my data is this other thing that's coming out of my registers. So that's pretty much all I need to do. Again, I'm going to want a program counter and all of the hardware to increment the program counter every time through. And my program counter can index my instruction memory. And as usual, I will increment my program counter by four each cycle in order to get a different store word instruction each time. Then for each cycle, I will pull out my instruction. It will tell me what my base address is, my offset, and what this data that I should store is. We can add the base address to the offset and use that as the address of my destination in memory. And then we just store the piece of data from our register into memory.