Difference between revisions of "CSC231 Homework 11 2012"

From dftwiki3
Jump to: navigation, search
(Optional and Extra-Credits)
(Requirements)
Line 22: Line 22:
  
 
==Requirements==
 
==Requirements==
 +
* In the header of your program, indicate how much stack space
 
* You need to store your dumpRegs function and all its accompanying functions in a separate file called '''dumpRegs.ing'''
 
* You need to store your dumpRegs function and all its accompanying functions in a separate file called '''dumpRegs.ing'''
 
* Your '''printDecimal''' function must be recursive.  The [[CSC231_printInt.asm|one we saw in class ]] isn't.
 
* Your '''printDecimal''' function must be recursive.  The [[CSC231_printInt.asm|one we saw in class ]] isn't.
* Your main program, called '''hw11a.asm''' will be exactly as follows:
+
* Your main program (you won't be submitting it), which you can call '''hw11a.asm''' for example, will be something like this:
  
 
<br />
 
<br />

Revision as of 13:54, 28 November 2012

--D. Thiebaut 13:14, 28 November 2012 (EST)


Page under construction!
UnderConstruction.jpg

Problem #1

This is a continuation of the first problem of Homework 8. Here you need to complete the output of the dumpRegs function so that it outputs all the registers in decimal, both in unsigned and in signed format.

Here's an example of the output of your program showing how to shows the contents of each register in hexadecimal, as an unsigned it, and as a signed int.

-------------------------------------
eax = 0x00000004  4 4
ebx = 0x00000001  1 1
ecx = 0xFFFFFFFF  4294966272 -1
edx = 0x000012FC  4860 4860
edi = 0xFFFFFFFE  4294966271 -2 
esi = 0x12235557  304305495 304305495
-------------------------------------

Requirements

  • In the header of your program, indicate how much stack space
  • You need to store your dumpRegs function and all its accompanying functions in a separate file called dumpRegs.ing
  • Your printDecimal function must be recursive. The one we saw in class isn't.
  • Your main program (you won't be submitting it), which you can call hw11a.asm for example, will be something like this:


;;; your header

%include "dumpRegs.inc"

		section	.data
;;; your data

		section	.text
		global	_start
 
_start:
 
;;; Initialize the registers
		mov	eax, 0x12345678
		mov	ebx, 0x55FF55FF
		mov	ecx, 0xFEDCBA98
		mov	edx, 0x00000000
		mov	esi, 0xFFFFFFFF
		mov	edi, 0xFFFFFFF0
 
;;; dump them twice to verify that no registers gets modified...
	        call    dumpRegs
		call	dumpRegs
 
 
;;; exit back to OS
		mov	ebx, 0
		mov	eax, 1
		int	0x80


Optional and Extra-Credits

  • 0.3 extra points: make your print decimal function output the decimal with commas separating each group of 3 digits. For example, it will display 123456789 as 123,456,789. Similarly, it will display -25668 as -25,668, and -34 as -34. For this version of the program, the printDecimal function does not need to be recursive.
  • 0.6 extra points: same requirement as above, except that the printDecimal unction has to be recursive.

Submission

Submit only dumpRegs.inc. I will provide my own main program that will use just this line to include your program:

%include "dumpRegs.inc"

The submit command is:

 rsubmit hw11 dumpRegs.inc

Problem #2