計算機(jī)語言經(jīng)過不斷發(fā)展分為三個層次,高級語言、匯編語言和機(jī)器語言。
1、機(jī)器語言
我們?nèi)祟愒谟嬎銛?shù)字的時候習(xí)慣于用10進(jìn)制的表示方法,據(jù)說是因為人類有10根手指的關(guān)系。但是對計算機(jī)來說靠的是高低電平來表示所有的信息,在這個前提下要以10進(jìn)制的方式表示信息就比較復(fù)雜,最適合計算機(jī)的表示方式就是高電平代表1,低電平代表0,所有的信息都是以0和1的組合方式來表示,不管是簡單的加法還是微信還是游戲,本質(zhì)上就是0和1組成的指令進(jìn)行計算的結(jié)果。因此以0和1組成的指令是計算機(jī)最底層的語言,事實上計算機(jī)也僅能理解這種溝通方式,這種語言叫機(jī)器語言。
2、匯編語言
機(jī)器語言的問題在于人類要傳遞給計算機(jī)任何信息都必須以0和1的組合序列表達(dá),不符合人類的溝通習(xí)慣,因此有了助記符的概念并在這個基礎(chǔ)上產(chǎn)生了匯編語言,通俗來說我們需要將1+2這種信息表達(dá)為計算機(jī)可接受的0和1的組合,因為人類更能接受1+2這種表達(dá)方式,而計算機(jī)只能接受0和1的表達(dá)方式,匯編語言就是初步解決了人類和計算機(jī)的溝通難度,提高了溝通效率。
3、指令集的作用
以下以實際ARMv8指令集舉一個最簡單的加法例子來說明指令集的作用。
高級語言語句:1+2
匯編語言語句:ADD X9(存放1+2的結(jié)果),X10(存放1),X11(存放2)
在編譯成機(jī)器語言時,需要解決幾個問題:
(1) 怎么讓計算機(jī)明白ADD是什么意思
(2) 怎么讓計算機(jī)以0和1的組合序列表達(dá)1+2這個計算指令
先解決第一個問題,芯片廠商定義一串序列表示加法,根據(jù)ARMv8指令集,1112(十進(jìn)制)代表加法,進(jìn)一步表示為二進(jìn)制為10001011000(二進(jìn)制)。
解決第二個問題分為兩個步驟,通俗來說就是單詞和語法,單詞的翻譯結(jié)果為ADD=1112(十進(jìn)制)=10001011000(二進(jìn)制);X9寄存器=9(十進(jìn)制)=1001(二進(jìn)制);X10寄存器=10(十進(jìn)制)=1010(二進(jìn)制);X11寄存器=11(十進(jìn)制)=1011(二進(jìn)制)。之后是語法也就是按照什么順序讓計算機(jī)讀懂以及每個二進(jìn)制字段所占的位數(shù)。ARMv8指令集對于加法的指令格式如下:
這里忽略位移量這個參數(shù),按照指令格式將1+2填入此表:
最終根據(jù)ARMv8指令集,1+2的機(jī)器語言指令為10001011000010110000000101001001。
4、ARM封殺對華為的影響
目前采用發(fā)布于2011年的ARMv8指令集的公司有蘋果公司、高通、華為等,ARM本身是一家設(shè)計公司不生產(chǎn)芯片,采用不同等級的授權(quán)方式授權(quán)芯片制造廠根據(jù)其設(shè)計制造芯片,根據(jù)其授權(quán)生產(chǎn)的芯片就必須采用其指令集。根據(jù)以上例子,ARM架構(gòu)的芯片認(rèn)為操作碼1112代表加法,目前蘋果、高通、華為的芯片都認(rèn)為1112代表加法。封殺華為后,華為采用自己的芯片就有自己的指令集,在新的指令集下,1112未必代表加法并且同樣要表示1+2,指令結(jié)構(gòu)也就是語法也會不一樣。由于機(jī)器語言是最底層并且計算機(jī)唯一能讀懂的語言,指令集的改變就涉及所有的上層程序的重寫,重中之重就是操作系統(tǒng)。無法要求同一個操作系統(tǒng)適應(yīng)不同的指令集。所以相對技術(shù),芯片的市場占有率是指令集能否成為公認(rèn)標(biāo)準(zhǔn)的唯一指標(biāo),而ARM架構(gòu)的芯片在目前移動端的市場占有率接近壟斷。中國移動設(shè)備是一個巨大的市場,客觀分析,并不是ARM封殺華為后華為就會倒掉,只要市場足夠大,采用華為芯片和指令集的設(shè)備足夠多,華為芯片就會打破ARM壟斷的格局成為和ARM并列的芯片設(shè)計方,甚至如果芯片性能能夠超越ARM架構(gòu)的芯片的情況下,華為芯片將會在移動端市場與蘋果高通平分秋色。一切還是華為技術(shù)是否足夠強(qiáng)大,像其5G技術(shù)一樣位居世界前列并能讓市場接受和歡迎。
-
ARM
+關(guān)注
關(guān)注
134文章
9353瀏覽量
377768 -
計算機(jī)
+關(guān)注
關(guān)注
19文章
7667瀏覽量
90845 -
指令
+關(guān)注
關(guān)注
1文章
616瀏覽量
36501
發(fā)布評論請先 登錄
常用ARM指令集及匯編
ARM的指令集文章集合
arm指令集(1)
thumb指令集是什么_thumb指令集與arm指令集的區(qū)別

評論