So the professor got 150 submissions like
print_digit:
cmp #0
beq print_zero
... nine more digits ...
print_zero:
(load address of "zero" string)
(call library function to actually print)
rts
... nine more digits ...
I almost coded mine the same way, but I asked myself, “I don't want to write the same code for ten cases. How would a real hacker solve this?” So I made a lookup table of pointers to each string, and my function was more like:
print_digit:
(load value from "string_addrs + digit")
(call library function to actually print)
rts
Of course, I’m just showing snippets of the core function; everyone had to write their own complete program.
The prof had apparently never seen my approach, because he asked if I had even run it to see if it worked. In shock, I said something like, “Yeah, why? Didn’t it work for you?” and he replied, “Um well yes. I just thought you maybe cheated.”
Haha, no. I’m just awesome.
No comments:
Post a Comment