學(xué)習(xí)匯編 -- 匯編基礎(chǔ)

###機(jī)器語言
計(jì)算機(jī)語言大致分三類:計(jì)算機(jī)語言、匯編語言、高級(jí)語言。

  • 計(jì)算機(jī)語言:由0和1組成的機(jī)器指令
  • 匯編語言:使用符號(hào)代替機(jī)器語言,也稱為符號(hào)語言
  • 高級(jí)語言:更加接近人類自然語言,如c/c++/Java/OC/Swift

三者的編譯關(guān)系

image.png
  • 高級(jí)語言通過編譯器得到匯編語言/機(jī)器語言
  • 同一種高級(jí)語言用不同的編譯器可能得到不同的匯編語言,不同的高級(jí)語言也有可能得到相同的匯編語言,所以匯編語言很難反編譯成高級(jí)語言
  • 匯編語言與機(jī)器語言一一對(duì)應(yīng),每一條機(jī)器指令都有與之對(duì)應(yīng)的匯編指令
  • 由于匯編語言與機(jī)器語言一一對(duì)應(yīng)的關(guān)系,機(jī)器語言可以反匯編成匯編語言

匯編語言的特點(diǎn)

  • 可以直接操作硬件設(shè)備,如儲(chǔ)存器,CPU
  • 目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快
  • 匯編指令是機(jī)器指令的助記符,同機(jī)器指令一一對(duì)應(yīng)。每一種CPU都有自己的機(jī)器指令集\匯編指令集,所以匯編語言不具備可移植性

匯編語言的使用

  • 工具開發(fā):可以實(shí)現(xiàn)AOT/JIT編譯、native調(diào)試器、內(nèi)存/性能剖析工具等。
  • 性能優(yōu)化:有些特定場(chǎng)景,需要通過匯編調(diào)用CPU的專用硬件指令進(jìn)行優(yōu)化
  • 分析問題:?jiǎn)尾礁櫮承﹩栴}的時(shí)候,需要能夠看懂一些匯編語句來分析程序真正執(zhí)行的流程

匯編語言的種類

  • 目前討論比較多的匯編語言有

    • 8086 匯編
    • Win32匯編
    • Win64匯編
    • ARM匯編
  • iPhone用到的匯編是ARM匯編

架構(gòu) 設(shè)備
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

字和字節(jié)

 *   字:一個(gè)字由兩個(gè)字節(jié)組成,分為高字節(jié)和低字節(jié)
 *   字節(jié):byte,一個(gè)字節(jié)由8bit組成
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容