CSC231 Lab 7 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 the same setup as for Homework 5. In particular you will need
- asm_io.asm
- asm_io.inc
- driver.c
- lab7skel.asm , a skeleton program that will eventually contain your code
- 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).