mirror of
				https://github.com/netwide-assembler/nasm.git
				synced 2025-10-10 00:25:06 -04:00 
			
		
		
		
	Add Makefile rules for the 32-bit ELF shared library test, and add a 64-bit ELF shared library test (still work in progress.)
		
			
				
	
	
		
			39 lines
		
	
	
		
			944 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			944 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * test source file for assembling to ELF
 | 
						|
 * build with:
 | 
						|
 *    nasm -f elf elftest.asm
 | 
						|
 *    gcc -o elftest elftest.c elftest.o
 | 
						|
 * (assuming your gcc is ELF)
 | 
						|
 */
 | 
						|
 | 
						|
#include <stdio.h>
 | 
						|
#include <inttypes.h>
 | 
						|
 | 
						|
extern int lrotate(int32_t, int);
 | 
						|
extern void greet(void);
 | 
						|
extern int8_t asmstr[];
 | 
						|
extern void *selfptr;
 | 
						|
extern void *textptr;
 | 
						|
extern int integer, commvar;
 | 
						|
 | 
						|
int main(void)
 | 
						|
{
 | 
						|
 | 
						|
    printf("Testing lrotate: should get 0x00400000, 0x00000001\n");
 | 
						|
    printf("lrotate(0x00040000, 4) = 0x%08lx\n", lrotate(0x40000, 4));
 | 
						|
    printf("lrotate(0x00040000, 14) = 0x%08lx\n", lrotate(0x40000, 14));
 | 
						|
 | 
						|
    printf("This string should read `hello, world': `%s'\n", asmstr);
 | 
						|
 | 
						|
    printf("The integers here should be 1234, 1235 and 4321:\n");
 | 
						|
    integer = 1234;
 | 
						|
    commvar = 4321;
 | 
						|
    greet();
 | 
						|
 | 
						|
    printf("These pointers should be equal: %p and %p\n", &greet, textptr);
 | 
						|
 | 
						|
    printf("So should these: %p and %p\n", selfptr, &selfptr);
 | 
						|
 | 
						|
    return 0;
 | 
						|
}
 |