彙編語言有什麼?

General 更新 2024-11-05

計算機彙編語言有哪些種?

x86的16位實模式彙編和32位保護模式彙編

amd x86_64bit 64位彙編

win32彙編

MCU-8051 51單片機彙編

AVR、ARM、MIPS、POWERPC體系彙編

彙編語言有什麼用?

彙編語言是基礎對於沒有接觸的人來說他們的認識就是彙編很難,沒幾個人會,所以如果你想學彙編也只有靠自己努力了,這個就是興趣的問題,只要自己有興趣肯下功夫學就行,學好了就可以去騰訊了,什麼安全公司,這方面的人才也挺熱門不過你要技術好才可以,薪水也高,畢竟通匯編的人比較少些。彙編用處可大了,你可以把別人的程序用工具反彙編唬後分析破解,修改啦等等,如果想學建議你找本教材仔細學習,比如王爽的彙編語言不錯,好多人都在學,只要有興趣其他不是問題,加油!

彙編語言有什麼特點

彙編語言的總體特點1.機器相關性

這是一種面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。因為是機器指令的符號化表示,故不同的機器就有不同的彙編語言。使用匯編語言能面向機器並較好地發揮機器的特性,得到質量較高的程序。

2.高速度和高效率

彙編語言保持了機器語言的優點,具有直接和簡捷的特點,可有效地訪問、控制計算機的各種硬件設備,如磁盤、存儲器、CPU、I/O端口等,且佔用內存少,執行速度快,是高效的程序設計語言。

3.編寫和調試的複雜性

由於是直接控制硬件,且簡單的任務也需要很多彙編語言語句,因此在進行程序設計時必須面面俱到,需要考慮到一切可能的問題,合理調配和使用各種軟、硬件資源。這樣,就不可避免地加重了程序員的負擔。與此相同,在程序調試時,一旦程序的運行出了問題,就很難發現。

優點

1、因為用匯編語言設計的程序最終被轉換成機器指令,故能夠保持機器語言的一致性,直接、簡捷,並能像機器指令一樣訪問、控制計算機的各種硬件設備,如磁盤、存儲器、CPU、I/O端口等。使用匯編語言,可以訪問所有能夠被訪問的軟、硬件資源。

2、目標代碼簡短,佔用內存少,執行速度快,是高效的程序設計語言,經常與高級語言配合使用,以改善程序的執行速度和效率,彌補高級語言在硬件控制方面的不足,應用十分廣泛。

缺點

1、彙編語言是面向機器的,處於整個計算機語言層次結構的底層,故被視為一種低級語言,通常是為特定的計算機或系列計算機專門設計的。不同的處理器有不同的彙編語言語法和編譯器,編譯的程序無法在不同的處理器上執行,缺乏可移植性;

2、難於從彙編語言代碼上理解程序設計意圖,可維護性差,即使是完成簡單的工作也需要大量的彙編語言代碼,很容易產生bug,難於調試;

3、使用匯編語言必須對某種處理器非常瞭解,而且只能針對特定的體系結構和處理器進行優化,開發效率很低,週期長且單調。

什麼是彙編語言?

計算機程序設計語言的發展,經歷了從機器語言、彙編語言到高級語言的歷程。

1. 機器語言

電子計算機所使用的是由“0”和“1”組成的二進制數,二進制是計算機的語言的基礎。計算機發明之初,人們只能降貴紆尊,用計算機的語言去命令計算機幹這幹那,一句話,就是寫出一串串由“0”和“1”組成的指令序列交由計算機執行,這種語言,就是機器語言。使用機器語言是十分痛苦的,特別是在程序有錯需要修改時,更是如此。而且,由於每臺計算機的指令系統往往各不相同,所以,在一臺計算機上執行的程序,要想在另一臺計算機上執行,必須另編程序,造成了重複工作。但由於使用的是針對特定型號計算機的語言,故而運算效率是所有語言中最高的。機器語言,是第一代計算機語言。

2. 彙編語言

為了減輕使用機器語言編程的痛苦,人們進行了一種有益的改進:用一些簡潔的英文字母、符號串來替代一個特定的指令的二進制串,比如,用“A D D”代表加法,“M O V”代表數據傳遞等等,這樣一來,人們很容易讀懂並理解程序在幹什麼,糾錯及維護都變得方便了,這種程序設計語言就稱為彙編語言,即第二代計算機語言。然而計算機是不認識這些符號的,這就需要一個專門的程序,專門負責將這些符號翻譯成二進制數的機器語言,這種翻譯程序被稱為彙編程序。

彙編語言同樣十分依賴於機器硬件,移植性不好,但效率仍十分高,針對計算機特定硬件而編制的彙編語言程序,能準確發揮計算機硬件的功能和特長,程序精煉而質量高,所以至今仍是一種常用而強有力的軟件開發工具。

3. 高級語言

從最初與計算機交流的痛苦經歷中,人們意識到,應該設計一種這樣的語言,這種語言接近於數學語言或人的自然語言,同時又不依賴於計算機硬件,編出的程序能在所有機器上通用。經過努力,1 9 5 4年,第一個完全脫離機器硬件的高級語言—F O RT R A N問世了,4 0多年來,共有幾百種高級語言出現,有重要意義的有幾十種,影響較大、使用較普遍的有F O RT R A N、A L G O L、C O B O L、B A S I C、L I S P、S N O B O L、P L / 1、P a s c a l、C、P R O L O G、A d a、C + +、V C、V B、D e l p h i、J AVA 等。

高級語言的發展也經歷了從早期語言到結構化程序設計語言,從面向過程到非過程化程序語言的過程。相應地,軟件的開發也由最初的個體手工作坊式的封閉式生產,發展為產業化、流水線式的工業化生產。

6 0年代中後期,軟件越來越多,規模越來越大,而軟件的生產基本上是人自為戰,缺乏科學規範的系統規劃與測試、評估標準,其惡果是大批耗費巨資建立起來的軟件系統,由於含有錯誤而無法使用,甚至帶來巨大損失,軟件給人的感覺是越來越不可靠,以致幾乎沒有不出錯的軟件。這一切,極大地震動了計算機界,史稱“軟件危機”。人們認識到:大型程序的編制不同於寫小程序,它應該是一項新的技術,應該像處理工程一樣處理軟件研製的全過程。程序的設計應易於保證正確性,也便於驗證正確性。1 9 6 9年,提出了結構化程序設計方法,1 9 7 0年,第一個結構化程序設計語言—P a s c a l語言出現,標誌著結構化程序設計時期的開始。

8 0年代初開始,在軟件設計思想上,又產生了一次革命,其成果就是面向對象的程序設計。在此之前的高級語言,幾乎都是面向過程的,程序的執行是流水線似的,在一個模塊被執行完成前,人們不能幹別的事,也無法動態地改變程序的執行方向。這和人們日常處理事物的......

什麼是彙編語言

彙編語言它是計算機語言,計算機語言說通俗點就是人類與計算機(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能夠訪問的內存的最大容量。外部數據和控制總......

編程語言和彙編語言有什麼區別啊

計算機語言從低級到高級可以分為:

機器語言,即由0、1組成的機器硬件可以識別的語言;

低級語言,即彙編語言

中級語言,如C語言

高級語言,如C++,JAVA,C#等。

彙編語言是將由0、1組成的機器語言用具有簡單語義的英文代碼表示,以便於理解和程序員編程。彙編語言通常用於對硬件的直接操控。由於彙編語言編寫的程序很小,所以通常在程序中最核心的、控制硬件的代碼可以採用彙編語言編寫,一方面是安全,另一方面提高運行速度。

對於計算機的初學者,應該從中高級語言學起,如c語言,vb,java等,如果你是想要學習如何編程,學習一到兩門高級語言已經夠用了。

如果你已經掌握了基本的編程技能,最好是可以學習數據結構和操作系統以及計算機硬件的基本工作原理,以便優化你編寫的程序,提高安全性和運行效率。

如果你想要從事更高級的開發工作,則可能需要學習彙編語言。

在高校中,計算機科技專業的學生彙編語言是必修課,而軟件工程專業的學生則對彙編語言不做要求。

至於彙編與編程的區別是顯而易見的,彙編語言是一種用於編寫某些程序的語言。而編程則是程序員用某種語言編寫程序的過程。

彙編語言可以用來做什麼?

彙編語言是一種功能很強的程序設計語言,也是利用計算機所有硬件特性並能直接控制硬件的語言。彙編語言,作為一門語 彙編語言

言,對應於高級語言的編譯器,需要一個“彙編器”來把彙編語言原文件彙編成機器可執行的代碼。高級的彙編器如MASM,TASM等等為我們寫彙編程序提供了很多類似於高級語言的特徵,比如結構化、抽象等。在這樣的環境中編寫的彙編程序,有很大一部分是面向彙編器的偽指令,已經類同於高級語言。現在的彙編環境已經如此高級,即使全部用匯編語言來編寫windows的應用程序也是可行的,但這不是彙編語言的長處。彙編語言的長處在於編寫高效且需要對機器硬件精確控制的程序。 大多數情況下Linux程序員不需要使用匯編語言,因為即便是硬件驅動這樣的底層程序在Linux操作系統中也可以用完全用C語言來實現,再加上GCC這一優秀的編譯器目前已經能夠對最終生成的代碼進行很好的優化,的確有足夠的理由讓我們可以暫時將彙編語言拋在一邊了。但實際情況是Linux程序員有時還是需要使用匯編,或者不得不使用匯編,理由很簡單:精簡、高效和libc無關性。假設要移植Linux到某一特定的嵌入式硬件環境下,首先必然面臨如何減少系統大小、提高執行效率等問題,此時或許只有彙編語言能幫上忙了。

打字不易,如滿意,望採納。

編程語言和彙編語言有什麼區別啊

計算機語言從低級到高級可以分為: 機器語言,即由0、1組成的機器硬件可以識別的語言; 低級語言,即彙編語言 中級語言,如C語言 高級語言,如C++,JAVA,C#等。 彙編語言是將由0、1組成的機器語言用具有簡單語義的英文代碼表示,以便於理解和程序員編程。彙編語言通常用於對硬件的直接操控。由於彙編語言編寫的程序很小,所以通常在程序中最核心的、控制硬件的代碼可以採用彙編語言編寫,一方面是安全,另一方面提高運行速度。 對於計算機的初學者,應該從中高級語言學起,如c語言,vb,java等,如果你是想要學習如何編程,學習一到兩門高級語言已經夠用了。 如果你已經掌握了基本的編程技能,最好是可以學習數據結構和操作系統以及計算機硬件的基本工作原理,以便優化你編寫的程序,提高安全性和運行效率。 如果你想要從事更高級的開發工作,則可能需要學習彙編語言。 在高校中,計算機科技專業的學生彙編語言是必修課,而軟件工程專業的學生則對彙編語言不做要求。 至於彙編與編程的區別是顯而易見的,彙編語言是一種用於編寫某些程序的語言。而編程則是程序員用某種語言編寫程序的過程。 查看原帖>>

宏彙編語言 彙編語言 有什麼區別嗎

跟樓上理解的一樣,宏是一種偽指令,在編譯的時候由編譯器翻譯成相應的定編指令然後生成.OBJ文件,宏不能對硬件進行控制,只對編譯器有作用。其實理解了偽指令和機器指令的區別就是你這個問題的區別了

什麼是彙編和彙編語言?

彙編語言是一種低級計算機編程語言,說"低級"並不是指語言的功能和複雜程度,而是它出現在計算機發展史的早期,但現在仍廣泛應用於計算機開發領域,應為它是絕大多數語言的基礎.再者,它是一種面向機器的語言,即它運行與操作都與計算機硬件密切相關.

C語言是一種高級語言,它有利於人為操作,近於面向對象與面向機器之間(VB就是一種面向對象的編程語言),它的功能更加強大,可移植性高,是當今最廣泛的語言之一.

DOS彙編是說彙編語言的操作界面是DOST系統,這也說明是彙編是更低級一些,但執行鼎度是其它語言無法相比的,就是可移植性較差.

相關問題答案
彙編語言有什麼?
彙編語言是什麼語言?
檢索語言有什麼作用?
彙編語言有哪些?
什麼是彙編語言?
自言自語還有什麼詞?
機器語言是什麼的編碼?
格言與名言有什麼不同?
馬來西亞語言是什麼?
美國說的語言是什麼?