新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 第1章 從機器碼到開發語言(X86匯編教程)

        第1章 從機器碼到開發語言(X86匯編教程)

        作者: 時間:2016-12-01 來源:網絡 收藏
        學習東西不動手實踐是很難記好的,所以,前幾章不用看得太懂,隨便看看即可.動手實踐的時候偶爾翻一翻會逐漸掌握.記住:我不是說前面的知識不重要,而是說前面的知識很難記,不要求你看過就記住,要以后通過一次次使用來記住.

        匯編語言可能是所有開發語言中見效最慢的了,一般學匯編都是學習很久才

        本文引用地址:http://www.104case.com/article/201612/324263.htm

        會開始教怎么開發第一個程序,前邊一堆都是講電腦原理,因為匯編是最底層的.所以

        需要一堆電腦原理知識才能學習.所以我不會在一開始就教開發.另外學習匯編最好是

        放下你以前對電腦的一些看法...
        電腦是一臺計算機,顯示在屏幕上的東西全都是通過數學計算得來的.
        CPU(中央處理器),是電腦的計算單元,電腦的計算工作都通過CPU來完成.如

        同人類的大腦,CPU直接或間接連接著電腦的所有硬件,CPU從內存里讀取機器碼,并解

        析機器碼的意思,對電腦的一切進行支配.
        那么什么是機器碼呢?那是一些2進制指令的集合.類似于這樣:
        101110000001000010001001
        這就是2進制指令,人們叫它:比特(bit)
        CPU通過1秒鐘解析無數比特,對電腦進行支配.
        是不是覺得有些頭暈?這些數據有一個單位,叫做字節(byte).一個字節又8個

        比特組成.當然字節之上還有很多單位,那些咱們暫且不談.下面我們把那組數據分成

        字節單位的:
        10111000 00010000 10001001
        這樣,看起來順眼多了是吧?但是這樣仍然還是很麻煩,一個好的程序,往往有

        幾千字節,這要是代碼出了錯誤,程序員修改的時候一堆1和0把眼睛都閃瞎了,還怎么

        來修改?
        于是,程序員們編寫了一個程序,世界上第一個匯編編譯器,它有什么作用呢?

        它呢,能把一句英文寫的指令轉換成幾個字節組成的機器碼.這樣:
        MOV [0000],1234
        也就是說,人們用英文字母代替了那一堆1和0組成的數字.那之后以行作為單

        位的指令就開始出現了,在這之前,指令都是一個字節一個字節排列在內存里的,用眼

        睛去看就是一堆數字,完全不知道哪個字節是一條指令的開頭哪個又是結尾.
        后來人們發現.可以用一行代碼代替幾十行匯編代碼,能夠使開發更加輕松.

        于是程序員開發了一個程序,能夠把一行代碼轉換成幾十行匯編代碼再轉換成機器碼.
        于是出現了高級語言.與匯編相比,高級語言執行效率會低一點,同樣功能的代碼執行

        起來比匯編慢了一大截,但是開發起來更加輕松了.同樣的事情在匯編中需要幾十行代

        碼才能完成,用高級語言則幾行代碼搞定(雖然執行起來速度比匯編的代碼慢).
        不管什么開發語言,想要讓電腦能夠識別就必須要轉換成2進制的機器碼字節

        .高級語言一行代碼能做很多次沒錯,但是轉換成機器碼以后,一行高級語言轉出來的

        機器碼都是幾十上百字節的.而匯編語言轉出來的機器碼往往只有幾個字節而已.所以

        高級語言與匯編,一個是在開發的時候快,適合編寫一些不需要高速計算的程序,一個

        是在用的時候快,適合編寫一些常用的東西,比如一個程序,一秒鐘會被調用幾萬次,那

        這個程序最好是匯編寫的,不然會很卡.



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 永州市| 哈尔滨市| 财经| 安陆市| 满洲里市| 彰化县| 洪雅县| 乾安县| 云梦县| 武宣县| 会东县| 和平区| 博野县| 当涂县| 汝南县| 濮阳县| 化州市| 万载县| 宜阳县| 嘉善县| 绥棱县| 彭阳县| 宜宾县| 太和县| 万全县| 于田县| 宜昌市| 绥中县| 西安市| 天长市| 盈江县| 济阳县| 收藏| 金溪县| 彭阳县| 兴隆县| 五大连池市| 西青区| 黑河市| 凤台县| 北宁市|