彙編語言有哪些?
計算機彙編語言有哪些種?
x86的16位實模式彙編和32位保護模式彙編
amd x86_64bit 64位彙編
win32彙編
MCU-8051 51單片機彙編
AVR、ARM、MIPS、POWERPC體系彙編
彙編語言分幾種?分別都是幹什麼的
都是不同的叫法。
彙編語言和機器語言是一一對應的關係,所以有什麼CPU架構就有什麼彙編語言,比如x86架構的就是x86彙編,ARM架構的CPU對應於ARM彙編,MIPS架構的CPU對應於MIPS彙編。
CPU根據總線寬度可以分8位,16位,32位,64位等,所以相應的就有8位彙編,16位彙編,32位彙編等。
CPU的每一次升級換代基本都會提供一些上一代CPU不支持新的指令集,相應的也會按代來稱呼,如8086彙編,80386彙編等等,因位每一代都是向下兼容的,所以現在的i3,i5依然能夠執行古老的8086彙編。
至於宏彙編是微搐的產品MASM開始的,英文全稱是Macro Assembler,Macro就是"宏"的意思,它提供了一些宏指令,用來替代一些多次重複使用的程序段,簡化程序的設計。
彙編語言有什麼用?
彙編語言是基礎對於沒有接觸的人來說他們的認識就是彙編很難,沒幾個人會,所以如果你想學彙編也只有靠自己努力了,這個就是興趣的問題,只要自己有興趣肯下功夫學就行,學好了就可以去騰訊了,什麼安全公司,這方面的人才也挺熱門不過你要技術好才可以,薪水也高,畢竟通匯編的人比較少些。彙編用處可大了,你可以把別人的程序用工具反彙編唬後分析破解,修改啦等等,如果想學建議你找本教材仔細學習,比如王爽的彙編語言不錯,好多人都在學,只要有興趣其他不是問題,加油!
什麼是彙編語言
彙編語言它是計算機語言,計算機語言說通俗點就是人類與計算機(CPU)溝通的橋樑,計算機它不認識人類的語言,聽不懂也讀不懂,要讓計算機替我們去完成我們的工作,就需要我們將要交給計算機完成的任務翻譯為計算機語言。彙編語言是各種語言中的一種,它屬於低級的計算機語言,這是相對於面向過程的C語言,以及面向對象的C++,java而言。它是除機器語言以外最接近硬件的計算機語言,而且可以通過學習彙編語言深入的瞭解操作系統的底層運行機制,並以CPU的角度思考問題。這樣可以讓你在編寫高級語言的程序的時候避免很多錯誤,並且能更深入理解高級語言的執行 原理。因為彙編語言屬於低級語言,所以既然低級就肯定不容易被普通用戶認識,這需要一定的硬件基礎知識和一些計算機工作原理的知識。以前在大學階段學過彙編語言,但沒有當回事兒,連作業都是複製加粘貼完成的(像這樣的不在少數吧:))。工作以後才發現這個語言是個好東西,它其實是個非常重要的基礎課程。所以現在有時間就把書打開多看一點,學一點。彙編語言目前常見的有兩種:一個是基於8086/88架構的DOS下的16位彙編語言,還有就是基於80386架構及其以後型號的windows下32位彙編語言。我不知道linux下有沒有彙編語言。順便說一下,不管什麼彙編語言它所編出來的程序都屬於軟件,所以不管什麼軟件都需要依賴操作系統這個基礎平臺,它才可以被硬件CPU所執行,因為操作系統就是提供硬件與用戶之間的接口,所有軟件都要通過它來分配到硬件資源(不知道對不對哈:)才可以被執行)。一般先學習16位的DOS彙編,然後再學32位的windows彙編。所以我們先談談16位的DOS彙編哈。要學彙編語言首先就是要了解CPU,你只有瞭解了CPU才能瞭解彙編語言的執行,因為它基本就是直接在操作CPU的各個組成單元(像寄存器)。在維基百科上找了這個圖,如下:上面這個CPU的邏輯結構圖是8088的,8088和8086大的架構差不多,所以就以這個為例介紹下各個組成部分的作用。主寄存器:AX(AH,AL)累加寄存器,一般用作暫存數據;BX(BH,BL)基址寄存器,一般用作偏移地址存放;CX(CH,CL)計數寄存器,一般用在循環控制次數;DX(DH,DL)數據寄存器,好像和AX差不多吧;SP堆棧指針寄存器,棧指針;BP基址指針寄存器,可作SP使用;SI源變址寄存器和DI目的變址寄存器,這兩個做為BX擴展用於偏移地址存放。段寄存器: CS:代碼段寄存器,任何一個程序都是從代碼段開始執行的,CS寄存器指明瞭代碼段的段地址。DS:數據段寄存器,存放程序中數據部分的段地址。SS:堆棧段寄存器,堆棧是內存中特殊的內存塊,堆與棧不同,目前我只知道棧是尊循“先進後出,後進先出”的原則而使用。ES:附加段寄存器,應該是作為DS數據段寄存器的擴充吧。地址加法器: 這是用在對內存尋址時所使用,它通過將段寄存器中的段地址與BX、SI、DI等寄存器中的偏移地址作一定處理從而輸出物理地址,然後就可以訪問內存單元了。彙編程序中的地址只是邏輯地址,並不是真實的內存上的地址。在程序實際運行時每次訪問內存都會先將邏輯地址轉換成物理地址才可以訪問到物理內存。關於CPU尋址,邏輯地址,物理地址我也會再寫篇文章來討論。邏輯運算單元和控制單元:這是CPU最核心的單元,我們暫只記住它們是負責執行與控制就好了。內部數據,地址總線:CPU內部各部件之間通信的通道。外部地址總線:用來傳輸CPU想要讀取/寫入內存單元的物理地址。它的寬度就決定了CPU能夠訪問的內存的最大容量。外部數據和控制總......
彙編語言有什麼特點
彙編語言的總體特點1.機器相關性
這是一種面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。因為是機器指令的符號化表示,故不同的機器就有不同的彙編語言。使用匯編語言能面向機器並較好地發揮機器的特性,得到質量較高的程序。
2.高速度和高效率
彙編語言保持了機器語言的優點,具有直接和簡捷的特點,可有效地訪問、控制計算機的各種硬件設備,如磁盤、存儲器、CPU、I/O端口等,且佔用內存少,執行速度快,是高效的程序設計語言。
3.編寫和調試的複雜性
由於是直接控制硬件,且簡單的任務也需要很多彙編語言語句,因此在進行程序設計時必須面面俱到,需要考慮到一切可能的問題,合理調配和使用各種軟、硬件資源。這樣,就不可避免地加重了程序員的負擔。與此相同,在程序調試時,一旦程序的運行出了問題,就很難發現。
優點
1、因為用匯編語言設計的程序最終被轉換成機器指令,故能夠保持機器語言的一致性,直接、簡捷,並能像機器指令一樣訪問、控制計算機的各種硬件設備,如磁盤、存儲器、CPU、I/O端口等。使用匯編語言,可以訪問所有能夠被訪問的軟、硬件資源。
2、目標代碼簡短,佔用內存少,執行速度快,是高效的程序設計語言,經常與高級語言配合使用,以改善程序的執行速度和效率,彌補高級語言在硬件控制方面的不足,應用十分廣泛。
缺點
1、彙編語言是面向機器的,處於整個計算機語言層次結構的底層,故被視為一種低級語言,通常是為特定的計算機或系列計算機專門設計的。不同的處理器有不同的彙編語言語法和編譯器,編譯的程序無法在不同的處理器上執行,缺乏可移植性;
2、難於從彙編語言代碼上理解程序設計意圖,可維護性差,即使是完成簡單的工作也需要大量的彙編語言代碼,很容易產生bug,難於調試;
3、使用匯編語言必須對某種處理器非常瞭解,而且只能針對特定的體系結構和處理器進行優化,開發效率很低,週期長且單調。
彙編語言有哪幾種類型? 5分
很多 像計算機中的8086 51單片機中 Intel 等不同系類不同的彙編 不過都大同小異 只是變了點語法 學川了一種 要把其他的搞懂很簡單的
編程語言和彙編語言有什麼區別啊
計算機語言從低級到高級可以分為:
機器語言,即由0、1組成的機器硬件可以識別的語言;
低級語言,即彙編語言
中級語言,如C語言
高級語言,如C++,JAVA,C#等。
彙編語言是將由0、1組成的機器語言用具有簡單語義的英文代碼表示,以便於理解和程序員編程。彙編語言通常用於對硬件的直接操控。由於彙編語言編寫的程序很小,所以通常在程序中最核心的、控制硬件的代碼可以採用彙編語言編寫,一方面是安全,另一方面提高運行速度。
對於計算機的初學者,應該從中高級語言學起,如c語言,vb,java等,如果你是想要學習如何編程,學習一到兩門高級語言已經夠用了。
如果你已經掌握了基本的編程技能,最好是可以學習數據結構和操作系統以及計算機硬件的基本工作原理,以便優化你編寫的程序,提高安全性和運行效率。
如果你想要從事更高級的開發工作,則可能需要學習彙編語言。
在高校中,計算機科技專業的學生彙編語言是必修課,而軟件工程專業的學生則對彙編語言不做要求。
至於彙編與編程的區別是顯而易見的,彙編語言是一種用於編寫某些程序的語言。而編程則是程序員用某種語言編寫程序的過程。
彙編語言有哪些
彙編是低級的編程語言,由很多的彙編指令、偽指令編譯鏈接而成。和C等中高級語言有相似的地方,電子電路很少用到。接口技術,計算機底層的編程、操作系統編程猜用的著也沒有容易不容易的說法,只是彙編是最接近計算機硬件語言的編程語言了,學習彙編後對於一些基本編程知識能更好的理解。比如說變量的傳遞,變量的存儲等等。你要是想學編程的話,我建議你從C或者VB學起。C是最接近彙編的語言,靈活且容易來表示算法。而VB的編譯環境是做的最好的,學起來要相對簡單一些。
彙編語言的語言組成有哪些
這部分指令用於同外圍設備交換數據,包括端口輸入指令IN/INS、端口輸出指令OUT/OUTS。高級語言輔助指令這部分指令為高級語言的編譯器提供方便,包括創建棧幀的指令ENTER和釋放棧幀的指令LEAVE。控制和特權指令這部分包括無操作指令NOP、停機指
彙編語言的常量有哪些···求詳解
不要完全套用高級語言的概念來理解彙編語言。
在彙編語言中,只有那些在編程時就已經確定、且再不可更改的數據,才可理解為常量。
基本上,常量就是指立即數。
它的數值是指令代碼的一部分。
存儲單元裡的內容是可以改寫的,它們是內存變量,不是常量。
寄存器中的內容也是可以改寫的,它們是寄存器變量,也不是常量。
在程序中,常量的出現形式,可以是多種多樣的。
1. 可以是直接書寫的數值。
比如,MOV AH, 02H 中的02H。當然也可以用十進制、二進制、字符串等其它數據形式。
2. 可以是定義過的符號,EQU, =等偽指令可以用於定義常量。
比如 ABC EQU 330CH 這樣定義的ABC,就是符號常量。
3. 可以是通過數值返回算符或常量表達式生成的常量。
數值返回算符如OFFSET等都可以用於產生立即數,所以用它們組成的表達式也是常量。
比如MOV BX, OFFSET ARRAY指令的源操作數 OFFSET ARRAY是由彙編程序在彙編時確定其值的常量。