The student wrote again. I think he does not understand what this left-shifting is all about. If you feel you do understand it, then delete and move on. Since I never know if a question represents more general misunderstanding, I feel compelled to answer thoroughly. Now, then: Dr Patt, The ISA documentation posted indicated that the offset6 field for the instructions STW and LDW and the trapvect8 of the TRAP instruction is left shifted one bit left when it is being executed. That is correct. The assembler on the website does not seem to take this into account. For example the instruction LDW R0, R0, #-32 comes back as 0x6020. As indeed it should. The example you provide asks the hardware to do the following: Use the value in R0 as a Base Address, add to it -32 WORDS, and use the result of that as the memory address. Then get the contents of that address (and the next one, since memory is byte addressible) and load those 16 bits into R0. Note: to add -32 words to a Base Address, the hardware must first multiply -32 by 2, since the ISA is byte-addressible. The assembler should translate your instruction into 0110 000 000 100000, which it does: 0x6020. When I hand assemble and take the run time left shift into account by right shifting once the result I get is 0x6060. This also means the range of values acceptable to the assembler is cut in half. Yes, if you right shift, you would cut the range in half. But, I do not understand why you would want to right shift. The point of all this is to allow the programmer to get full use of the six bits by expressing the offset in words, not bytes. AND, have the hardware do what is necessary to turn that word offset into a byte offset at run time. If you right shift, you have just effectively undone the benefit of the left shifting that the hardware does for you. If we wanted that, it would have been simpler to specify the offset as a byte offset and not require any shifting at all. But then, we would have only half the range. Is this a problem with the assembler or the documentation or my understanding of what is going on? There is no problem with the assembler or the documentation. Again, the offset you specify is the number of WORDS of offset you want the hardware to use in computing the effective address. Since the ISA is byte-addressible, the hardware multiplies this number by 2 before adding it to the Base address. OK? Yale Patt