馮諾依曼體系結構:核心思想為儲存程式計算機。兩個層面:
(1)硬體的角度(計算機主機板):乙個cpu,一塊記憶體,之間有匯流排連線。cpu內部有乙個ip計算器,ip指向記憶體中的指令,並依次加一執行;
(2)另乙個層面,程式設計師的角度:儲存程式計算機工作模型(如下圖)
api:應用程式程式設計介面(程式設計師與計算機的介面介面)
abi:二進位制介面,指令編碼(程式設計師與cpu的介面介面)
(1)通用暫存器
堆疊基指標和堆疊頂指標較為重要。
(2)段暫存器:
其中**段和堆疊段用的較多。cpu在實際取指令時根據cs:eip來準確定位乙個指令。
(3)標誌暫存器
標誌暫存器可以標識當前的一些狀態。
(1)movl指令:
注意:at&t彙編格式與intel彙編格式略有不同,linux核心使用的是at&t彙編格式。
(2)其他指令
堆疊是向下增長的,有乙個基址ebp指向堆疊棧底
注意:*是指這些指令是偽指令,程式設計師不能直接修改這些,即eip暫存器不能被直接修改,只能通過特殊指令間接修改。
1.函式呼叫堆疊是由邏輯上多個堆疊疊加起來的
2.函式的返回值預設使用eax暫存器儲存返回給上一級函式
3.使用命令編譯成彙編**:gcc –s –o main.s main.c -m32
堆疊變化:
簡單c程式:
彙編**:
分析彙編**的工作過程中堆疊的變化:
首先開始入棧,從main函式開始,按照下圖畫出流程進行執行:
由於上學期進行過初步的linux學習,所以這周內容並不困難。老師講了一些基本的概念,然後通過乙個完整的簡單c程式的彙編**例項講解,讓我們更加清楚計算機中指令執行時堆疊的變化,這也有助於我們理解計算機到底是如何工作的。我覺得計算機是非常精細的,但通過這周課程的學習,簡單來說在它工作過程中,按照馮諾依曼原理的話就是儲存和程式。指令序列就為程式,這些指令和資料等預先儲存在記憶體中,工作時,cpu從記憶體中取出指令,從儲存器中取出資料進行指定的運算和邏輯操作等加工,再按位址把結果送到記憶體中去。再取出下一條指令完成相應操作,直至完成停止。現在我還只能理解一些小的簡單的程式,對於更加複雜更加實用的東西還需要進一步學習。老師講解的方式和內容都很好,我相信這應該會是一次很棒的學習體驗過程。
計算機導論課後總結第一周
注 將從第一節課和大體巨集觀概念上對於計算機進行總結,因通知時間過晚,難以查閱足夠多的資料,希望諒解 1 資訊的定義 i 資訊是認知主體對物質運動的本質特徵 運動方式 運動狀態以及運動的有序性的反映和揭示,是事物之間相互聯絡 相互作用的狀態的描述。通俗地講,資訊泛指包含於訊息 情報 指令 資料 影象...
計算機視覺第一周作業
視覺系統都有哪些構成要素?以機械臂視覺控制系統為例,說明視覺系統的構成要素。光源 自然光或專用照明裝置 相機 單相機,置於機械臂前端 主機 台式計算機或嵌入式處理器 演算法軟體 使用python或其他語言編寫的視覺識別演算法及程式 嘗試從模仿人類視覺處理流程的角度,闡述本對課程內容組織的理解。進一步...
第一周學習總結
第一周,我們有學習,計算機的發展,起源,計算機的各種進化,還有計算機的概念,計算機的語言,計算機的組成這些等等。讓我深刻的意識到這是很龐大的一門課程,同時也對我們接下來要學習的課程充滿了期待。對於我自己來說,第一周的學習我還是覺得挺不錯的,挺開心的,能認識到這麼多的朋友,這麼多的知識,讓我對計算機有...