1. 機器語言—由0和1組成的機器指令.也就是我們說的電信號。如:0101 0001 1101 0110
2.匯編語言(assembly language)—使用符號代替機器語言凿跳。便于記憶呜呐。如:mov ax,bx
而我們平常所用的C\C++\Java\OC\Swift,則是高級語言。
匯編語言與機器語言一一對應充边,每一條機器指令都匯編語言可以通過編譯得到機器語言
匯編語言可以直接訪問庸推、控制各種硬件設備,能夠不受編譯器的限制浇冰,對生成的二進制代碼進行完全的控制
匯編指令機器指令一一對應贬媒。不同CPU可能生成不同機器指令集\匯編指令集,所以匯編語言不具備可移植性
匯編語言的種類
8086匯編(8086處理器是16bit的CPU)
Win32匯編
Win64匯編
ARM匯編(嵌入式湖饱、Mac掖蛤、iOS)
......
我們iPhone里面用到的是ARM匯編,但是不同的設備也有差異.因CPU的架構不同.
架構 設備
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 iPhone6s , iphone6s plus,iPhone6, iPhone6 plus,iPhone5S ,iPad Air, iPad mini2
要想學好匯編,首先需要了解CPU(中央處理器)等硬件結構
硬件相關最為重要是CPU/內存
在匯編中,大部分指令都是和CPU與內存相關的
cpu主要包括運算器和高速緩沖存儲器(Cache)及實現(xiàn)它們之間聯(lián)系的數(shù)據(jù)(Data)井厌、控制及狀態(tài)的總線(Bus)蚓庭。
CPU通過總線跟外部器件進行交互
總線分類? 1》地址總線:它的寬度決定了CPU的尋址能力
? ? ? ? ? ? ? ? 2》數(shù)據(jù)總線:它的寬度決定了CPU的單次數(shù)據(jù)傳送速度
? ? ? ? ? ? ? ? 3》控制總線:它的寬度決定了CPU對其他器件的控制能力、能有多少種控制
幾種匯編類型的匯總
熟記以下幾個2的次方和換算倍率可以提高計算能力
做個小練習
1.一個CPU 的尋址能力為8KB,那么它的地址總線的寬度為
? ? 1KB = 2^10? 8KB= 1KB*8= 2^10*2^3?
所有一個CPU 的尋址能力為8KB,那么它的地址總線的寬度為10+3=13
2.從內存中讀取1024字節(jié)的數(shù)據(jù),8086數(shù)據(jù)總線寬度16根至少要讀____次,80386數(shù)據(jù)總線寬度32根至少要讀取____次.
8086: 每次讀16/8=2字節(jié)仅仆,1024字節(jié)至少要讀1024/2 = 512次
80386 :每次讀32/8=4字節(jié)器赞,1024字節(jié)至少要讀1024/4 = 256次