Difference between revisions of "CSC231 Exercises On Functions"
(→Exercise 1) |
|||
Line 7: | Line 7: | ||
{| | {| | ||
|- | |- | ||
+ | | style="height:400px" | ||
| | | | ||
<code><pre> | <code><pre> | ||
Line 21: | Line 22: | ||
| | | | ||
<font color="white"> | <font color="white"> | ||
− | + | The loop goes 10 times and the function is called 10 times, adding 1 to eax every time. Eax ends with 10 in it. | |
</font> | </font> | ||
|} | |} |
Revision as of 07:27, 8 October 2008
Back to Weekly Schedule.
Contents
Exercise 1
What is the behavior of this loop?
style="height:400px" |
|
The loop goes 10 times and the function is called 10 times, adding 1 to eax every time. Eax ends with 10 in it. |
Exercise 2
Same question:
mov eax, 0
mov ecx, 10
for: call func1
...
loop for
func1: sub ecx, 1
ret
Exercise 3
Draw the stack as the processor executes this program:
mov eax, 0
mov ebx, 0
mov ecx, 10
for: call func1
...
loop for
func1: add eax, 1
call func2
ret
func2: add ebx, 1
ret
Exercise 4
Same question, but now observe that the programmer forgot the ret instruction at the end of the first function.
mov eax, 0
mov ebx, 0
mov ecx, 10
for: call func1
...
loop for
func1: add eax, 1
call func2
func2: add ebx, 1
ret