程式執行的過程:
比如我們要執行3 + 2
程式計數器(pc) = 指令位址
指令暫存器(ir) = 正在執行的命令
累加器(ac) = 臨時儲存體
那麼實際上執行了三條指令
每條指令又分為兩部分:取址、執行
取址就是從暫存器裡取一條指令放在ir暫存器
左上角的圖,pc暫存器裡面放的值是300
那麼我們就從記憶體位址為300的位上取一條指令 1940的內容放到ir上去
一條指令 由操作碼+運算元組成
1940 中的 1代表操作碼,940代表運算元
1是從乙個記憶體中取資料放入ac暫存器裡面,即我要做什麼操作
把940記憶體位址裡面的資料0003放入ac暫存器
先取址,pc=300 執行時pc=301
pc會加1
歡迎交流
知乎:
程式執行的過程分析 sky原創
程式執行的過程 比如我們要執行3 2 程式計數器 pc 指令位址 指令暫存器 ir 正在執行的命令 累加器 ac 臨時儲存體 那麼實際上執行了三條指令 每條指令又分為兩部分 取址 執行 取址就是從暫存器裡取一條指令放在ir暫存器 左上角的圖,pc暫存器裡面放的值是300 那麼我們就從記憶體位址為30...
電腦程式的執行過程分析
linux核心分析 課程第一次作業 程式的正確執行靠堆疊來維持,堆疊是一塊儲存資料的連續記憶體。乙個名為堆疊指標 esp 的暫存器指向堆疊的頂部,乙個名為堆疊指標 ebp 的暫存器指向堆疊的底部。堆疊的底部在乙個固定的位址。堆疊的大小在執行時由核心動態地調整。cpu實現指令push和pop,向堆疊中...
程式執行的記憶體分析過程
1.將show方法存入方法區,構造person方法,初始化變數name age,構造方法移出棧 2.給main方法建立乙個棧,給name,age分別賦值,呼叫show方法,此時將物件的位址0x10傳遞給p1,p1.show 棧被移出 3.再次構造person方法,初始化變數name age,構造方法...