yeami10011
2021-05-18 20:26 阅读 290

求冯诺依曼式CPU模拟器!!!

75

计导大作业:冯诺依曼式CPU模拟器

A:概要设计书

B:单核版

C:双核版

如果有这个资源的大大,请速度留言我!!!秒确认

  • 点赞
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • Change_over 流某人 2021-05-18 22:35

    /*主函数main
     1>取指令,保存到寄存器
     2>分析指令,执行指令
     3>输出代码,数据 
     
    代码 code [] 
    数据 data [] 
    指令 寄存器 ir     前 16位 
    程序 寄存器 ip     +4 
    标志 寄存器 flag                  (程序计数器 
    4个数据 寄存器 ax1 暂时粗存 
    4个地址 寄存器 ax5 存放位置,eg:16384->0 
    ax[i]  第 i 个寄存器 
    */

    #include<stdio.h> 
    #include<stdlib.h>

    void read(char code[]);//读取指令 
    void analyze(char code[],int data[],int ax[],int *ip,int *ir,int *flag);//分析 
    void division(int task,int objfront,int objback,int value
            ,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//task分工 
    void output(int *ip,char code[],int data[]);//输出 
    int binary(char code[],int start,int n);//二进制转十进制 

    void task1  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//数据传送
    void task2  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag); //算数 
    void task6  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//逻辑 
    void task9  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//比较 
    void task10  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//跳转
    void task11  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//输入输出 
     
    main()
    {
        char code[16384+10];    
        int data[32768+10]={0},ax[9]={0};     
        int ip=0,flag=0,ir=0;
        
        read(code);    //读取指令 
        analyze(code,data,ax,&ip,&ir,&flag); //分析 
        output(&ip,code,data);
    }
    //读取指令 
    /*
    参数    代码 code[]
    功能    从文件中读取  二进制 指令
    返回值    NULL 
    */ 
    void read(char code[])
    {
        int i=0;
        FILE *fPtr=fopen("dict.txt","r") ;
        if(fPtr==NULL){
            printf("error\n"); 
        }
        else{
            for(i=0;!feof(fPtr);i++)
            {
                code[i]=getc(fPtr);
            }
        }
        code[i]=NULL;
        puts(code);
        printf("code[i]中的i    %d\n",i);    

    //分析 
    //指令 寄存器 ir     前 16位 
    //程序 寄存器 ip     +4 
    /*
    参数    代码——数据——ax寄存器——
            code[]  data[]   ax[]
            指令指针or程序计数器—— 指令寄存—— 标志寄存
            *ip                            *ir            *flag
    功能    分析 各个元素(操作task 对象objfront & objback 立即数)  根据task 分工
    返回值    NULL 
    */ 
    void analyze(char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
        int i,start,cnt;
        int task=1,objfront,objback,value;
        while(task!=0){
            start=(*ip)/4*33;                //start 开始翻译的位置 
            task=binary(code,start,8);         //操作码 
            start=(*ip)/4*33+8;                
            objfront=binary(code,start,4);     //前对象 
            start=(*ip)/4*33+8+4;            
            objback=binary(code,start,4);     //后对象 
            start=(*ip)/4*33+16;
            value=binary(code,start,16);    //立即数 
            
            *ip=(*ip)+4; //标志寄存器 更新         
            *ir=task*256 + objfront*16 + objback ;  //指令寄存器  16 bit
             
            division(task,objfront,objback,value,code,data,ax,ip,ir,flag);//分工 
            
            //updata更新 
            printf("ip = %d\nflag = %d\nir = %d\n",*ip,*flag,*ir);
            for(i=1;i<=4;i++){
                printf("ax%d = %d ",i,ax[i]);
            }
            printf("\n");
            for(i=5;i<=8;i++){
                printf("ax%d = %d ",i,ax[i]);
            }
            printf("\n");        

        }
    }
    //代码,数据,输出 
    /*
    参数     指令指针—— 代码——数据
             *ip          code[]  data[] 
    功能    输出8*16代码,16*16数据 (以十进制)
    返回值     NULL 
    */ 
    void output(int *ip,char code[],int data[])
    {
        int cnt,task,start,i;
        task=1;
        cnt=0;
        *ip=0;
        //代码段  
        printf("\ncodeSegment :\n");
        while(task!=0){
            start=(*ip)/4*33;        
            task=binary(code,start,32);     
            printf("%d ",task);
            *ip=(*ip)+4;        
            cnt++;
            if(cnt%8==0)
                printf("\n");
        }
        for(i=16*8-cnt;i>0;i--){
            printf("0 ");
            cnt++;
            if(cnt%8==0)
                printf("\n");
        } 
        //数据段 
        printf("\ndataSegment :\n");
        cnt=0;
        for(i=0;i<= 16*16-1;i++){
            printf("%d ",data[i]);
            cnt++;
            if(cnt%16==0)
                printf("\n");
        }
    }
    //二进制  转  十进制 
    /*
    参数    代码——开始 位置——转换 n 位数 
            code[]   start          n 
    功能    将 n 位 二进制数 转化为 十进制
    返回值    十进制数 
    */ 
    int binary(char code[],int start,int n)
    {
        int sum,i;
        for(i=start,sum=0;i<start+n;i++){
            sum=(sum)*2+(code[i]-'0');
        }
    //    printf("%d\n",sum);
        //立即数需要判断,是否为负数 
        if(n==16){
            if(sum<=32767)
                return sum;
            else
                return sum-65536;        
        }
        else
            return sum;
    }
    //分工
    /*
    参数    任务——前操作对象——后操作对象——立即数
            task     objfront      objback        value
            代码——数据——寄存器
            code[]  data[]   ax[]
            指令指针or程序计数器-- 指令寄存-- 标志寄存
            *ip                            *ir            *flag
    功能    根据task 进行 相应的操作
    返回值    NULL         
    */
    void division(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
        switch(task){
            case 1://数据传送 
                task1(task,objfront,objback,value,code,data,ax,ip,ir,flag);
                break;
            case 2:case 3:case 4:case 5://算术运算 
                task2(task,objfront,objback,value,code,data,ax,ip,ir,flag);
                break;
            case 6:case 7:case 8://逻辑运算 
                task6(task,objfront,objback,value,code,data,ax,ip,ir,flag);
                break;
            case 9://比较 
                task9(task,objfront,objback,value,code,data,ax,ip,ir,flag);
                break;
            case 10://跳转 
                task10(task,objfront,objback,value,code,data,ax,ip,ir,flag);
                break;
            case 11:case 12://输入输出 
                task11(task,objfront,objback,value,code,data,ax,ip,ir,flag);
                break;
            default:
                break;                                                                                    
        } 
    }

    /* 
    数据传送
    参数——同division函数的参数 
    */
    void task1(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
        //立即数  的传递 
        if(objback==0){
                ax[objfront]= value;
        }
        //寄存器 之间的传递
        else{
            if(objfront<=4)
                ax[objfront]= data[ ax[objback]- 16384 ];
            else//objfront >= 5
                data[ ax[objfront]- 16384 ] = ax[objback] ;
        } 
    }
    /*
    算数运算指令
    参数——同division函数的参数 
    */
    void task2(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
        //立即数 value  的传递
        if(objback==0){
                switch(task){
                    case 2:ax[objfront] += value;break;
                    case 3:ax[objfront] -= value;break;
                    case 4:ax[objfront] *= value;break;
                    case 5:ax[objfront] /= value;break;
                }
        }
        //寄存器 之间的传递 
        else{
                switch(task){
                    case 2:ax[objfront] += data[ ax[objback]- 16384 ];break;
                    case 3:ax[objfront] -= data[ ax[objback]- 16384 ];break;
                    case 4:ax[objfront] *= data[ ax[objback]- 16384 ];break;
                    case 5:ax[objfront] /= data[ ax[objback]- 16384 ];break;
                }                
        } 
    }
    /*
    逻辑运算指令
    参数——同division函数的参数 
    */
    void task6(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
        //立即数  的传递 
        if(objback==0){
                switch(task){
                    case 6:
                        if(ax[objfront] && value)    
                            ax[objfront] = 1;    
                        else                        
                            ax[objfront] = 0;
                        break;
                    case 7:
                        if(ax[objfront] || value)    
                            ax[objfront] = 1;
                        else                         
                            ax[objfront] = 0;
                        break;                    
                    case 8:
                        ax[objfront] = ! ax[objfront] ;
                        break;
                }
        }
        //寄存器 之间的传递
        else{
                switch(task){
                    case 6:
                        if(ax[objfront] && data[ ax[objback]- 16384  ]  )    
                            ax[objfront] = 1;    
                        else                    
                            ax[objfront] = 0;
                        break;
                    case 7:
                        if(ax[objfront] || data[ ax[objback]- 16384  ]  )    
                            ax[objfront] = 1;
                        else                         
                            ax[objfront] = 0;
                        break;                    
                    case 8:
                        data[ ax[objback]- 16384 ] = ! data[ ax[objback]- 16384 ];
                        break;
                }
        } 
    }
    /* 
    比较指令
    参数——同division函数的参数 
    */
    void task9(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
        //立即数  的传递 
        if(objback==0){
                if( ax[objfront] > value)
                      *flag=1;
                if( ax[objfront] == value)
                      *flag=0;
                if( ax[objfront] < value)
                      *flag=-1;                              
        }
        //寄存器 之间的传递
        else{
                if( ax[objfront] > data[ ax[objback]- 16384 ]  )
                      *flag=1;
                if( ax[objfront] == data[ ax[objback]- 16384 ]  )
                      *flag=0;
                if( ax[objfront] < data[ ax[objback]- 16384 ]  )
                      *flag=-1;    
        } 
        
    }
    /* 
    跳转指令
    参数——同division函数的参数 
    */
    void task10(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
        if(objback == 0){
                *ip += value-4;
        }
        if(objback == 1){
            if(*flag == 0)    
                *ip += value-4;
        }
        if(objback == 2){
            if(*flag == 1)    
                *ip += value-4;
        }
        if(objback == 3){
            if(*flag == -1)
                *ip += value-4;
        }
    }
    /* 
    输入输出
    参数——同division函数的参数 
    */
    void task11(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
        switch(task){
            case 11:
                printf("in:\n");
                scanf("%d", &ax[objfront] );
                break;
            case 12:
                printf("out:\n");
                printf("%d\n", ax[objfront] );
        } 
    }

    点赞 评论 复制链接分享
  • qq_45167385 初学的小封尘 2021-05-19 08:15

    我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《BUPT大作业C语言——冯诺依曼式CPU模拟器》, 一起来围观吧 https://blog.csdn.net/weixin_46574762/article/details/105846877?utm_source=app&app_version=4.7.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

    点赞 评论 复制链接分享
  • yeami10011 楊天恩�「学术论文」 2021-05-19 12:42

    你把别人的复制过来我咋用?

    点赞 评论 复制链接分享
  • qq_35214157 加了个瓦 2021-05-19 13:13

    我们的计算机科学导论书配套有一个我们学校老师写的模拟计算机的程序,不知道是不是你想要的,可以输入指令之类的东西,有安卓版,也有jar,我只有那个软件(好吧我还要找找放哪了)

    点赞 评论 复制链接分享
  • qq_15769939 小P聊技术 2021-05-21 16:31
    /*
    作者:赵雨腾
    时间:2020.4.26 
    
    主函数main
     1>取指令,保存到寄存器
     2>分析指令,执行指令
     3>输出代码,数据 
     
    代码 code [] 
    数据 data [] 
    指令 寄存器 ir 	前 16位 
    程序 寄存器 ip 	+4 
    标志 寄存器 flag   		       (程序计数器 
    4个数据 寄存器 ax1 暂时粗存 
    4个地址 寄存器 ax5 存放位置,eg:16384->0 
    ax[i]  第 i 个寄存器 
    */
    
    #include<stdio.h> 
    #include<stdlib.h>
    
    void read(char code[]);//读取指令 
    void analyze(char code[],int data[],int ax[],int *ip,int *ir,int *flag);//分析 
    void division(int task,int objfront,int objback,int value
    		,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//task分工 
    void output(int *ip,char code[],int data[]);//输出 
    int binary(char code[],int start,int n);//二进制转十进制 
    
    void task1  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//数据传送
    void task2  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag); //算数 
    void task6  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//逻辑 
    void task9  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//比较 
    void task10  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//跳转
    void task11  (int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag);//输入输出 
     
    main()
    {
    	char code[16384+10];	
    	int data[32768+10]={0},ax[9]={0}; 	
    	int ip=0,flag=0,ir=0;
    	
    	read(code);	//读取指令 
    	analyze(code,data,ax,&ip,&ir,&flag); //分析 
    	output(&ip,code,data);
    }
    //读取指令 
    /*
    参数	代码 code[]
    功能	从文件中读取  二进制 指令
    返回值	NULL 
    */ 
    void read(char code[])
    {
    	int i=0;
    	FILE *fPtr=fopen("dict.txt","r") ;
    	if(fPtr==NULL){
    		printf("error\n"); 
    	}
    	else{
    		for(i=0;!feof(fPtr);i++)
    		{
    			code[i]=getc(fPtr);
    		}
    	}
    	code[i]=NULL;
    	puts(code);
    	printf("code[i]中的i	%d\n",i);	
    } 
    //分析 
    //指令 寄存器 ir 	前 16位 
    //程序 寄存器 ip 	+4 
    /*
    参数	代码——数据——ax寄存器——
    		code[]  data[]   ax[]
    		指令指针or程序计数器—— 指令寄存—— 标志寄存
    		*ip							*ir			*flag
    功能	分析 各个元素(操作task 对象objfront & objback 立即数)  根据task 分工
    返回值	NULL 
    */ 
    void analyze(char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
    	int i,start,cnt;
    	int task=1,objfront,objback,value;
    	while(task!=0){
    		start=(*ip)/4*33;				//start 开始翻译的位置 
    		task=binary(code,start,8); 		//操作码 
    		start=(*ip)/4*33+8;				
    		objfront=binary(code,start,4); 	//前对象 
    		start=(*ip)/4*33+8+4;			
    		objback=binary(code,start,4); 	//后对象 
    		start=(*ip)/4*33+16;
    		value=binary(code,start,16);	//立即数 
    		
    		*ip=(*ip)+4; //标志寄存器 更新 		
    		*ir=task*256 + objfront*16 + objback ;  //指令寄存器  16 bit
    		 
    		division(task,objfront,objback,value,code,data,ax,ip,ir,flag);//分工 
    		
    		//updata更新 
    		printf("ip = %d\nflag = %d\nir = %d\n",*ip,*flag,*ir);
    		for(i=1;i<=4;i++){
    			printf("ax%d = %d ",i,ax[i]);
    		}
    		printf("\n");
    		for(i=5;i<=8;i++){
    			printf("ax%d = %d ",i,ax[i]);
    		}
    		printf("\n");		
    
    	}
    }
    //代码,数据,输出 
    /*
    参数	 指令指针—— 代码——数据
    		 *ip 		 code[]  data[] 
    功能	输出8*16代码,16*16数据 (以十进制)
    返回值 	NULL 
    */ 
    void output(int *ip,char code[],int data[])
    {
    	int cnt,task,start,i;
    	task=1;
    	cnt=0;
    	*ip=0;
    	//代码段  
    	printf("\ncodeSegment :\n");
    	while(task!=0){
    		start=(*ip)/4*33;		
    		task=binary(code,start,32); 	
    		printf("%d ",task);
    		*ip=(*ip)+4;		
    		cnt++;
    		if(cnt%8==0)
    			printf("\n");
    	}
    	for(i=16*8-cnt;i>0;i--){
    		printf("0 ");
    		cnt++;
    		if(cnt%8==0)
    			printf("\n");
    	} 
    	//数据段 
    	printf("\ndataSegment :\n");
    	cnt=0;
    	for(i=0;i<= 16*16-1;i++){
    		printf("%d ",data[i]);
    		cnt++;
    		if(cnt%16==0)
    			printf("\n");
    	}
    }
    //二进制  转  十进制 
    /*
    参数	代码——开始 位置——转换 n 位数 
    		code[]   start		  n 
    功能	将 n 位 二进制数 转化为 十进制
    返回值	十进制数 
    */ 
    int binary(char code[],int start,int n)
    {
    	int sum,i;
    	for(i=start,sum=0;i<start+n;i++){
    		sum=(sum)*2+(code[i]-'0');
    	}
    //	printf("%d\n",sum);
    	//立即数需要判断,是否为负数 
    	if(n==16){
    		if(sum<=32767)
    			return sum;
    		else
    			return sum-65536;		
    	}
    	else
    		return sum;
    }
    //分工
    /*
    参数	任务——前操作对象——后操作对象——立即数
    		task 	objfront	  objback		value
    		代码——数据——寄存器
    		code[]  data[]   ax[]
    		指令指针or程序计数器-- 指令寄存-- 标志寄存
    		*ip							*ir			*flag
    功能	根据task 进行 相应的操作
    返回值	NULL		 
    */
    void division(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
    	switch(task){
    		case 1://数据传送 
    			task1(task,objfront,objback,value,code,data,ax,ip,ir,flag);
    			break;
    		case 2:case 3:case 4:case 5://算术运算 
    			task2(task,objfront,objback,value,code,data,ax,ip,ir,flag);
    			break;
    		case 6:case 7:case 8://逻辑运算 
    			task6(task,objfront,objback,value,code,data,ax,ip,ir,flag);
    			break;
    		case 9://比较 
    			task9(task,objfront,objback,value,code,data,ax,ip,ir,flag);
    			break;
    		case 10://跳转 
    			task10(task,objfront,objback,value,code,data,ax,ip,ir,flag);
    			break;
    		case 11:case 12://输入输出 
    			task11(task,objfront,objback,value,code,data,ax,ip,ir,flag);
    			break;
    		default:
    			break;																					
    	} 
    }
    
    /* 
    数据传送
    参数——同division函数的参数 
    */
    void task1(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
    	//立即数  的传递 
    	if(objback==0){
    			ax[objfront]= value;
    	}
    	//寄存器 之间的传递
    	else{
    		if(objfront<=4)
    			ax[objfront]= data[ ax[objback]- 16384 ];
    		else//objfront >= 5
    			data[ ax[objfront]- 16384 ] = ax[objback] ;
    	} 
    }
    /*
    算数运算指令
    参数——同division函数的参数 
    */
    void task2(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
    	//立即数 value  的传递
    	if(objback==0){
    			switch(task){
    				case 2:ax[objfront] += value;break;
    				case 3:ax[objfront] -= value;break;
    				case 4:ax[objfront] *= value;break;
    				case 5:ax[objfront] /= value;break;
    			}
    	}
    	//寄存器 之间的传递 
    	else{
    			switch(task){
    				case 2:ax[objfront] += data[ ax[objback]- 16384 ];break;
    				case 3:ax[objfront] -= data[ ax[objback]- 16384 ];break;
    				case 4:ax[objfront] *= data[ ax[objback]- 16384 ];break;
    				case 5:ax[objfront] /= data[ ax[objback]- 16384 ];break;
    			}				
    	} 
    }
    /*
    逻辑运算指令
    参数——同division函数的参数 
    */
    void task6(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
    	//立即数  的传递 
    	if(objback==0){
    			switch(task){
    				case 6:
    					if(ax[objfront] && value)	
    						ax[objfront] = 1;	
    					else						
    						ax[objfront] = 0;
    					break;
    				case 7:
    					if(ax[objfront] || value)	
    						ax[objfront] = 1;
    					else 						
    						ax[objfront] = 0;
    					break;					
    				case 8:
    					ax[objfront] = ! ax[objfront] ;
    					break;
    			}
    	}
    	//寄存器 之间的传递
    	else{
    			switch(task){
    				case 6:
    					if(ax[objfront] && data[ ax[objback]- 16384  ]  )	
    						ax[objfront] = 1;	
    					else					
    						ax[objfront] = 0;
    					break;
    				case 7:
    					if(ax[objfront] || data[ ax[objback]- 16384  ]  )	
    						ax[objfront] = 1;
    					else 						
    						ax[objfront] = 0;
    					break;					
    				case 8:
    					data[ ax[objback]- 16384 ] = ! data[ ax[objback]- 16384 ];
    					break;
    			}
    	} 
    }
    /* 
    比较指令
    参数——同division函数的参数 
    */
    void task9(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
    	//立即数  的传递 
    	if(objback==0){
    			if( ax[objfront] > value)
    			  	*flag=1;
    			if( ax[objfront] == value)
    			  	*flag=0;
    			if( ax[objfront] < value)
    			  	*flag=-1;				  			
    	}
    	//寄存器 之间的传递
    	else{
    			if( ax[objfront] > data[ ax[objback]- 16384 ]  )
    			  	*flag=1;
    			if( ax[objfront] == data[ ax[objback]- 16384 ]  )
    			  	*flag=0;
    			if( ax[objfront] < data[ ax[objback]- 16384 ]  )
    			  	*flag=-1;	
    	} 
    	
    }
    /* 
    跳转指令
    参数——同division函数的参数 
    */
    void task10(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
    	if(objback == 0){
    			*ip += value-4;
    	}
    	if(objback == 1){
    		if(*flag == 0)	
    			*ip += value-4;
    	}
    	if(objback == 2){
    		if(*flag == 1)	
    			*ip += value-4;
    	}
    	if(objback == 3){
    		if(*flag == -1)
    			*ip += value-4;
    	}
    }
    /* 
    输入输出
    参数——同division函数的参数 
    */
    void task11(int task,int objfront,int objback,int value
    ,char code[],int data[],int ax[],int *ip,int *ir,int *flag)
    {
    	switch(task){
    		case 11:
    			printf("in:\n");
    			scanf("%d", &ax[objfront] );
    			break;
    		case 12:
    			printf("out:\n");
    			printf("%d\n", ax[objfront] );
    	} 
    }
    点赞 评论 复制链接分享
  • qq_15769939 小P聊技术 2021-05-21 16:33

    点赞 评论 复制链接分享

相关推荐