It is clear that a lot of students have figured out at least one of the several ways to separate [15:8] from [7:0], sign-extend the 8-bit values to 16 bits, and add each to the SUM. It is also clear that a lot of students have not. The integer divide algorithm does work, but requires some additional tricky stuff to make it work, if the value in [15:8] is an 8-bit negative number. For example, xFE23 has decimal -2 in [15:8] and decimal +35 in [7:0]. We can not simply convert xFE23 to a positive number, plug this into the integer divide, and use the results of that operation without fixing up those results before adding them to SUM. SOOOOOOOOOOOooooo, A change to the assignment. You have a choice: you can do the assignment as is, or you can modify the assignment to restrict the values in x3102 and beyond to contain two positive 2's complement 8 bit numbers. That is, in each location, you can restrict bit [15] and bit [7] to contain 0's. 1. If you restrict the data to positive numbers, and your program solves the problem, you will get full credit. 2. If you keep the problem as assigned, and get the program to work even if the 2's complement 8-bit integers are negative, you will get extra credit, which will not go unnoticed. My hope is that this additional constraint will allow those who are stuck because the numbers could be negative to get the assignment done for full credit, and on to the next task. ...and, at the same time, reward those who have been able to see through the additional complexity of the negative numbers, and get the original problem solved. One last thing, before I let you get back to work: Earlier, I gave you a couple of hints re: moving R1[15:8] into R2[7:0]. In the hopes of getting more of you to solve the problem in its orignal form, I will expand slightly those two hints: 1. First hint: suppose I execute ADD R1,R1,#0. Can you easily ascertain the value (0 or 1) of any of the bits in R1[15:8]. Which bit? Is there any simple way to force any other bit [15:8] into this bit position so you can know its value (0 or 1)? 2. Second hint: If you are going to put into R2[7:0] the 8-bit value that is currently in R1[15:8], how do you know what value (0 or 1) to put into R2[3]. That is, what does the value of R2[3] depend on? Is there a simple way to ascertain what that value is? Anyhow, hope some of this helps.