ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2)
{
    // 得到两个链表的长度
    unsigned int nLength1 = GetListLength(pHead1);
    unsigned int nLength2 = GetListLength(pHead2);
    int nLengthDif = nLength1 - nLength2;
 
    ListNode* pListHeadLong = pHead1;
    ListNode* pListHeadShort = pHead2;
    if(nLength2 > nLength1)
    {
        pListHeadLong = pHead2;
        pListHeadShort = pHead1;
        nLengthDif = nLength2 - nLength1;
    }
 
    // 先在长链表上走几步,再同时在两个链表上遍历
    for(int i = 0; i < nLengthDif; ++ i)
        pListHeadLong = pListHeadLong->m_pNext;
 
    while((pListHeadLong != NULL) && 
        (pListHeadShort != NULL) &&
        (pListHeadLong != pListHeadShort))
    {
        pListHeadLong = pListHeadLong->m_pNext;
        pListHeadShort = pListHeadShort->m_pNext;
    }
 
    // 得到第一个公共结点
    ListNode* pFisrtCommonNode = pListHeadLong;
 
    return pFisrtCommonNode;
}
 node_t*
 FindFirstCommonNode(node_t* pHead1, node_t* pHead2)
 {
	/*得到两个链表的长度*/
	
	unsigned int length1 = GetListLength( pHead1 );
	unsigned int length2 = GetListLength( pHead2 );
	int lenght_diff = length1 - length2;
	
	node_t* pListHeadLong = pHead1;
	node_t* pListHeadShort = pHead2;
	if( length1 < length2){
		pListHeadLong = pHead2;
		pListHeadShort = pHead1;
		lenght_diff = length2 - length1;
	}
	
	/*先在长的链表上走几步,在同时在两个表上遍历查询*/
	
	for(int i = 0; i < lenght_diff; i++){
		pListHeadLong = pListHeadLong->m_pNext;
	}
	
	while( pListHeadLong != NULL 
	          && pListHeadShort != NULL 
			  && pListHeadLong != pListHeadShort )
	{
			pListHeadLong = pListHeadLong->m_pNext;
			pListHeadShort =pListHeadShort->m_pNext;
	}
	
	node_t* firstcommonnode = pListHeadLong;
	
	return firstcommonnode;
 }
    ListNode* FindFirstCommonNode(ListNode *pHead1, ListNode *pHead2) {
        int len1 = GetListLength(pHead1);
        int len2 = GetListLength(pHead2);

        int diff = abs(len1 - len2);

        ListNode *pLongHead, *pShortHead;
        if (len1 > len2) {
            pLongHead = pHead1;
            pShortHead = pHead2;
        } else {
            pLongHead = pHead2;
            pShortHead = pHead1;
        }

        while (diff > 0 && pLongHead != NULL) {
            pLongHead = pLongHead->next;
            diff--;
        }

        while (pLongHead != NULL && pShortHead != NULL && pLongHead != pShortHead) {
            pLongHead = pLongHead->next;
            pShortHead = pShortHead->next;
        }

        return pLongHead;
    }
示例#4
0
文件: main.c 项目: Joonie86/CobraUSB
const char *PopRandomOpcode(List **plist, uint8_t *opcode)
{
	List *list = *plist;
	List *prev = NULL;
	int len = GetListLength(list);
	
	if (len == 0)
		printf("Called with 0!!!\n");
	
	int rnd = rand() % len;
	
	for (int i = 0; i < rnd; i++)
	{
		prev = list;
		list = list->next;
	}
	
	*opcode = list->index;
	const char *ret = list->name;
	
	if (rnd == 0)
	{
		*plist = list->next;
		free(list);
	}
	else
	{
		prev->next = list->next;
		free(list);
	}
	
	return ret;
}
示例#5
0
文件: main.c 项目: Joonie86/CobraUSB
static uint8_t PopRandomOpcode4(List **plist)
{
	List *list = *plist;
	List *prev = NULL;
	int len = GetListLength(list);
	
	if (len == 0)
		printf("Called with 0!!!\n");
	
	int rnd = rand() % len;
	
	for (int i = 0; i < rnd; i++)
	{
		prev = list;
		list = list->next;
	}
	
	uint8_t ret = group4_opcodes[list->index];
	
	if (rnd == 0)
	{
		*plist = list->next;
		free(list);
	}
	else
	{
		prev->next = list->next;
		free(list);
	}
	
	return ret;
}
示例#6
0
文件: list_mtm.c 项目: TaniaPewah/hw2
/**
* Creates a copy of target list.
*
* The new copy will contain all the elements from the source list in the same
* order and will use the same functions as the original list for copying and
* freeing elements.
*
* @param list The target list to copy
* @return
* NULL if a NULL was sent or a memory allocation failed.
* A List containing the same elements with same order as list otherwise.
*/
List listCopy(List list) {
	List copy = NULL;
	if (list != NULL) {
		copy = listCreate(list->copyElementFunc, list->freeElementFunc);
	}
	if ((copy != NULL) && (list->First != NULL)) {
		ListItem item_to_copy = list->First;
		while ((item_to_copy != NULL) &&  (copy != NULL)) {
			if (listInsertLast(copy, item_to_copy->Element) == LIST_SUCCESS) {
				if (list->Current == item_to_copy){
					int size = GetListLength(copy);
					listGetFirst(copy);
					for (int i = 1; i < size; i++) {
						listGetNext(copy);
					}
				}
				item_to_copy = item_to_copy->Next;
			} else {
				listDestroy(copy);
				copy = NULL;
			}
		}
	}
	return copy;
}
示例#7
0
文件: list_mtm.c 项目: alonBind/hw2
/**
* Sorts the list according to the given function, using a max sort sorting
* method.
*
* For example, the following code will sort a list of integers according to
* their distance from 0.
* @code
* int closerTo(ListElement num1, ListElement num2, ListSortKey value) {
*   int distance1 = abs(*(int*)num1 - *(int*)value);
*   int distance2 = abs(*(int*)num2 - *(int*)value);
*   return distance1 - distance2;
* }
*
* void sortInts(List listOfInts) {
*   listSort(listOfInts, closerTo);
* }
* @endcode
*
* @param list the target list to sort
* @param compareElement A comparison function as defined in the type
* CompareListElements. This function should return an integer indicating the
* relation between two elements in the list
*
* @return
* LIST_NULL_ARGUMENT if list or compareElement are NULL
* LIST_OUT_OF_MEMORY if a memory allocation failed, the list will be intact
* in this case.
* LIST_SUCCESS if sorting completed successfully.
*/
ListResult listSort(List list, CompareListElements compareElement) {
	if ((list == NULL) || (compareElement == NULL)){
		return LIST_NULL_ARGUMENT;
	}
	int listLength = GetListLength(list);
	if (listLength > 1) {
		for	(int i = listLength - 1; listLength > 1; listLength--) {
			ListItem current = list->First;
			for (int j = 0; j < i; j++) {
				if (compareElement(current->Element, current->Next->Element)
						< 0) {
					ListElement element = current->Element;
					current->Element = current->Next->Element;
					current->Next->Element = element;
				}
				current = current->Next;
			}
		}
	}
	return LIST_SUCCESS;
}
示例#8
0
static void ProcessVoxelMeshes( ChunkEnvironment* env )
{
    const int w = env->w-2;
    const int h = env->h-2;
    const int d = env->d-2;

    const float hw = ((float)w) / 2.f;
    const float hh = ((float)h) / 2.f;
    const float hd = ((float)d) / 2.f;

    for(int z = 0; z < d; z++)
    for(int y = 0; y < h; y++)
    for(int x = 0; x < w; x++)
    {
        const int envIndex = Get3DArrayIndex(x+1,
                                             y+1,
                                             z+1,
                                             env->w,
                                             env->h,
                                             env->d);
        const int transparentNeighbors = env->transparentNeighbors[envIndex];
        List* meshList = env->meshLists[envIndex];

        const int meshCount = GetListLength(meshList);
        for(int i = 0; i < meshCount; i++)
        {
            const VoxelMesh* mesh = *(VoxelMesh**)GetListEntry(meshList, i);
            const float xTranslation = ((float)x) - hw + 0.5f;
            const float yTranslation = ((float)y) - hh + 0.5f;
            const float zTranslation = ((float)z) - hd + 0.5f;
            ProcessVoxelMesh(env,
                             transparentNeighbors,
                             xTranslation,
                             yTranslation,
                             zTranslation,
                             mesh);
        }
    }
}
示例#9
0
static bool* GatherTransparentVoxelsForChunk( List** meshLists,
                                              int w, int h, int d )
{
    const int voxelCount = w*h*d;
    bool* transparentVoxels = new bool[voxelCount];
    for(int i = 0; i < voxelCount; i++)
    {
        const List* meshList = meshLists[i];
        bool transparent = true;
        const int meshCount = GetListLength(meshList);
        for(int j = 0; j < meshCount; j++)
        {
            const VoxelMesh* mesh =
                *(const VoxelMesh**)GetConstListEntry(meshList, j);
            if(!IsVoxelMeshTransparent(mesh))
            {
                transparent = false;
                break;
            }
        }
        transparentVoxels[i] = transparent;
    }
    return transparentVoxels;
}
示例#10
0
文件: main.c 项目: Joonie86/CobraUSB
static void AssignOpcodes(FILE *f)
{
	List *group1 = ListAppend(NULL, 0);
	int i;
	
	for (i = 1; i < N1; i++)
		ListAppend(group1, i);
	
	ADD2 = PopRandomOpcode1(&group1);
	ADD4 = PopRandomOpcode1(&group1);
	ADDC2 = PopRandomOpcode1(&group1);
	ADDC4 = PopRandomOpcode1(&group1);
	ANL2 = PopRandomOpcode1(&group1);
	ANL4 = PopRandomOpcode1(&group1);
	ANL5 = PopRandomOpcode1(&group1);
	ANL6 = PopRandomOpcode1(&group1);
	ANL7 = PopRandomOpcode1(&group1);
	ANL8 = PopRandomOpcode1(&group1);
	CJNE1 = PopRandomOpcode1(&group1);
	CJNE2 = PopRandomOpcode1(&group1);
	CLR1 = PopRandomOpcode1(&group1);
	CLR2 = PopRandomOpcode1(&group1);
	CLR3 = PopRandomOpcode1(&group1);
	CPL1 = PopRandomOpcode1(&group1);
	CPL2 = PopRandomOpcode1(&group1);
	CPL3 = PopRandomOpcode1(&group1);
	DA = PopRandomOpcode1(&group1);
	DEC1 = PopRandomOpcode1(&group1);
	DEC3 = PopRandomOpcode1(&group1);
	DIV = PopRandomOpcode1(&group1);
	DJNZ2 = PopRandomOpcode1(&group1);
	INC1 = PopRandomOpcode1(&group1);
	INC3 = PopRandomOpcode1(&group1);
	INC5 = PopRandomOpcode1(&group1);
	JB = PopRandomOpcode1(&group1);
	JBC = PopRandomOpcode1(&group1);
	JC = PopRandomOpcode1(&group1);
	JMP = PopRandomOpcode1(&group1);
	JNB = PopRandomOpcode1(&group1);
	JNC = PopRandomOpcode1(&group1);
	JNZ = PopRandomOpcode1(&group1);
	JZ = PopRandomOpcode1(&group1);
	LCALL = PopRandomOpcode1(&group1);
	LJMP = PopRandomOpcode1(&group1);
	MOV2 = PopRandomOpcode1(&group1);
	MOV4 = PopRandomOpcode1(&group1);
	MOV8 = PopRandomOpcode1(&group1);
	MOV10 = PopRandomOpcode1(&group1);
	MOV12 = PopRandomOpcode1(&group1);
	MOV16 = PopRandomOpcode1(&group1);
	MOV17 = PopRandomOpcode1(&group1);
	MOV18 = PopRandomOpcode1(&group1);
	MOVC1 = PopRandomOpcode1(&group1);
	MOVC2 = PopRandomOpcode1(&group1);
	MOVX2 = PopRandomOpcode1(&group1);
	MOVX4 = PopRandomOpcode1(&group1);
	MUL = PopRandomOpcode1(&group1);
	ORL2 = PopRandomOpcode1(&group1);
	ORL4 = PopRandomOpcode1(&group1);
	ORL5 = PopRandomOpcode1(&group1);
	ORL6 = PopRandomOpcode1(&group1);
	ORL7 = PopRandomOpcode1(&group1);
	ORL8 = PopRandomOpcode1(&group1);
	POP = PopRandomOpcode1(&group1);
	PUSH = PopRandomOpcode1(&group1);
	RET = PopRandomOpcode1(&group1);
	RL = PopRandomOpcode1(&group1);
	RLC = PopRandomOpcode1(&group1);
	RR = PopRandomOpcode1(&group1);
	RRC = PopRandomOpcode1(&group1);
	SETB1 = PopRandomOpcode1(&group1);
	SETB2 = PopRandomOpcode1(&group1);
	SJMP = PopRandomOpcode1(&group1);
	SUBB2 = PopRandomOpcode1(&group1);
	SUBB4 = PopRandomOpcode1(&group1);
	SWAP = PopRandomOpcode1(&group1);
	XCH2 = PopRandomOpcode1(&group1);
	XRL2 = PopRandomOpcode1(&group1);
	XRL4 = PopRandomOpcode1(&group1);
	XRL5 = PopRandomOpcode1(&group1);
	XRL6 = PopRandomOpcode1(&group1);
	
	group1 = ListAppend(NULL, 0);
	for (i = 1; i < N2; i++)
		ListAppend(group1, i);
	
	ADD3 = PopRandomOpcode2(&group1);
	ADDC3 = PopRandomOpcode2(&group1);
	ANL3 = PopRandomOpcode2(&group1);
	CJNE4 = PopRandomOpcode2(&group1);
	DEC4 = PopRandomOpcode2(&group1);
	INC4 = PopRandomOpcode2(&group1);
	MOV3 = PopRandomOpcode2(&group1);
	MOV11 = PopRandomOpcode2(&group1);
	MOV13 = PopRandomOpcode2(&group1);
	MOV14 = PopRandomOpcode2(&group1);
	MOV15 = PopRandomOpcode2(&group1);
	MOVX1 = PopRandomOpcode2(&group1);
	MOVX3 = PopRandomOpcode2(&group1);
	ORL3 = PopRandomOpcode2(&group1);
	SUBB3 = PopRandomOpcode2(&group1);
	XCH3 = PopRandomOpcode2(&group1);
	XCHD = PopRandomOpcode2(&group1);
	XRL3 = PopRandomOpcode2(&group1);
	
	
	group1 = ListAppend(NULL, 0);
	for (i = 1; i < N3; i++)
		ListAppend(group1, i);
	
	ADD1 = PopRandomOpcode3(&group1);
	ADDC1 = PopRandomOpcode3(&group1);
	ANL1 = PopRandomOpcode3(&group1);
	CJNE3 = PopRandomOpcode3(&group1);
	DEC2 = PopRandomOpcode3(&group1);
	DJNZ1 = PopRandomOpcode3(&group1);
	INC2 = PopRandomOpcode3(&group1);
	MOV1 = PopRandomOpcode3(&group1);
	MOV5 = PopRandomOpcode3(&group1);
	MOV6 = PopRandomOpcode3(&group1);
	MOV7 = PopRandomOpcode3(&group1);
	MOV9 = PopRandomOpcode3(&group1);
	ORL1 = PopRandomOpcode3(&group1);
	SUBB1 = PopRandomOpcode3(&group1);
	XRL1 = PopRandomOpcode3(&group1);
	XCH1 = PopRandomOpcode3(&group1);
	
	group1 = ListAppend(NULL, 0);
	for (i = 1; i < N4; i++)
		ListAppend(group1, i);
	
	ACALL = PopRandomOpcode4(&group1);
	AJMP = PopRandomOpcode4(&group1);
	
	ANL2_X = rand();
	ANL4_X = rand();
	ANL5_X = rand();
	ANL6_X1 = rand();
	ANL6_X2 = rand();
	ANL7_X = rand();
	ANL8_X = rand();
	ORL2_X = rand();
	ORL4_X = rand();
	ORL5_X = rand();
	ORL6_X1 = rand();
	ORL6_X2 = rand();
	ORL7_X = rand();
	ORL8_X = rand();
	XRL2_X = rand();
	XRL4_X = rand();
	XRL5_X = rand();
	XRL6_X1 = rand();
	XRL6_X2 = rand();
	CLR3_X = rand();
	SETB2_X = rand();
	CPL3_X = rand();
	XCH2_X = rand();
	LCALL_X1 = rand();
	LCALL_X2 = rand();
	ACALL_X = rand();
	CJNE1_X1 = rand();
	CJNE1_X2  = rand();
	CJNE2_X1 = rand();
	CJNE2_X2 = rand();
	CJNE3_X1 = rand();
	CJNE3_X2 = rand();
	CJNE4_X1 = rand();
	CJNE4_X2 = rand();
	DEC3_X = rand();
	INC3_X = rand();
	DJNZ1_X = rand();
	DJNZ2_X1 = rand();
	DJNZ2_X2 = rand();
	POP_X = rand();
	PUSH_X = rand();
	JB_X1 = rand();
	JB_X2 = rand();
	JBC_X1 = rand();
	JBC_X2 = rand();
	JC_X = rand();
	JNB_X1 = rand();
	JNB_X2 = rand();
	JNC_X = rand();
	JNZ_X = rand();
	JZ_X = rand();
	AJMP_X = rand();
	LJMP_X1 = rand();
	LJMP_X2 = rand();
	SJMP_X = rand();
	MOV2_X = rand();
	MOV4_X = rand();
	MOV6_X = rand();
	MOV7_X = rand();
	MOV8_X = rand();
	MOV9_X = rand();
	MOV10_X1 = rand();
	MOV10_X2 = rand();
	MOV11_X = rand();
	MOV12_X1 = rand();
	MOV12_X2 = rand();
	MOV14_X = rand();
	MOV15_X = rand();
	MOV16_X = rand();
	MOV17_X = rand();
	MOV18_X1 = rand();
	MOV18_X2 = rand();
	ADD2_X = rand();
	ADD4_X = rand();
	ADDC2_X = rand();
	ADDC4_X = rand();
	SUBB2_X = rand();
	SUBB4_X = rand();
	
	group1 = ListAppend2(NULL, ADD2, "ADD2");
	ListAppend2(group1, ADD4, "ADD4");
	ListAppend2(group1, ADDC2, "ADDC2");
	ListAppend2(group1, ADDC4, "ADDC4");
	ListAppend2(group1, ANL2, "ANL2");
	ListAppend2(group1, ANL4, "ANL4");
	ListAppend2(group1, ANL5, "ANL5");
	ListAppend2(group1, ANL6, "ANL6");
	ListAppend2(group1, ANL7, "ANL7");
	ListAppend2(group1, ANL8, "ANL8");
	ListAppend2(group1, CJNE1, "CJNE1");
	ListAppend2(group1, CJNE2, "CJNE2");
	ListAppend2(group1, CLR1, "CLR1");
	ListAppend2(group1, CLR2, "CLR2");
	ListAppend2(group1, CLR3, "CLR3");
	ListAppend2(group1, CPL1, "CPL1");
	ListAppend2(group1, CPL2, "CPL2");
	ListAppend2(group1, CPL3, "CPL3");
	ListAppend2(group1, DA, "DA");
	ListAppend2(group1, DEC1, "DEC1");
	ListAppend2(group1, DEC3, "DEC3");
	ListAppend2(group1, DIV, "DIV");
	ListAppend2(group1, DJNZ2, "DJNZ2");
	ListAppend2(group1, INC1, "INC1");
	ListAppend2(group1, INC3, "INC3");
	ListAppend2(group1, INC5, "INC5");
	ListAppend2(group1, JB, "JB");
	ListAppend2(group1, JBC, "JBC");
	ListAppend2(group1, JC, "JC");
	ListAppend2(group1, JMP, "JMP");
	ListAppend2(group1, JNB, "JNB");
	ListAppend2(group1, JNC, "JNC");
	ListAppend2(group1, JNZ, "JNZ");
	ListAppend2(group1, JZ, "JZ");
	ListAppend2(group1, LCALL, "LCALL");
	ListAppend2(group1, LJMP, "LJMP");
	ListAppend2(group1, MOV2, "MOV2");
	ListAppend2(group1, MOV4, "MOV4");
	ListAppend2(group1, MOV8, "MOV8");
	ListAppend2(group1, MOV10, "MOV10");
	ListAppend2(group1, MOV12, "MOV12");
	ListAppend2(group1, MOV16, "MOV16");
	ListAppend2(group1, MOV17, "MOV17");
	ListAppend2(group1, MOV18, "MOV18");
	ListAppend2(group1, MOVC1, "MOVC1");
	ListAppend2(group1, MOVC2, "MOVC2");
	ListAppend2(group1, MOVX2, "MOVX2");
	ListAppend2(group1, MOVX4, "MOVX4");
	ListAppend2(group1, MUL, "MUL");
	ListAppend2(group1, ORL2, "ORL2");
	ListAppend2(group1, ORL4, "ORL4");
	ListAppend2(group1, ORL5, "ORL5");
	ListAppend2(group1, ORL6, "ORL6");
	ListAppend2(group1, ORL7, "ORL7");
	ListAppend2(group1, ORL8, "ORL8");
	ListAppend2(group1, POP, "POP");
	ListAppend2(group1, PUSH, "PUSH");
	ListAppend2(group1, RET, "RET");
	ListAppend2(group1, RL, "RL");
	ListAppend2(group1, RLC, "RLC");
	ListAppend2(group1, RR, "RR");
	ListAppend2(group1, RRC, "RRC");
	ListAppend2(group1, SETB1, "SETB1");
	ListAppend2(group1, SETB2, "SETB2");
	ListAppend2(group1, SJMP, "SJMP");
	ListAppend2(group1, SUBB2, "SUBB2");
	ListAppend2(group1, SUBB4, "SUBB4");
	ListAppend2(group1, SWAP, "SWAP");
	ListAppend2(group1, XCH2, "XCH2");
	ListAppend2(group1, XRL2, "XRL2");
	ListAppend2(group1, XRL4, "XRL4");
	ListAppend2(group1, XRL5, "XRL5");
	ListAppend2(group1, XRL6, "XRL6");
	ListAppend2(group1, ADD3, "ADD3");
	ListAppend2(group1, ADDC3, "ADDC3");
	ListAppend2(group1, ANL3, "ANL3");
	ListAppend2(group1, CJNE4, "CJNE4");
	ListAppend2(group1, DEC4, "DEC4");
	ListAppend2(group1, INC4, "INC4");
	ListAppend2(group1, MOV3, "MOV3");
	ListAppend2(group1, MOV11, "MOV11");
	ListAppend2(group1, MOV13, "MOV13");
	ListAppend2(group1, MOV14, "MOV14");
	ListAppend2(group1, MOV15, "MOV15");
	ListAppend2(group1, MOVX1, "MOVX1");
	ListAppend2(group1, MOVX3, "MOVX3");
	ListAppend2(group1, ORL3, "ORL3");
	ListAppend2(group1, SUBB3, "SUBB3");
	ListAppend2(group1, XCH3, "XCH3");
	ListAppend2(group1, XCHD, "XCHD");
	ListAppend2(group1, XRL3, "XRL3");
	ListAppend2(group1, ADD1, "ADD1");
	ListAppend2(group1, ADDC1, "ADDC1");
	ListAppend2(group1, ANL1, "ANL1");
	ListAppend2(group1, CJNE3, "CJNE3");
	ListAppend2(group1, DEC2, "DEC2");
	ListAppend2(group1, DJNZ1, "DJNZ1");
	ListAppend2(group1, INC2, "INC2");
	ListAppend2(group1, MOV1, "MOV1");
	ListAppend2(group1, MOV5, "MOV5");
	ListAppend2(group1, MOV6, "MOV6");
	ListAppend2(group1, MOV7, "MOV7");
	ListAppend2(group1, MOV9, "MOV9");
	ListAppend2(group1, ORL1, "ORL1");
	ListAppend2(group1, SUBB1, "SUBB1");
	ListAppend2(group1, XRL1, "XRL1");
	ListAppend2(group1, XCH1, "XCH1");
	ListAppend2(group1, ACALL, "ACALL");
	ListAppend2(group1, AJMP, "AJMP");
	ListAppend2(group1, ANL2_X, "ANL2_X");
	ListAppend2(group1, ANL4_X, "ANL4_X");
	ListAppend2(group1, ANL5_X, "ANL5_X");
	ListAppend2(group1, ANL6_X1, "ANL6_X1");
	ListAppend2(group1, ANL6_X2, "ANL6_X2");
	ListAppend2(group1, ANL7_X, "ANL7_X");
	ListAppend2(group1, ANL8_X, "ANL8_X");
	ListAppend2(group1, ORL2_X, "ORL2_X");
	ListAppend2(group1, ORL4_X, "ORL4_X");
	ListAppend2(group1, ORL5_X, "ORL5_X");
	ListAppend2(group1, ORL6_X1,"ORL6_X1");
	ListAppend2(group1, ORL6_X2, "ORL6_X2");
	ListAppend2(group1, ORL7_X, "ORL7_X");
	ListAppend2(group1, ORL8_X, "ORL8_X");
	ListAppend2(group1, XRL2_X, "XRL2_X");
	ListAppend2(group1, XRL4_X, "XRL4_X");
	ListAppend2(group1, XRL5_X, "XRL5_X");
	ListAppend2(group1, XRL6_X1, "XRL6_X1");
	ListAppend2(group1, XRL6_X2, "XRL6_X2");
	ListAppend2(group1, CLR3_X, "CLR3_X");
	ListAppend2(group1, SETB2_X, "SETB2_X");
	ListAppend2(group1, CPL3_X, "CPL3_X");
	ListAppend2(group1, XCH2_X, "XCH2_X");
	ListAppend2(group1, LCALL_X1, "LCALL_X1");
	ListAppend2(group1, LCALL_X2, "LCALL_X2");
	ListAppend2(group1, ACALL_X, "ACALL_X");
	ListAppend2(group1, CJNE1_X1, "CJNE1_X1");
	ListAppend2(group1, CJNE1_X2, "CJNE1_X2");
	ListAppend2(group1, CJNE2_X1, "CJNE2_X1");
	ListAppend2(group1, CJNE2_X2, "CJNE2_X2");
	ListAppend2(group1, CJNE3_X1, "CJNE3_X1");
	ListAppend2(group1, CJNE3_X2, "CJNE3_X2");
	ListAppend2(group1, CJNE4_X1, "CJNE4_X1");
	ListAppend2(group1, CJNE4_X2, "CJNE4_X2");
	ListAppend2(group1, DEC3_X, "DEC3_X");
	ListAppend2(group1, INC3_X, "INC3_X");
	ListAppend2(group1, DJNZ1_X, "DJNZ1_X");
	ListAppend2(group1, DJNZ2_X1, "DJNZ2_X1");
	ListAppend2(group1, DJNZ2_X2, "DJNZ2_X2");
	ListAppend2(group1, POP_X, "POP_X");
	ListAppend2(group1, PUSH_X, "PUSH_X");
	ListAppend2(group1, JB_X1, "JB_X1");
	ListAppend2(group1, JB_X2, "JB_X2");
	ListAppend2(group1, JBC_X1, "JBC_X1");
	ListAppend2(group1, JBC_X2, "JBC_X2");
	ListAppend2(group1, JC_X, "JC_X");
	ListAppend2(group1, JNB_X1, "JNB_X1");
	ListAppend2(group1, JNB_X2, "JNB_X2");
	ListAppend2(group1, JNC_X, "JNC_X");
	ListAppend2(group1, JNZ_X, "JNZ_X");
	ListAppend2(group1, JZ_X, "JZ_X");
	ListAppend2(group1, AJMP_X, "AJMP_X");
	ListAppend2(group1, LJMP_X1, "LJMP_X1");
	ListAppend2(group1, LJMP_X2, "LJMP_X2");
	ListAppend2(group1, SJMP_X, "SJMP_X");
	ListAppend2(group1, MOV2_X, "MOV2_X");
	ListAppend2(group1, MOV4_X, "MOV4_X");
	ListAppend2(group1, MOV6_X, "MOV6_X");
	ListAppend2(group1, MOV7_X, "MOV7_X");
	ListAppend2(group1, MOV8_X, "MOV8_X");
	ListAppend2(group1, MOV9_X, "MOV9_X");
	ListAppend2(group1, MOV10_X1, "MOV10_X1");
	ListAppend2(group1, MOV10_X2, "MOV10_X2");
	ListAppend2(group1, MOV11_X, "MOV11_X");
	ListAppend2(group1, MOV12_X1, "MOV12_X1");
	ListAppend2(group1, MOV12_X2, "MOV12_X2");
	ListAppend2(group1, MOV14_X, "MOV14_X");
	ListAppend2(group1, MOV15_X, "MOV15_X");
	ListAppend2(group1, MOV16_X, "MOV16_X");
	ListAppend2(group1, MOV17_X, "MOV17_X");
	ListAppend2(group1, MOV18_X1, "MOV18_X1");
	ListAppend2(group1, MOV18_X2, "MOV18_X2");
	ListAppend2(group1, ADD2_X, "ADD2_X");
	ListAppend2(group1, ADD4_X, "ADD4_X");
	ListAppend2(group1, ADDC2_X, "ADDC2_X");
	ListAppend2(group1, ADDC4_X, "ADDC4_X");
	ListAppend2(group1, SUBB2_X, "SUBB2_X");
	ListAppend2(group1, SUBB4_X, "SUBB4_X");
	
	int n = GetListLength(group1);
	
	for (i = 0; i < n; i++)
	{
		uint8_t opcode;
		const char *name = PopRandomOpcode(&group1, &opcode);
		
		fprintf(f, "static uint8_t %s = 0x%02X;\n", name, opcode);
	}
}
示例#11
0
文件: list_mtm.c 项目: TaniaPewah/hw2
/**
* Returns the number of elements in a list
*
* @param list The target list which size is requested.
* @return
* -1 if a NULL pointer was sent.
* Otherwise the number of elements in the list.
*/
int listGetSize(List list) {
	int size = NULL_LIST_SIZE;
	if (list != NULL) size = GetListLength(list);
	return size;
}