10/23/2006
A student writes: Dr. Patt, During TA session on friday, we went over the .Stringz pseudo-op. I am writing my program, and i am wondering if we are required to incorporate this opcode into our program? Or another way of asking, is it absolutely necessary to have the .stringz in our program, or can we write one that does not use this pseudo-op? <<name withheld to protect the student who is afraid of .STRINGZ>> Actually, I strongly prefer that you NOT use .STRINGZ in this programming assignment. You could use it, and it is a short cut that will work in this assignment. However, I believe it is a bad short cut, and one that is counterproductive. Exactly why it is counterproductive, we can deal with later. For now, I want you to understand that .STRINGZ is a useful pseudo-op for putting a string of ascii codes into the object file of the program that can be used to display a banner on the screen. It is part of the program. We are not asking you to display banners on the screen in this assignment. That will come later. Rather, we are asking you to sort (that is, arrange in order) a set of data elements, where the elements are ascii codes of individual characters. This is part of the DATA, not part of the program. This program has to be able to work on any characters that happen to be in x30F0 to x30FF. In fact, in general, you will not know what is in x30F0 to x30FF when you write the program. Certainly you are going to want to test your program on some sample data. The simplest way to provide that input data is by inserting ascii codes into x30F0 to x30FF using the Simulator. Alternatively, if you don't want to type in those values every time you use the Simulator, you could construct a file of ascii codes in assembly language, as follows, and then load it into memory using the Simulator as your TA showed you. For example: .ORIG x30F0 .FILL x0032 .FILL x0033 .FILL x0045 .END will be assembled into an object file of three ascii codes (2, 3, E) that will be stored in memory locations x30F0, x30F1, and x30F2. Got it? Yale Patt