单片机 用汇编语言编写三个字节数的相加的程序,要用堆栈保护,急!!!!!

单片机 用汇编语言编写三个字节数的相加的程序,要用堆栈保护,急!!!!!,第1张

堆栈保护用中断来做三个字节数的相加是吧?我只能给你说下此程序的整个流程。

1 进行现场保护,保存工作寄存器,状态寄存器值等中断中用到的寄存器。

2 将求和用的寄存器(至少4个字节)清零;

3 将最低字节被加数送入工作寄存器,加数最低字节与工作寄存器相加,结果存在工作寄存器;

4工作寄存器内容送入和的最低字节,如有进位和的第2字节加1;

5 将第2字节被加数送入工作寄存器,和的第2字节与工作寄存器相加,结果存在和的第2字节, 如有进位,和的第3字节加1;

6 将第2字节加数送入工作寄存器,和的第2字节与工作寄存器相加,结果存在和的第2字节,如有进位和的第3字节加1;

7将第3字节被加数送入工作寄存器,和的第3字节与工作寄存器相加,结果存在和的第3字节, 如有进位,和的第4字节加1;

8 将第3字节加数送入工作寄存器,和的第3字节与工作寄存器相加,结果存在和的第3字节,如有进位和的第4字节加1;

9 恢复现场,恢复工作寄存器,状态寄存器值等中断中用到的寄存器。

给你写了个,不过没写好,你自己给改改吧!将就着,还能用,统计信息和退出时保存有点问题,自己给改改吧!英语不好本人,用拼音写的!

#include"stdioh"

#include"stringh"

#include"stdlibh"

#include"mathh"

#define TIAOSHU 100

#define CHENGGONG 1

#define SHIBAI 0

#define SHOURU 1

#define ZHICHU 2

#define ZENGJIA 1

#define SHANCHU 2

#define XIUGAI 3

#define CHAXUN 4

#define TONGJI 5

#define TUICHU 6

/以下定义全局变量/

struct shouzhixinxi

{

char xingming[20];

char laiyuan[40];

char riqi[20];

char shumu[10]; /用double貌似读不出来/

}jilu[TIAOSHU];

/定义收支情况结构体,TIAOSHU表示最大的容量,可自行更改/

char xuanze;

/该数据用于接收选择信息/

int tishi;

/用于接收各函数返回的提示信息/

int dijitiao=0;

/用于表示当前是第几条信息/

int i;

/用于存放临时的条数,相当于零食的dijitiao/

char linshi[40];

double linshi2;

/用于存放一些临时信息/

/代码/

/用于保存信息/

void baocun()

{

FILE fp;

fp=fopen("shouzhiguanlitxt","w+");

for(i=0;i<dijitiao;i++)

{

fprintf(fp,"%s ",jilu[i]xingming);

fprintf(fp,"%s ",jilu[i]laiyuan);

fprintf(fp,"%s ",jilu[i]riqi);

fprintf(fp,"%s ",jilu[i]shumu);

}

fclose(fp);

}

/用于输出查询到的信息/

int shuchu(int i)

{

printf("\n\n \37~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\37\n");

printf(" \23 \3收 支 人 员 姓 名:%-20s\23\n",jilu[i]xingming);

printf(" \23 \3收 支 来 源 或 去 向:%-17s\23\n",jilu[i]laiyuan);

printf(" \23 \3收 支 日 期:%-26s\23\n",jilu[i]riqi);

printf(" \23 \3收 支 数 目:%-26s\23\n",jilu[i]shumu);

printf(" \36~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\36\n");

return CHENGGONG;

}

/用于新建/

void xinzeng(int dijitiao)

{

while(1)

{

printf("\n请输入收入或支出人员的姓名:");

scanf("%s",jilu[dijitiao]xingming);

printf("\n请输入收入来源或支出去向:");

scanf("%s",jilu[dijitiao]laiyuan);

printf("\n请输入收入或支出的日期:");

scanf("%s",jilu[dijitiao]riqi);

printf("\n请输入收入或支出的数目:");

scanf("%s",jilu[dijitiao]shumu);

printf("是否保存这条信息? <Y/N>\n");

xuanze=getch();

if(xuanze=='Y' || xuanze=='y')

{

dijitiao++;

printf("保存成功\n");

}

printf("是否继续添加新记录? <Y/N>\n");

xuanze=getch();

printf("\n");

if(xuanze=='N' || xuanze=='n')

break;

}

}

/用于删除/

void shanchu()

{

int xuhao=0,biaoshi[20]={-1};

while(1)

{

printf("\n请选择查询要删除的记录的方式: 1姓名 2来源或去向 3日期 4数目\n");

xuanze=getch();

xuanze=xuanze-48;

switch(xuanze)

{

case 1:

printf("请输入要查询的姓名:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]xingming,linshi)==0) /查询/

{

xuhao++;

biaoshi[xuhao]=i;

printf("\n\n%10d->",xuhao);

tishi=shuchu(i);

}

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

case 2:

printf("请输入要查询的来源或去向:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]laiyuan,linshi)==0) /查询/

{

xuhao++;

biaoshi[xuhao]=i;

printf("\n\n%10d->",xuhao);

tishi=shuchu(i);

}

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

case 3:

printf("请输入要查询的日期:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]riqi,linshi)==0) /查询/

{

xuhao++;

biaoshi[xuhao]=i;

printf("\n\n%10d->",xuhao);

tishi=shuchu(i);

}

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

case 4:

printf("请输入要查询的数目:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]shumu,linshi)==0)

{

xuhao++;

biaoshi[xuhao]=i;

printf("\n\n%10d->",xuhao);

tishi=shuchu(i);

}

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

default:printf("输入错误\n");

}

printf("请输入记录左上角对应的序号:");

xuanze=getch();

printf("\n");

xuanze=xuanze-48;

if(biaoshi[xuanze]!=-1 && xuanze<=xuhao && xuanze>0)

{

biaoshi[0]=biaoshi[xuanze];

printf("确认删除? <Y/N> \n");

xuanze=getch();

if(xuanze=='Y' || xuanze=='y')

{

strcpy(jilu[biaoshi[0]]xingming,"\0");

strcpy(jilu[biaoshi[0]]laiyuan,"\0");

strcpy(jilu[biaoshi[0]]riqi,"\0");

strcpy(jilu[biaoshi[0]]shumu,"\0");

printf("删除成功\n");

}

}

else printf("输入错误\n");

printf("是否继续删除? <Y/N> \n");

xuanze=getch();

printf("\n");

if(xuanze=='N' || xuanze=='n')

break;

}

}

/用于修改/

void xiugai()

{

struct shouzhixinxi linshijilu;

int xuhao=0,biaoshi[20]={-1};

while(1)

{

printf("\n请选择查询要修改的记录的方式: 1姓名 2来源或去向 3日期 4数目\n");

xuanze=getch();

xuanze=xuanze-48;

switch(xuanze)

{

case 1:

printf("请输入要查询的姓名:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]xingming,linshi)==0) /查询/

{

xuhao++;

biaoshi[xuhao]=i;

printf("\n\n%10d->",xuhao);

tishi=shuchu(i);

}

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

case 2:

printf("请输入要查询的来源或去向:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]laiyuan,linshi)==0) /查询/

{

xuhao++;

biaoshi[xuhao]=i;

printf("\n\n%10d->",xuhao);

tishi=shuchu(i);

}

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

case 3:

printf("请输入要查询的日期:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]riqi,linshi)==0) /查询/

{

xuhao++;

biaoshi[xuhao]=i;

printf("\n\n%10d->",xuhao);

tishi=shuchu(i);

}

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

case 4:

printf("请输入要查询的数目:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]shumu,linshi)==0)

{

xuhao++;

biaoshi[xuhao]=i;

printf("\n\n%10d->",xuhao);

tishi=shuchu(i);

}

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

default:printf("输入错误\n");

}

printf("请输入记录左上角对应的序号:");

xuanze=getch();

xuanze=xuanze-48;

if(biaoshi[xuanze]!=-1 && xuanze<=xuhao && xuanze>0)

{

biaoshi[0]=biaoshi[xuanze];

printf("\n请输入新姓名:");

scanf("%s",linshijiluxingming);

printf("\n请输入新收入来源或支出去向:");

scanf("%s",linshijilulaiyuan);

printf("\n请输入新收入或支出的日期:");

scanf("%s",linshijiluriqi);

printf("\n请输入新收入或支出的数目:");

scanf("%s",linshijilushumu);

printf("确认修改? <Y/N> \n");

xuanze=getch();

if(xuanze=='Y' || xuanze=='y')

{

strcpy(jilu[biaoshi[0]]xingming,linshijiluxingming);

strcpy(jilu[biaoshi[0]]laiyuan,linshijilulaiyuan);

strcpy(jilu[biaoshi[0]]riqi,linshijiluriqi);

strcpy(jilu[biaoshi[0]]shumu,linshijilushumu);

printf("修改成功\n");

}

}

else printf("输入错误\n");

printf("是否继续修改? <Y/N> \n");

xuanze=getch();

printf("\n");

if(xuanze=='N' || xuanze=='n')

break;

}

}

/用于查询/

void chaxun(void)

{

while(1)

{

printf("\n请选择查询方式: 1姓名 2来源或去向 3日期 4数目\n");

xuanze=getch();

xuanze=xuanze-48;

switch(xuanze)

{

case 1:

printf("请输入要查询的姓名:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]xingming,linshi)==0) /查询/

tishi=shuchu(i);

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

case 2:

printf("请输入要查询的来源或去向:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]laiyuan,linshi)==0) /查询/

tishi=shuchu(i);

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

case 3:

printf("请输入要查询的日期:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]riqi,linshi)==0) /查询/

tishi=shuchu(i);

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

case 4:

printf("请输入要查询的数目:");

scanf("%s",linshi);

for(i=0;i<dijitiao;i++)

if(strcmp(jilu[i]shumu,linshi)==0)

tishi=shuchu(i);

if(tishi!=CHENGGONG)

printf("未找到相关记录\n");

break;

default:printf("输入错误\n");

}

printf("是否继续查询? <Y/N>");

xuanze=getch();

if(xuanze=='N' || xuanze=='n')

break;

}

}

/将字符串转换为浮点数/

double zhuanhuan(char str)

{

int zhengshu=0,xiaoshu=0,neixing=1,zhishu,zhengfu=1;

double jieguo=0;

zhengshu=strlen(str);

switch(str[0])

{

case '-':

str[0]='0';

zhengfu=-1;

break;

case '+':

str[0]='0';

zhengfu=1;

break;

}

for(i=0;str[i]!='\0';i++)

if(str[i]='')

{

zhengshu=i;

break;

}

for(i=0;str[i]!='\0';i++)

{

if(str[i]!='' && neixing==1)

{

zhishu=zhengshu-i-1;

jieguo=jieguo+(str[i]-48)pow(10,zhishu);

}

else

{

if(str[i]=='')

neixing=0;

else

{

zhishu=i-zhengshu-1;

jieguo=jieguo+(str[i]-48)pow(10,zhishu);

}

}

}

if(zhengfu==-1)

return -jieguo;

return jieguo;

}

/用于统计/

void tongji(void)

{

double shumu=0,shumu2;

char riqi1[10],riqi2[10];

while(1)

{

printf("\n请输入起始日期(含该日,年四位,月日两位):");

scanf("%s",riqi1);

printf("\n请输入截止日期(含该日,年四位,月日两位):");

scanf("%s",riqi2);

if(strcmp(riqi1,riqi2)<0)

for(i=0;i<dijitiao;i++)

if(strcmp(riqi1,jilu[i]riqi)<=0 && strcmp(riqi2,jilu[i]riqi)>=0)

{

shumu2=zhuanhuan(jilu[i]shumu);

shumu=shumu+shumu2;

}

else printf("输入有误\n");

printf("\n该时间段内总收支情况为:%2f\n",shumu);

printf("\n是否继续统计? <Y/N> ");

xuanze=getch();

printf("\n");

if(xuanze=='N' || xuanze=='n')

break;

}

}

/导入文件上的信息,相当于初始化/

int daoruxinxi()

{

FILE fp;

if((fp=fopen("shouzhiguanlitxt","r+"))==NULL)

{

printf("当前收支情况文件不存在\n");

if((fp=fopen("shouzhiguanlitxt","w+"))==NULL)

{

printf("未知错误导致未能建立新文件,按任意键结束程序\n");

getch();

exit(0);

}

else

{

fclose(fp);

printf("建立新文件成功,是否开始新建记录 <Y\\N>\n");

xuanze=getch();

if(xuanze=='Y' || xuanze=='y')

xinzeng(dijitiao);

}

}

else

{

for(dijitiao=0;(dijitiao<TIAOSHU && !feof(fp));dijitiao++)

{

fscanf(fp,"%s ",jilu[dijitiao]xingming);

fscanf(fp,"%s ",jilu[dijitiao]laiyuan);

fscanf(fp,"%s ",jilu[dijitiao]riqi);

fscanf(fp,"%s ",jilu[dijitiao]shumu);

}

fclose(fp);

return CHENGGONG;

}

return SHIBAI;

}

/主函数/

void main()

{

if(daoruxinxi()==CHENGGONG) /若导入成则开始主菜单/

{

int xunhuan=1; /用于控制循环/

while(xunhuan)

{

printf("\n\n\n \37~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\37\n"); /以下输出提示信息/

printf(" \23 导 入 收 支 情 况 成 功 \23\n");

printf(" \23~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\23\n");

printf(" \23 \1 1 增 加 新 记 录 \23\n");

printf(" \23 \1 2 删 除 已 有 记 录 \23\n");

printf(" \23 \1 3 修 改 已 有 记 录 \23\n");

printf(" \23 \1 4 查 询 已 有 记 录 \23\n");

printf(" \23 \1 5 统 计 一 段 时 间 内 的 数 据 \23\n");

printf(" \23 \1 6 退 出 该 系 统 \23\n");

printf(" \36~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\36\n\n");

printf("请选择要执行的 *** 作:");

xuanze=getch(); /选择 *** 作/

xuanze=xuanze-48; /前面接收的是1的ASC码实际上是49而不是1,转换一下/

switch(xuanze)

{

case ZENGJIA:xinzeng(dijitiao);break;

case SHANCHU:shanchu();break;

case XIUGAI:xiugai();break;

case CHAXUN:chaxun();break;

case TONGJI:tongji();break;

case TUICHU:xunhuan=0;break;

default:printf("输入错误\n");

}

}

}

baocun(); /保存更改/

}

我可以具体回答一下:

首先你对于分区的理解不清晰,个人建议在磁盘管理分出一个40G(其实这就很多了)的逻辑分区来安装ununtu,至于怎么分(扩展卷---删除卷----创建新卷)自己试下,很简单。然后重要的是你一定要把用来装Ubuntu的那个区给删除了,让它在磁盘管理中显示为绿色即可。

第二步:下载一个EASYBCD22用来创建引导程序。安装后 *** 作的具体 *** 作是:选中添加新条目-------选中右上方的NeoGrub栏--------点击下面的删除-------点击旁边的配置(这时会d出一个文档)把这些代码替换原来的代码

title Install Ubuntu

root (hd0,0)

kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-1210-desktop-i386iso ro quiet splash locale=zh_CNUTF-8

initrd (hd0,0)/initrdlzinitrd (hd0,0)/initrdlz

注意两点:1代码中的ubuntu-1210-desktop-i386iso是我下载的Ubuntu的ISO文件的名称,你要用你下载的Ubuntu的ISO文件的文件名来代替。

2代码中的(hd0,0)代表C盘是我硬盘中的第一个盘符,你在当时分区时如果第一个分出的也是C盘就用(hd0,0),如果是第二个盘符就全换为(hd0,1),以此类推。完事后保存一下就好了。你会发现C盘的根目录下多了一个NeoGrub的文件,说明 *** 作成功。

第三步:把你下载好的Ubuntu的ISO镜像文件包放在C盘的根目录同时把该包里的casper文件夹里的initrdlz和vmlinuz这两个文件也拷贝到C盘的根目录中,注意必须是C盘的根目录中!

第四步:重启电脑,选择第二个neogrub引导进入,然后选中Install ubuntu 就开始进行Ubuntu的安装了。

第五步:先按ctrl+alt+td出命令编译器,然后输入sudo umunt -l /isodevice命令后按回车键(注意这行命令之间是有空格的)。按alt+f4退出后点击桌面上的Ubuntu12-10安装包即可进行安装了。

第六步:安装时要拔出网线。安装时的步骤为:继续--继续--否--选汉语(英语也行如果你是英语达人)--选第三个自定义的安装方式。接下来就到了重要的分区环节了。我给出一个40G分区方案:双击40G左右大小的那个显示空闲的盘然后按照这个列表一个一个添加就可以了:

/BOOT 256M EXT3

/ 4000M EXT3

/交换空间 6000M

/VAR 4000M EXT3

/TMP 2000M EXT4

/USR 8000M EXT3

/OPT 6000M EXT3

剩下的空间全部分给/HOME 格式还是EXT3

下面的选项不用更改,然后点击安装。

接下来设置一下所在地,时区用户名,密码等等。。。。很简单,随意设置。。。

等待10分钟就安装好了。。。。。。

安好后先下载更新语言包和IBUS的键盘输入包,还有就是安装更新软件和驱动。注意在此之前设置软件源为163的或SOHU的(我试过,很快的),怎么设置上网查,很简单。

希望你能成功,很简单的。有什么问题再问我。

计算机可能试图使用错误的程序来打开UMU文件,或者可能没有安装可以打开该文件的程序。有几个不同的程序可以用来打开UMU文件,包括Binary,Data。尝试从制造商的网站下载一个或多个这些。或者用鼠标右键单击该文件,然后单击“属性”,查看“Kind”下的文件类型。

程序员(Programmer)是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、软件设计师、系统分析员、系统架构师、测试工程师六大类。世界上第一位程序员是埃达·洛夫莱斯。

考试介绍

软考程序员考试属于计算机软件水平考试(简称软考)中的一个初级计算机职称考试。对于软考程序员考试并无学历及资历条件限制,更无论年龄、专业与资历。一年可报考软考程序员考试两次,但一次考试只能报考一种资格,因此报考了程序员考试则无法再报考软考其他级别或科目的考试。同时软考程序员考试采用笔试形式,考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试方式。

通过国家统一组织的考试,资格考试分为:程序员级(原初级程序员)、软件设计师(原高级程序员)以及更高水准的:信息系统项目管理师、系统分析师(原系统分析员)、系统架构设计师、网络规划设计师、系统规划与管理师。

#include <conioh>

#include <stdioh>

#include <windowsh>

#include <stdlibh> 

#include <stringh>               

struct  PCB_type

   {  char pid[100];            //进程名输入用字符串健壮性比较好

      int priority;     

      int cputime;

   int state;

 };                     //缺少“};”

int shumu=0,pid_l;      

struct PCB_type neicun[20];

struct PCB_type hc[10];

int max=0;

int number=0;

void create();

void run();

void huanchu();

void kill();

int main()

{

    int n,a;

    n=1;

 system("color  1d");

    while(n==1)

    {

      system("cls");

   printf("\n");

   printf("\n               进程演示系统                 ");

   printf("\n");

   printf("\n     1创建新的进程             2查看运行进程");

   printf("\n     3换出某个进程             4杀死运行进程");                    //新增了一个唤醒功能 

   printf("\n     5退出系统                               ");

   printf("\n");

   printf("\n请选择(1~5):");

   scanf("%d",&a);

       switch(a)

      { case 1:

           create( ); 

    printf("\npress any key to go on~");

    getch();

         break;

        case 2 :

          run(); 

    printf("\npress any key to go on~");

    getch();

          break;

        case 3 :

       huanchu();

    printf("\npress any key to go on~");

    getch();

         break;

      case 4 :

        kill();

    printf("\npress any key to go on~");

    getch();

         break;

      case 5 :

       exit(0);

         default: 

    n=1;

       break;

    }

       }

}

void create()  

{

       if(shumu>=20)

          {

           printf("\n内存已满,请先结束或换出进程\n");

          }

          else

          {

     shumu++;

        printf("\n请输入新进程的程序名\n");

           scanf("%s",neicun[shumu-1]pid);

           printf("\n请输入新进程的优先级(数字)\n");//

           scanf("%d",&neicun[shumu-1]priority);

           printf("\n请输入新进程的需要的运行时间\n");//

           scanf("%d",&neicun[shumu-1]cputime);

     printf("\n创建进程时令其状态为就绪\n");             

     neicun[shumu-1]state=2;                               //1为等待,2就绪,3为运行 

 

       }

    printf("\n创建进程成功!\n");

}

void run()

{

 if(shumu<=0)//查看//判断是否存在进程 

 {

  printf("当前状态无进程,按任意键继续创建进程\n");

     return;

 }                                                 

 int max=0;

 for(int i=0;i<shumu;i++)//             

  if((neicun[i]state==2&&neicun[i]priority>=neicun[max]priority))

  {

   max=i;                                                     //这里判断优先级,优先级高的进程优先执行。 

  }

  if(neicun[max]state==2)

  {

   neicun[max]state=3;                                //进程运行,状态为3                                                            

   system("color  5F");

   printf("/当前已有进程%d个/:\n",shumu);

   for(int i=0;i<shumu;i++){

   printf("进程编号:%d",i+1);

   printf("\n/正在运行进程程序名:%s/\n",neicun[i]pid);

   printf("\n/该进程的优先级:%d/\n",neicun[i]priority);

   printf("\n/该进程的需要运行时间:%d/\n",neicun[i]cputime);

   printf("\n/该进程的状态:%d(1为等待,2就绪,3为运行)/\n\n\n",neicun[i]state);      }                 //这里增加显示当前运行的进程 

  }     

 

}

/            换出            /

void huanchu()

{

 int k;

 if(shumu<=0)//判断是否存在进程

 {

  printf("当前进程数目为0,不能执行该 *** 作\n");

     return;

 }                                             

 printf("当前已有进程%d个:\n",shumu);

 for(int h=0;h<shumu;h++)//当前所有的进程  

  printf("序号:%d\t程序名:%s\t优先级:%d\t运行时间:%d\t状态:%d\t\n"

  ,h,neicun[h]pid,neicun[h]priority,neicun[h]cputime,neicun[h]state);

 printf("请输入要换出程序的序号:");                                             

 scanf("%d",&k);

 if(neicun[k]state==3)

 {

  neicun[k]state=1;

  printf("已被换出,进程名为:%s、状态为:[%d]",neicun[k]pid,neicun[k]state);  

    }

 else

  printf("无法换出,进程名为:%s的进程",neicun[k]pid);    //换出结果提示

}

void kill()

{

 

 if(shumu<=0)//对存在的进程进行判断

 {

  printf("当前进程数目为0,不能执行该 *** 作\n");

     return;

 }                                                             

 int k=0;

 printf("/当前已有进程%d个/:\n",shumu);

 for(int h=0;h<shumu;h++)//当前所有的进程

  printf("序号:%d\t程序名:%s\t优先级:%d\t运行时间:%d\t状态:%d\t\n"

  ,h,neicun[h]pid,neicun[h]priority,neicun[h]cputime,neicun[h]state);

 printf("请输入要杀死程序的序号:");                                    

 scanf("%d",&k);

 neicun[k]cputime=0;

 neicun[k]priority=0;

 neicun[k]state=0;

    if(k==(shumu-1))

   shumu--;

 else{

  for(int j=k+1;j<shumu;j++)

    {

     strcmp(neicun[j-1]pid,neicun[j]pid);

     neicun[j-1]priority=neicun[j]priority;

     neicun[j-1]cputime=neicun[j]cputime;

     neicun[j-1]state=neicun[j]state;

  }

        shumu--;

 }

 printf("进程名为:%s已被杀死!\n",neicun[k]pid);                                //显示进程已被杀死 

 

}

以上就是关于单片机 用汇编语言编写三个字节数的相加的程序,要用堆栈保护,急!!!!!全部的内容,包括:单片机 用汇编语言编写三个字节数的相加的程序,要用堆栈保护,急!!!!!、C语言编写家庭收支管理程序、Ubuntu 12.04 在win7下的安装问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9682146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存