购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

只有一行的程序几乎完成不了什么任务,机器语言程序也是如此。对 CPU 有了大致印象之后,下面来看一下程序是如何按照指定的顺序(程序流程)来运行的。

图 1-4 展示了程序启动时内存中的内容。在 Windows 等操作系统 中,当用户发起启动某个程序的指示后,操作系统会将存储在硬盘中的程序复制到内存中。示例中的程序将 123 和 456 两个数值相加,并将结果输出到屏幕上。我们之前讲过,内存中会用地址来表示存放指令和数据的位置。如果将各个地址中存储的内容用机器语言表示的话,大家会看不懂,因此我们用文字来表示各个地址中存放的内容。实际上,一条指令或一个数据一般会存放在多个地址中,但为了方便起见,在图 1-4 中,我们假设一条指令或一个数据只对应一个地址。

图 1-4 存放在内存中的程序实例(显示加法运算结果)

地址 0100 是程序运行的起始位置。Windows 等操作系统在将程序从硬盘复制到内存后,就会将程序计数器这个寄存器的值设置为 0100。然后,程序开始运行。CPU 每执行一条指令,程序计数器的值就会自动加 1。例如,CPU 执行地址 0100 中的指令之后,程序计数器的值就变成了 0101(如果执行的指令占用多个内存地址,那么程序计数器的值也会根据指令的长度增加相应的值)。CPU 的控制器会根据程序计数器的值从内存中读取指令并执行。也就是说,程序计数器决定了程序的流程。 GRVWKldmkvYRldn6UjXDYMO3tWTi5h9M4tbBDDQIW+QwquwSro43HZ8jLSf7Lg9v

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开