CSC231 Lab 7 2010

From dftwiki3
Revision as of 08:49, 5 November 2010 by Thiebaut (talk | contribs) (Problem #1: Pascal's Triangle with Functions)
Jump to: navigation, search

--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).