Difference between revisions of "CSC231 Lab 7 2010"

From dftwiki3
Jump to: navigation, search
(Problem #1: Pascal's Triangle with Functions)
(Problem #1: Pascal's Triangle with Functions)
Line 1: Line 1:
 
--[[User:Thiebaut|D. Thiebaut]] 13:37, 5 November 2010 (UTC)
 
--[[User:Thiebaut|D. Thiebaut]] 13:37, 5 November 2010 (UTC)
 
----
 
----
 +
<tanbox>
 +
Be sure to work on Grendel, since we need to be in 32-bit mode, and we need both the C-compiler and the assembler to be compatible.  They are not when we work on Beowulf.
 +
</tanbox>
 +
 +
<br />
 +
<br />
 +
__TOC__
 +
<br />
 +
<br />
 
=Problem #1: Pascal's Triangle with Functions=
 
=Problem #1: Pascal's Triangle with Functions=
  

Revision as of 08:49, 5 November 2010

--D. Thiebaut 13:37, 5 November 2010 (UTC)


Be sure to work on Grendel, since we need to be in 32-bit mode, and we need both the C-compiler and the assembler to be compatible. They are not when we work on Beowulf.





Problem #1: Pascal's Triangle with Functions

  • Use a Makefile to make your executable. Call it Makefile with an uppercase M. It assumes that your assembly program is going to be called lab7.asm. If you are using a different file name, then change the PROG line in the make file.


CC = gcc
LD = gcc
NASM = nasm 

CFLAGS =  -c
LFLAGS = 
NASMFLAGS = -f elf -F stabs

PROG = lab7

OBJS = asm_io.o $(PROG).o driver.o


default: $(PROG)

$(PROG): $(OBJS) 
	$(LD) $(LFLAGS) $(OBJS)  -o $(PROG)

asm_io.o: asm_io.asm
	$(NASM) $(NASMFLAGS) asm_io.asm

$(PROG).o: $(PROG).asm asm_io.inc
	$(NASM) $(NASMFLAGS) $(PROG).asm

driver.o: driver.c 
	$(CC) $(CFLAGS) driver.c

clean:
	rm -rf *.o *~

real_clean:
	 rm -rf *.o $(PROG) *~

Note: In Makefiles, make sure that the lines that do not start at the left-most margin start with a Tab character, not a space.


  • Before coding anything, verify that you have valid components for your program. At the prompt, type
     make
and you should get an executable called lab7. Run it:
     ./lab7
verify that you do not get any errors (it won't print anything).