官术网_书友最值得收藏!

只有一行的程序幾乎完成不了什么任務,機器語言程序也是如此。對CPU有了大致印象之后,下面來看一下程序是如何按照指定的順序(程序流程)來運行的。

圖1-4展示了程序啟動時內存中的內容。在Windows等操作系統操作系統(operating system)是負責計算機基本操作的軟件。關于操作系統的功能,第9章中會詳細介紹。中,當用戶發起啟動某個程序的指示后,操作系統會將存儲在硬盤中的程序復制到內存中。示例中的程序將123和456兩個數值相加,并將結果輸出到屏幕上。我們之前講過,內存中會用地址來表示存放指令和數據的位置。如果將各個地址中存儲的內容用機器語言表示的話,大家會看不懂,因此我們用文字來表示各個地址中存放的內容。實際上,一條指令或一個數據一般會存放在多個地址中,但為了方便起見,在圖1-4中,我們假設一條指令或一個數據只對應一個地址。

圖1-4 存放在內存中的程序實例(顯示加法運算結果)

地址0100是程序運行的起始位置。Windows等操作系統在將程序從硬盤復制到內存后,就會將程序計數器這個寄存器的值設置為0100。然后,程序開始運行。CPU每執行一條指令,程序計數器的值就會自動加1。例如,CPU執行地址0100中的指令之后,程序計數器的值就變成了0101(如果執行的指令占用多個內存地址,那么程序計數器的值也會根據指令的長度增加相應的值)。CPU的控制器會根據程序計數器的值從內存中讀取指令并執行。也就是說,程序計數器決定了程序的流程。

主站蜘蛛池模板: 汪清县| 沂源县| 和平县| 房产| 阿图什市| 厦门市| 科技| 福清市| 西藏| 漯河市| 民县| 彭山县| 读书| 苏尼特右旗| 工布江达县| 中方县| 苍南县| 新津县| 青河县| 阜城县| 乌拉特中旗| 安顺市| 南汇区| 横山县| 大厂| 林州市| 玉山县| 三门县| 滁州市| 上栗县| 定陶县| 芜湖县| 西乌珠穆沁旗| 大冶市| 黄龙县| 始兴县| 密云县| 中宁县| 郑州市| 清苑县| 金阳县|