編程是什麼——彙編語言的出現

2020-12-14 科技貓cat

第一代程式語言:機器語言

計算機的硬體作為一種電路元件,它的輸出和輸入只能是有電或者沒電,也就是所說的高電平和低電平,所以計算機傳遞的數據是由「0」 和「1」組成的二進位數,所以說二進位的語言是計算機語言的本質。

計算機發明之初,人們為了去控制計算機完成自己的任務或者項目,只能去編寫「0」、「 1」這樣的二進位數字串去控制電腦,其實就是控制計算機硬體的高低電平或通路開路,這種語言就是機器語言。

直觀上看,機器語言十分晦澀難懂,其中的含義往往要通過查表或者手冊才能理解, 使用的時候非常痛苦,尤其當你需要修改已經完成的程序時,這種看起來無序的機器語言會讓你無從下手,也很難找到程序的錯誤。

某計算機的機器語言代碼表

而且,不同計算機的運行環境不同,指令方式操作方式也不盡相同,所以當你在這種機器語言就有了特定性,只能在特定的計算機上執行,而一旦換了機器就需要重新編程,這極大的降低了程序的使用和推廣效率。但由於機器語言具有特定性,完美適配特定型號的計算機,所以運行效率遠遠高過其他語言。

第二代程式語言:彙編語言

彙編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。

彙編語言版的hello word!

彙編程序的雛型是在上期提到的電子離散時序自動計算機 EDSAC上出現的。它由單字母指令碼﹑十進位地址和終結字母組成。

第一個彙編程序,是符號優化彙編程序(SOAP)系統﹐它是50年代中期為IBM650計算機研製的。這種計算機用磁鼓作存儲器﹐每條指令指出了後繼指令在磁鼓中的位置。當初研製SOAP系統的動機不是引入彙編語言的符號化特色﹐而是為了集中解決指令在磁鼓中合理分布的問題﹐以提高程序的運行效率。

IBM704計算機的符號彙編程序(SAP)是彙編程序發展中的一個重要裡程碑。此後的彙編程序大都以這一系統為模型﹐其主要特徵至今未發生本質的變化。

在彙編語言中,用助記符代替機器指令1和0 的操作碼,用地址符號或標號代替指令或操作數的地址。於是彙編語言比機器語言更加容易書寫和記憶。

但是,人能讀懂彙編語言了,但是計算機是看不懂彙編語言了,由於計算機的底層是二進位的,所以它只能讀懂1和0組成的機器語言,那麼我們需要將彙編語言翻譯成機器語言,讓計算機能讀懂我們的指令。

但是將彙編語言翻譯成機器語言這件事,並不是好幹的活,上面我們提到了,機器語言並不是一個容易學會的語言,於是計算機工程師靈機一動,我們發明一個機器,讓它自動地幫我們將彙編語言翻譯成機器語言,這不就行了!

然後這臺機器就叫做彙編語言編譯器,這臺機器它是精通機器語言,但是對人類的語言一知半解,只能識別嚴格按照彙編語言格式寫的編程,錯一點點都不行,於是人類編程史上,第一個error出現了。

PS:error又叫報錯,是編程完畢後進行編譯時,由於程序的某些問題導致編譯器無法成功編譯,這時就會進行報錯,大部分編程初學者都對error都咬牙切齒,因為寫一個編程只花幾分鐘,找錯誤可能需要幾小時。

比起機器語言,彙編語言具有更高的機器相關性,更加便於記憶和書寫,但又同時保留了機器語言高速度和高效率的特點。

彙編語言還是面向機器的語言,很難從其代碼上理解程序設計意圖,設計出來的程序需要繼續修改才能夠移植到其他平臺,雖然有著明顯的確定,但是彙編語言還是比機器語言好用多了。

直到現在,高級語言高度發展的今天,它通常還能被用在底層,是程序優化或硬體操作的場合。

相關焦點

  • 單片機編程用C語言還是彙編?
    單片機是一種可編程器件,單片機的出現使硬體設計變得更為簡單,產品的功能也更強大,而程序就是單片機的靈魂。目前功能稍微複雜一點的電子產品,都是以單片機為核心,再加以不通的外設電路實現不通的功能需求。單片機的編程可以通過彙編語言和C語言來實現。
  • 7月程式語言排行 彙編語言再進前10
    TIOBE更新了2016年7月的程式語言排行,本月的最大亮點就是面向底層的彙編語言再次衝進排行榜前10。相對於其它高級語言來講,彙編語言能取得如此成績唯一合理的解釋就是日益增長的眾多小型設備,因其只能運行彙編語言。
  • 單片機程序C語言與彙編語言混合編程
    與彙編語言混合編程本文引用地址:http://www.eepw.com.cn/article/201611/322505.htm1.C語言函數和彙編語言函數相互調用在這個示例中C語言函數main()調用彙編語言函數get_rand()以得到一個隨機數;彙編語言函數get_rand()首先調用C語言的標準庫函數rand()得到一個整型隨機值,然後用調用C語言函數mult()的方法把這個隨機值乘以main()函數傳遞給自己的實參,並把乘積值返回給
  • C語言與彙編語言混合編程應遵守的規則
    ARM編程中使用的C語言是標準C語言,ARM的開發環境實際上就是嵌入了一個C語言的集成開發環境,只不過這個開發環境與ARM的硬體緊密相關。
  • 自學編程第1節:程式語言有哪些,什麼關係?彙編C/C++,JAVA簡介
    首先,謝謝大家點擊閱讀獵奇哥的編程系列教程,後期慢慢補充,詳細介紹C語言,C++語言編程的方方面面,儘量幫助大家能夠儘量簡單的學會C++編程核心入門知識。總章節數待定,視內容的更新情況。說起編程,最早的是彙編語言,這種語言大家通常叫做低級語言,做一個程序,需要非常多的指令和代碼,完成的卻是一個非常簡單的功能,程式設計師的工作量非常大,當然,那個時期,電腦的功能也沒有現在的這麼強大,彙編對於當時來說,也是夠用。
  • stm32用什麼語言編程
    打開APP stm32用什麼語言編程 發表於 2017-10-10 16:50:53   程式語言(programming language
  • 機器人世界,彙編、C和Python,先學哪一種程式語言合適
    適應機器人時代,又適合我們一些初學者的程式語言,可用Python,但未必就是Python。所以這裡我們舉出三種語言:彙編語言、C語言和Python語言,當然現實中不止這三種,之所以拿這三種語言來解釋,是因為它們比較有代表性。關於彙編語言等程式語言的學習,這也是一人客回復別人問題的回答。
  • 編程是什麼——高級程式語言FORTRAN的問世
    而程式語言經歷了機器語言到彙編語言的更新之後,人們發現了限制程序推廣的關鍵因素——程序的可移植性。需要設計一個能夠不依賴於計算機硬體,能夠在不同機器上運行的程序。由於高級程式語言更加符合我們的語言邏輯,所以它比彙編語言更加容易學習,而且它是一門面對對象的語言,編寫的時候可以忽略硬體的操作,所以使用的時候不需要考慮硬體,這會讓編程的門檻降低到了,只要有基本的邏輯思想的人,都能學會高級程式語言。
  • C語言和彙編語言是什麼?他們之間可以有怎樣的合作?為你解析
    C語言:C語言是一門通用計算機程式語言,應用廣泛。什麼是彙編語言:彙編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。許多彙編程序為程序開發、彙編控制、輔助調試提供了額外的支持機制。有的彙編語言編程工具經常會提供宏,它們也被稱為宏彙編器。彙編語言不像其他大多數的程序設計語言一樣被廣泛用於程序設計。在今天的實際應用中,它通常被應用在底層,硬體操作和高要求的程序優化的場合。
  • 小速學編程:什麼是程式語言
    「那這種形式的程式語言就被稱之為彙編語言。英文名稱是Assembly Language,它含有把一堆零件組裝成一體的意思,是不是挺形象的?」是說這種程式語言,比機器語言和彙編語言更厲害的意思嗎?」 陳小速充滿了好奇。「這倒不是,」 吳進笑了起來,「高級這個詞其實我覺得並不完全準確,可能用高層會更合適。這裡對程式語言的劃分,其實依據的是它距離CPU的遠近。」 吳進開始了細緻的講解。
  • 彙編語言真的沒必要學了嗎!
    彙編語言可以說是所有語言的鼻祖,除了直接操作計算機的0/1之外,彙編語言是最接近於機器底層的語言了。現如今出現了各種各樣的高級語言,如Python、Java、C#等等,使得程式設計師編程的效率得到質的飛躍,也正是因為有了更得力的程式語言作為程式設計師開發程序的新工具,越來越多的人覺得彙編語言已經無用,沒有學習的價值了。對此你又是怎麼認為的,歡迎將您獨到的見解在留言區留言。
  • ARM中ADS環境下C語言和彙編語言混合編程及示例
    另外在一些對性能非常敏感的代碼塊,基於彙編與機器碼一一對應的關係,這時不能依靠C編譯器的生成代碼,而要手工編寫彙編,從而達到優化的目的。彙編語言是和CPU的指令集緊密相連的,作為涉及底層的嵌入式系統開發,熟練對應彙編語言的使用也是必須的。這裡主要討論C和彙編的混合編程,包括相互之間的函數調用。下面分四種情況來進行討論,不涉及C++語言。
  • 計算機彙編語言
    彙編語言雖然用機器語言編寫程序有很高的要求和許多不便,但編寫出來的程序執 行效率高,CPU嚴格按照程式設計師的要求去做,沒有多餘的額外操作。所以, 在保留「程序執行效率高」的前提下,人們就開始著手研究一種能大大改善 程序可讀性的編程方法。 為了改善機器指令的可讀性,選用了一些能反映機器指令功能的單詞或詞 組來代表該機器指令,而不再關心機器指令的具體二進位編碼。
  • 第8p,什麼是程式語言?學習什麼程式語言更好?
    大家好,我是楊數Tos,這是《從零基礎到大神》系列課程的第8篇文章,第二階段的課程:Python基礎知識之程式語言介紹學習本課程,建議先學習:【計算機基礎知識】課程一、什麼是程式語言什麼是程式語言?先把這個詞拆分為:編程、語言。
  • 彙編語言基礎
    通過前面的學習,我們對單片機的硬體結構已有了一定的了解,下面,我們將與大家一起來學習單片機的彙編指令系統。所謂指令,就是規定計算機進行某種操作的命令。計算機按程序一條一條地依次執行指令,從而完成指定任務。
  • 世界程式語言排行榜
    請注意這個排行榜只是反映某個程式語言的熱門程度,並不能說明一門程式語言好不好,或者一門語言所編寫的代碼數量多少。本文引用地址:http://www.eepw.com.cn/article/269656.htm  該指數可以用來檢查你的編程技能是否仍然是最新的或作出什麼開始建立一個新的軟體系統時,程式語言應採取的戰略決策。在 TIOBE 指數的定義可以在這裡找到。
  • ARM中C和彙編混合編程及示例ARM中C和彙編混合編程及示
    在嵌入式系統開發中,目前使用的主要程式語言是C和彙編,C++已經有相應的編譯器,但是現在使用還是比較少的。在稍大規模的嵌入式軟體中,例如含有OS,大部分的代碼都是用C編寫的,主要是因為C語言的結構比較好,便於人的理解,而且有大量的支持庫。
  • 程式語言那些事
    提起編程,一定離不開程式語言,有些軟體既可以用A語言來編寫,也可以用B語言來編寫,為什麼會有這麼多程式語言,面對這麼多程式語言該如何選擇。彙編語言由於機器語言的難於記憶,因此人們使用一些符號來表示指定的寄存器和操作,這就是彙編語言。在彙編語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或操作數的地址。在不同的設備中,彙編語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。
  • 跟我學java編程—簡單了解程式語言
    語言是人類交流的工具,是人們溝通的主要表達方式。不同的民族有不同的語言,每種語言有自己的語法規則和詞彙,只有在規定的語法規則和詞彙範圍內,人們才可以相互理解之間的對話和語句文字要表達的內容。超出這個範圍,就會出現語言理解困難現象,例如:不同語言之間的人對話就會發生理解問題,就需要翻譯人員的協助才能完成正常交流。
  • AI 程式語言圖鑑
    本質上,軟體程序是由程式語言開發實現的,選擇合適的程式語言不僅可以提高軟體的開發效率,也可以提高軟體的使用質量,它是軟體開發過程中的關鍵環節。 當前的程式語言種類繁多,琳琅滿目,我們需要對程式語言有更全面的了解才能得心應手的選擇最適合的一種。那麼,它們的核心區別是什麼?又是如何一步一步發展出來的?哪種程式語言是「人工智慧」領域的最佳選擇?