查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 程序是怎样跑起来的 > 试读

程序是怎样跑起来的[试读]

1.1 CPU的内部结构解析

热身问题 阅读正文前,让我们先回答下面的问题来热热身吧。 问题 1. 程序是什么? 2. 程序是由什么组成的? 3. 什么是机器_语言? 4. 正在运行的程序存储在什么位置? 5. 什么是内存地址? 6. 计算机的构成元件中,负责程序的解释和运行的是哪个? 怎么样?... 查看全部[ 1.1 CPU的内部结构解析 ]

1.2 CPU是寄存器的集合体

CPU的四个构成部分中,程序员只需要了解寄存器即可,其余三个都不用太过关注。那么,为什么必须要了解寄存器呢?这是因为 程序是把寄存器作为对象来描述的 。 首先我们来看一下代码清单1-1。这是用汇编语言(assembly)①编写的程序的一部分。 汇编语言 采用助记符(memonic)来编写程序,每一... 查看全部[ 1.2 CPU是寄存器的集合体 ]

1.3 决定程序流程的程序计数器

只有1行的有用程序是很少见的,机器语言的程序也是如此。在对CPU有了一个大体印象后,接下来我们看一下程序是如何按照流程来运行的。 图1-4是程序起动时内存内容的模型。用户发出启动程序的指示后,Windows等操作系统①会把硬盘中保存的程序复制到内存中。示例中的程序实现的是将123和456两个数值相... 查看全部[ 1.3 决定程序流程的程序计数器 ]

1.4 条件分支和循环机制

程序的流程分为顺序执行、条件分支和循环三种。 顺序执行 是指按照地址内容的顺序执行指令。 条件分支_是指根据条件执行任意地址的指令。 循环_是指重复执行同一地址的指令。顺序执行的情况比较简单,每执行一个指令程序计数器的值就自动加1。但若程序中存在条件分支和循环,机器语言的指令就可以将程序计数器的值设... 查看全部[ 1.4 条件分支和循环机制 ]

1.5 函数的调用机制

接下来,我们继续介绍程序的流程。哪怕是高级语言编写的程序,函数A调用处理也是通过把程序计数器的值设定成函数的存储地址来实现的。不过,这和条件分支、循环的机制有所不同,因为单纯的跳转指令无法实现函数的调用。函数的调用需要在完成函数内部的处理后,处理流程再返回到函数调用点(函数调用指令的下一个地址)。因... 查看全部[ 1.5 函数的调用机制 ]

1.6 通过地址和索引实现数组

接下来我们看一下表1-1中出现的 基址寄存器_和 变址寄存器_。通过这两个寄存器,我们可以对主内存上特定的内存区域进行划分,从而实现类似于数组①的操作。 首先,我们用十六进制数②将计算机内存上00000000~FFFFFFFF的地址划分出来。那么,凡是该范围的内存区域,只要有一个32位的寄存器,... 查看全部[ 1.6 通过地址和索引实现数组 ]

1.7 CPU的处理其实很简单

可能有些读者不知道机器语言和汇编语言的指令到底有多少种,因而对CPU的运行没什么概念。为了消除大家心中的这个疑团,接下来我们就来看一下机器语言到底有哪些种类。表1-2按照功能对CPU能执行的机器语言指令进行了大体分类。这里没有列出指令的具体名称(汇编语言的助记符)。看完表后你会惊奇地发现,原来 CP... 查看全部[ 1.7 CPU的处理其实很简单 ]