一 高階語言執行過程
二 組合語言的特點
-
可以直接訪問、控制各種硬體裝置,比如儲存器、CPU等,能最大限度地發揮硬體的功能
-
能夠不受編譯器的限制,對生成的二進位制程式碼進行完全的控制
-
目的碼簡短,佔用記憶體少,執行速度快
-
彙編指令是機器指令的助記符,同機器指令一一對應。每一種CPU都有自己的機器指令集\彙編指令集,所以組合語言不具備可移植性
-
知識點過多,開發者需要對CPU等硬體結構有所瞭解,不易於編寫、除錯、維護
-
不區分大小寫,比如mov和MOV是一樣的
三 iPhone裡面用到的是ARM彙編
架構 | 裝置 |
---|---|
armv6 | iPhone, iPhone2, iPhone3G, 第一代、第二代 iPod Touch |
armv7 | iPhone3GS, iPhone4, iPhone4S,iPad, iPad2, iPad3(The New iPad), iPad mini, iPod Touch 3G, iPod Touch4 |
armv7s | iPhone5, iPhone5C, iPad4(iPad with Retina Display) |
arm64 | iPhone5S 以後 iPhoneX , iPad Air, iPad mini2以後 |
四 APP/程式的執行過程
- 讀寫速度: 暫存器 > 快取記憶體 > 記憶體 > 磁碟
- A11快取記憶體有8m。APP程式碼在磁碟上,啟動的時候,把程式碼讀到記憶體;即將執行的程式碼放到快取記憶體,快取記憶體與記憶體一一對映,暫存器先去快取記憶體找,找到對映關係後去尋找相應的記憶體,沒有找到去記憶體找,並儲存到快取記憶體中。 ###五 CPU通過匯流排跟外部器件進行互動
- 每一個CPU晶片都有許多管腳,這些管腳和匯流排相連,CPU通過匯流排跟外部器件進行互動
- 匯流排:一根根導線的集合
- 匯流排的分類
- 地址匯流排
- 資料匯流排
- 控制匯流排
1. 比如cpu讀取記憶體3的資料
cpu根據地址匯流排找到記憶體3,然後用控制匯流排控制資料匯流排讀寫3的資料
2. 地址匯流排的寬度決定了CPU的_定址能力
比如8086的地址匯流排寬度是_20_,因為只有0和1兩種狀態,所以定址能力是_1M_( 2^20 )
3. 資料匯流排的寬度決定了CPU的單次資料傳送量,也就是資料_傳送速度_
比如8086的資料匯流排寬度是_16_,所以單次最大傳遞_2個位元組_的資料(因為一個位元組等於8位)
4. 控制匯流排的寬度決定了CPU對其他器件的_控制能力_、能有多少種控制
六 計算機中常見的資料寬度
- 位(Bit): 1個位就是1個二進位制位.0或者1
- 位元組(Byte): 1個位元組由8個Bit組成(8位).記憶體中的最小單元Byte.
- 字(Word): 1個字由2個位元組組成(16位),這2個位元組分別稱為高位元組和低位元組.
- 雙字(Doubleword): 1個雙字由兩個字組成(32位)
1. 有符號數幫組記憶
無符號數,直接換算!
有符號數:
正數: 0 1 2 3 4 5 6 7
負數: F E D B C A 9 8
-1 -2 -3 -4 -5 -6 -7 -8
複製程式碼
2. 八進位制加法表
0 1 2 3 4 5 6 7
10 11 12 13 14 15 16 17
20 21 22 23 24 25 26 27
...
1+1 = 2
1+2 = 3 2+2 = 4
1+3 = 4 2+3 = 5 3+3 = 6
1+4 = 5 2+4 = 6 3+4 = 7 4+4 = 10
1+5 = 6 2+5 = 7 3+5 = 10 4+5 = 11 5+5 = 12
1+6 = 7 2+6 = 10 3+6 = 11 4+6 = 12 5+6 = 13 6+6 = 14
1+7 = 10 2+7 = 11 3+7 = 12 4+7 = 13 5+7 = 14 6+7 = 15 7+7 = 16
複製程式碼
3. 八進位制乘法表
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27...
1*1 = 1
1*2 = 2 2*2 = 4
1*3 = 3 2*3 = 6 3*3 = 11
1*4 = 4 2*4 = 10 3*4 = 14 4*4 = 20
1*5 = 5 2*5 = 12 3*5 = 17 4*5 = 24 5*5 = 31
1*6 = 6 2*6 = 14 3*6 = 22 4*6 = 30 5*6 = 36 6*6 = 44
1*7 = 7 2*7 = 16 3*7 = 25 4*7 = 34 5*7 = 43 6*7 = 52 7*7 = 61
複製程式碼
七 CPU的組成
- 對程式設計師來說,CPU中最主要部件是暫存器,可以通過改變暫存器的內容來實現對CPU的控制
- 不同的CPU,暫存器的個數、結構是不相同的