匯編初體驗

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)及實現它們之間聯系的數據(Data)、控制及狀態的總線(Bus)。

CPU通過總線跟外部器件進行交互

總線分類? 1》地址總線:它的寬度決定了CPU的尋址能力

? ? ? ? ? ? ? ? 2》數據總線:它的寬度決定了CPU的單次數據傳送速度

? ? ? ? ? ? ? ? 3》控制總線:它的寬度決定了CPU對其他器件的控制能力、能有多少種控制

幾種匯編類型的匯總

熟記以下幾個2的次方和換算倍率可以提高計算能力



做個小練習

1.一個CPU 的尋址能力為8KB,那么它的地址總線的寬度為

? ? 1KB = 2^10? 8KB= 1KB*8= 2^10*2^3?

所有一個CPU 的尋址能力為8KB,那么它的地址總線的寬度為10+3=13

2.從內存中讀取1024字節的數據,8086數據總線寬度16根至少要讀____次,80386數據總線寬度32根至少要讀取____次.

8086: 每次讀16/8=2字節,1024字節至少要讀1024/2 = 512次

80386 :每次讀32/8=4字節,1024字節至少要讀1024/4 = 256次

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 8086匯編 本筆記是筆者觀看小甲魚老師(魚C論壇)《零基礎入門學習匯編語言》系列視頻的筆記,在此感謝他和像他一樣...
    Gibbs基閱讀 37,422評論 8 114
  • 越底層越單純!真正的程序員都需要了解的一門非常重要的語言,匯編! 機器語言 我們所寫的語言最終安裝在機器上的是什么...
    瑞陽gg閱讀 623評論 0 0
  • 匯編總結 匯編的發展史 機械語言 由0和1組成的機器指令(如:0101 0001 1101 0110) 匯編語言(...
    iChuck閱讀 1,337評論 1 8
  • 機器語言:由0和1組成的機器指令 高級語言:更接近人類的語言如 oc,swift,c... 一條匯編指令和一條機器...
    領悟12138閱讀 480評論 0 0
  • 堅持最久的一件事,腦海中不斷搜索,能想到的是大二那一年,每天下午堅持跑步。 跑步的初衷在于減肥,每天下午五點左右,...
    愛與樂ayl閱讀 227評論 0 0