So lets say we have A r,D(X,B) I know the contents of the fullword starting at address given by D(X,B) will be added to register "r" I get the operation, I'm just confused on the D(X,B) part. I know D is the displacement written in decimal and then converted to hex. B is the base register loaded from the using statement, but I don't understand X.. I get it's for an index register but what does it actually do? and if the displacement can be up to 4095, what is actually taking place if a register can only hold up to 32 bytes (I believe, that's what I read somewhere).. I thought the displacement is moving the "pointer" up and down the memory address stored in the base register. The resources I have are just technical information so I still don't understand what is happening and I guess I just need a simple, less book jargon explanation. I get most of the coding but visualizing how everything works with storage from the registers, how much memory each register actually holds and how the addressing is assigned to the base register and where it goes from there, and how everything syncs up with the other registers is all confusing to me currently. I'm studying Assembly Language in Assist on the z/os system in grad school and I want to have a firm grasp on all this stuff because when I graduate, I'd like to work with embedded systems; and especially have a good chance with jobs like this with Lockheed Martin, Boeing, or/and ultimately NASA. So I'd like to master the subject. Thank you!