计算机程序的执行过程是怎样的?

计算机程序的执行过程是怎样的?,第1张

执行程序的过程:

开始执行程序时,必须先给迟塌程序计数器PC赋以第一条指令的首地址00H,然后就进入第一条指令的取令的取指令阶段。

第一条指令的执行过蚂埋程:

取指令阶段:

①将程序计数器PC的内容(00H)送至地址寄存器AR,记为PCAR。

②程序计数器PC的内容自动加1变为01H,为取下一个指令字节作准备,记码物圆为PC+1PC。

③地址寄存器AR将00H通过地址总线送至存储器,经地址译码器译码,选中00号单元,记为ARM。

④CPU发出"读"命令。

⑤所选中的00号单元的内容B0H读至数据总线DB,记为(00H)DB。

⑥经数据总线DB,将读出的B0H送至数据寄存器,记为DBDR。

⑦数据寄存器DR将其内容送至指令寄存器IR,经过译码,控制逻辑发出招待该条指令的一系列控制信号,记为DRIR,IRID、PLA。经过译码,CPU"识别"出这个 *** 作码就是MOVA,03指令,于是,它"通知"控制器发出执行这条指令的各种控制命令。

进程。

进程进程就是程序的一次执行过程,程序是静态的,它作为系统中的一种资源是永远存在的。从文理上剖析程序的意思。文理上讲,程序的含义是指事物发展的既有次序和脉络以及方式、方法碰乱租。

[释义](名)事情进行的先后,指“会议”等庄重场合的安排。[例句]制定程序。(作宾语)程序是这样安排的。程序是指示计算机每一步动作的指令,也是一个可执行文件是笑兆不是有点纳闷,其实啊,这个程序譬如全运会、音乐会的程序等,指的是“行事的先后次序。进程是执行程序的一次执行过程,他是一个动态的概念,是系统资源分配的单位陪贺3、线程一个进程中可以包含若干个线程,线程是cpu调度和执行的单位。

/*收集并存储信息*/

从while循环开始讲吧, 程序要你输入一个电影名, 当gets()函数返回值不为NULL并且输入的字符串的首元素不为空字符时,进入循环体

接着用malloc()函数分配film结构空间,并让结构指针current指向它

首次循环时head = NULL, 所以头指针指向了current, 接着让current->next的虚渗值为NULL, 表示暂无下一部影片

然后调用strcpy()函数将input字符串即电影名复制到结构成员current->title中

接着让你输入影片评分,将值放进current->rating中

第二个while循环清空输入行

程序提示输入下一部影片, 然后让结构指针prev指向current

第一次循环结束,head和prev都指向current

当输入的第二个电影名符合while()循环条件,程序继续执行循环体

这里不同的是分支语句, 这次head的值不再是NULL,所以让成员prev->next(这个握并值前面已经设置为NULL)指向了新分配的内存

/*给出电影列表*/

如果执行到head仍为NULL,则无电影输入

否则将打印输入的电影列表

让结构指针current指向头指针head

当while循环判断current != NULL, 即current不等于空指针时,从头指针开始打印信息, 然后让current->next赋值给current,让current指向下一个结构, 继续打印电影信息

/*任务已完成, 因此释放所分配的内存*/

原代码为:

current = head

while (current != NUll)

{

    free(current)

    current = current -> next

}

是错误的

因为当free了current的空间时,将不能再把current->next赋给current, 它们所处的内存已被释放

正确代码为:

current = head

while(current != NUll)

{

    prev = current->next

  差皮脊  free(current)

    current = prev

}

有不懂的可以继续追问


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

原文地址: https://outofmemory.cn/yw/12555676.html

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

发表评论

登录后才能评论

评论列表(0条)

保存