程序是怎样跑起来的1.3 决定程序流程的程序计数器_程序是怎样跑起来的1.3 决定程序流程的程序计数器试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 程序是怎样跑起来的 > 1.3 决定程序流程的程序计数器

程序是怎样跑起来的——1.3 决定程序流程的程序计数器

只有1行的有用程序是很少见的,机器语言的程序也是如此。在对CPU有了一个大体印象后,接下来我们看一下程序是如何按照流程来运行的。 图1-4是程序起动时内存内容的模型。用户发出启动程序的指示后,Windows等操作系统①会把硬盘中保存的程序复制到内存中。示例中的程序实现的是将123和456两个数值相加,并将结果输出到显示器上。正如前文所介绍的那样,存储指令和数据的内存,是通过地址来划分的。由于使用机器语言难以清晰地表明各地址存储的内容,因此这里我们对各地址的存储内容添加了注释。实际上,一个命令和数据通常被存储在多个地址上,但为了便于说明,图1-4中把指令、数据分配到了一个地址中。 ① 操作系统(operating system)是指管理和控制计算机硬件与软件资源的计算机程序。关于操作系统的功能,第9章有详细说明。 地址0100是程序运行的开始位置。Windows等操作系统把程序从硬盘复制到内存后,会将程序计数器(CPU寄存器的一种)设定为0100,然后程序便开始运行。CPU每执行一个指令,程序计数器的值就会自动加1。例如,CPU执行0100地址的指令后,程序计数器的值就变成了0101(当执行的指令占据多个内存地址时,增加与指令长度相应的数值)。然后,CPU的控制器就会参照程序计数器的数值,从内存中读取命令并执行。也就是说,程序计数器决定着程序的流程。 图1-4 内存中配置的程序示例(显示相加的结果)

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《程序是怎样跑起来的》其他试读目录

• 1.1 CPU的内部结构解析
• 1.2 CPU是寄存器的集合体
• 1.3 决定程序流程的程序计数器 [当前]
• 1.4 条件分支和循环机制
• 1.5 函数的调用机制
• 1.6 通过地址和索引实现数组
• 1.7 CPU的处理其实很简单