CSC231 Exercises On Functions

From dftwiki3
Revision as of 07:24, 8 October 2008 by Thiebaut (talk | contribs) (New page: Back to Weekly Schedule. ---- =Exercise 1= What is the behavior of this loop? <code><pre> mov eax, 0 mov ecx, 10 for: call func1 ... loop for func1: add eax...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Back to Weekly Schedule.


Exercise 1

What is the behavior of this loop?

	mov	eax, 0
	mov	ecx, 10
for:	call	func1
	...
	loop	for


func1:	add	eax, 1
	ret

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