11/22/04

A student sent me email:

     I have run into an odd error when trying to compile my program.

     The error i get is "intruction references label "msg1" that cannot be
     represented in a 9 bit signed PC offset.

     the msg1 is a string that looks like this :

     msg1        .STRINGZ "Player 1, choose a row and number of rocks: "

     which i load into register r0 with the instruction:
     ENTER1        LEA r0, msg1

     The odd thing, is that i wasn't getting this error message until almost
     finishing the program. In other words, the program was executing fine
     before, but as i was adding on to the program by writing different
     subroutines/functions and the such, this error message popped up.

     This same error came up on other psuedo-op commands i wrote such as a
     few .fills and .blkw and for some reason i solved the problem by
     rearranging the order in which it was written in the program. However,
     this particular "msg1" won't seem to go away even after trying to
     resolve it by moving around its position in the program.

     I apologize for such a late email. But i wanted to if you knew of
     anything i could do. Thanks

     << name withheld to ... >>

Before I could respond, I got the following message:

     Earlier i emailed you about a compiling problem but i seem
     to have worked around it. So no need to reply, thanks.

The second message does concern me, and I hope I am concerned needlessly. What bothers me is his sentence "I seem to have worked around it." He does not say he now understands it. The implication is that he got the program to work so there is no need for me to reply.

My question is: Does he know what caused the problem, or was he able to "work around it" by just trying different things. This course is not about getting around errors by trying different things, Such may work for the program right now, but if he does not know what caused the problem and why his attempt worked, he will have not mastered the concept. When the problem shows up again -- and it will, he may not be able to "work around it."

The main point is that this course is about understanding, not randomly trying things. "Trying things" will provide no foundation for the future.

If I misread his answer, then (a) I am delighted, and (b) I apologize. But if I read him correctly, then I need to instill some behavior modification. Ergo, this email.

See you all in class.

Yale Patt