writerveggieastroprof
My Journal

Previous Entry :: Next Entry

Mood:
Hopeful I'm Effective

Read/Post Comments (0)
Share on Facebook



Performing Reverse Engineering on Complete and Working Sample Programs

Student "edition" found at {csi dot journalspace dot com}.

Maybe I shouldn't have started this blog now, not with everything that's been going on.

In the first session of my Computer Circuit Fundamentals lecture class for the seventh week of the second term, I gave them a sample program demonstrating not only how to save specific characters into a string variable (and how to declare a string variable) but also how to set and call procedures in assembly language.

It was a different way of lecturing, where all of the groups had their computers on and displaying the program code, and I tried to explain it line by line - at least the new commands we have and how old commands can be used to manipulate strings.

First was declaring the string variable with an uninitialized value.

Next was how to differentiate the main program from the subprocedures, since we will not be just writing single block programs anymore.

Then, of course, there was how to call the subprocedures. I would have saved this for another time, except that to remove the procedure from the program would have meant repeating a certain block of code twice, called by the program outside of a loop.

the important thing is that the students still remember parameter passing, which meant that discussing the procedured was easier than it would have been if this was their first programming subject. this was only slightly more difficult in that it had to be indicated in comments what the input and output parameters of the procedure had to be.

They also had to push several registers before performing any operations in the procedure, which they had to pop in reverse order at the end of the block, before returning to the calling part of the code.

Different procudures pushed and popped to the stack different registers, depending on which ones are changed by the commands used in the procedure. This is something they have to remember and enforce when they start coding their own procedure.

Out of the eight string manipulation commands that I had them study last time, three were used for this sample program: store string byte, load string byte, and repeat not equal coupled with scanning the entire string for value in the accumulator.

Session 1371 doesn't want to study sample programs. Class dismissed.


Read/Post Comments (0)

Previous Entry :: Next Entry

Back to Top

Powered by JournalScape © 2001-2010 JournalScape.com. All rights reserved.
All content rights reserved by the author.
custsupport@journalscape.com