日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机语言面向机器的语言,面向机器语言是什么

發(fā)布時間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机语言面向机器的语言,面向机器语言是什么 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

面向機器語言是為特定的計算機或一類計算機而設(shè)計的程序設(shè)計語言。這種語言保留了機器語言的外形,即由操作碼和地址碼組成指令這個外形,但面向機器語言的語言是用符號形式而不用機器代碼形式。

面向機器語言是為特定的計算機或一類計算機而設(shè)計的程序設(shè)計語言。這種語言保留了機器語言的外形,即由操作碼和地址碼組成指令這個外形,但面向機器語言的語言是用符號形式而不用機器代碼形式。這種語言能讓使用者擺脫計算機的一些純事物性的細節(jié)問題(如無需硬記機器指令代碼、擺脫了二-十進制轉(zhuǎn)換問題和分配內(nèi)存問題等),而專心考慮程序間的內(nèi)在聯(lián)系。這類語言的代表是匯編語言。

面向機器語言是與機器相關(guān)的,用戶必須熟悉計算機的內(nèi)部結(jié)構(gòu)及其對應(yīng)的指令序列才可以使用。面向機器語言又分為兩類:機器語言和匯編語言。

概述

機器語言是一種 cpu 指令系統(tǒng),也稱為 cpu 的機器語言,它是 cpu 可以識別的一組由 0 和 1 序列構(gòu)成的指令碼。用機器語言編寫程序,就是從所使用的 cpu 的指令系統(tǒng)中挑選合適的指令,組成一個指令序列。這種程序可以被機器直接理解并執(zhí)行,速度很快,但由于它們不直觀、難記、難以理解、不易査錯、開發(fā)周期長,所以,現(xiàn)在只有專業(yè)人員在編制對于執(zhí)行速度有很高要求的程序時才采用。

為了減輕編程者的勞動強度,人們使用一些用于幫助記憶的符號來代替機器語言中的 0、 1 指令,使得編程效率和質(zhì)量都有了很大的提高。由這些助記符組成的指令系統(tǒng),稱為匯編語言。匯編語言指令與機器語言指令基本上是一一對應(yīng)的。因為這些助記符號不能被機器直接識別,所以匯編語言程序必須被編譯成機器語言程序才能被機器理解和執(zhí)行。編譯之前的程序被稱為“源程序”,編譯之后的程序被稱為“目標(biāo)程序”。

用匯編語言編寫的程序代碼針對性強,代碼長度短,程序執(zhí)行速度快,實時性強,要求 的硬件也少,但編程繁瑣,工作量大,調(diào)試?yán)щy,開發(fā)周期長,通用性差,不便于交流推廣。

匯編言與機器語言都是因 CPU 的不同而不同,所以統(tǒng)稱為“面向機器的語言”。使用這類語言,可以編出效率極高的程序,但對程序設(shè)計人員的要求也很高,他們不僅要考慮解題思路,還要熟悉機器的內(nèi)部結(jié)構(gòu),所以,一般的人很難掌握這類程序設(shè)計語言。

發(fā)展

每種計算機都有自己獨特的機器指令,比如,某種型號的計算機用 8 位二進制信息 10001010 表示加法指令,用 00010011 表示減法指令,等等。這些指令的執(zhí)行由計算機的線路來保證,計算機在設(shè)計之初,先就要確定好每一條指令對應(yīng)的線路邏輯操作。計算機處理信息的早期語言是所謂的機器語言,使用機器語言進行程序設(shè)計需要面向機器來編寫代碼,即需要針對不同的機器編寫諸如 01011100 這樣的指令序列。用機器語言進行程序設(shè)計是一項累人的工作,代碼難以閱讀和理解,一個簡單的任務(wù)往往蘊含著編寫大量的代碼,而且同樣的任務(wù)需要針對不同型號的計算機分別進行編寫指令,因為一種型號的計算機用 10001010 表示加法指令,而另一種型號的計算機可能用 11110000 表示加法指令。因此,使用機器語言編程也稱為面向機器編程。20 世紀(jì) 50 年代出現(xiàn)了匯編語言,在編寫指令時,用一些簡單的容易記憶的符號代替二進制指令,但匯編語言仍是面向機器語言,需針對小同的機器編寫不同的代碼。習(xí)慣上稱機器語言、匯編語言是低級語言。

分類

計算機語言有多種分類方法,按照是否面向機器可以分成面向機器的語言和非面向機器的語言。面向機器的語言又分為機器語言和匯編語言,這種語言也稱作計算機低級語言。其他計算機語言均為非面向機器的語言。

機器語言是以二進制代碼組成的機器指令集合.這種語言編制的程序運行效率極高,但程序很不直觀,編寫很簡單的功能就需要大量代碼,重用性差,而且編寫效率較低,很容易出錯。

匯編語言比機器語言直觀。它用助記符代替二進制代碼,編程工作相對機器語言簡化,使用起來方便了很多,錯誤也相對減少;但不同指令集的機器仍使用不同的匯編語言,程序重用性也很低。

機器語言

機器語言程序由機器指令構(gòu)成,這些機器指令按照執(zhí)行順序依次排列,運行時依次執(zhí)行完成某個特定的計算或任務(wù)。

機器指令是 CPU 能直接識別并執(zhí)行的指令。機器指令由物理部件的若干位二進制 0、1 狀態(tài)體現(xiàn),機器指令程序運行前需要存儲到內(nèi)存,正確的機器指令一旦送入 CPU 被譯碼后就將變成動作予以執(zhí)行。

如圖 1-1 所示,機器指令面向機器,因機器而異。不同的機器具有不同的機器指令,因而具有不同的機器語言。所謂不同的機器,是指具有不同 CPU(中央處理器)的計算機。由于機器指令與 CPU 緊密相關(guān),所以不同種類的 CPU 所對應(yīng)的機器指令也就不同,而且它們的指令系統(tǒng)往往相差很大。但對同一系列的 CPU 來說,為了滿足各型號之間良好的兼容性,設(shè)計者一般要做到:新一代 CPU 的指令系統(tǒng)必須兼容先前開發(fā)的同系列 CPU 的指令系統(tǒng)。只有這樣,先前開發(fā)出來的各類程序在新一弋 CPU 上才能正常運行。

機器指令通常由操作碼和操作數(shù)兩部分組成,操作碼指出該指令所要完成的操作,即指令的功能,操作數(shù)指出參與運算的對象,以及運算結(jié)果所存放的位置等。

由于機器指令由物理部件的若干位二進制 0、1 狀態(tài)體現(xiàn),因此機器指令的最直接的記憶形式就是表示這一指令狀態(tài)的二進制數(shù),這個二進制數(shù)就稱作該機器指令的二進制代碼指令。由于二進制數(shù)和八進制數(shù),以及十六進制數(shù)的特殊關(guān)系,因此該二進制代碼指令對應(yīng)的八進制數(shù)和十六進制數(shù)分別稱作該機器指令的八進制或十六進制代碼指令。

例如:B233H 就是一條 80*86 的十六進制機器代碼指令,這條指令的功能是將 33H 這個十六進制數(shù)送到 DL 寄存器。該機器指令的二進制代碼指令是:1011001000110011,指令長度 16 位。

顯然二進制代碼指令與其狀態(tài)對應(yīng)直觀,但記憶困難。而十六進制代碼指令則方便記憶。因此 80*86 的代碼指令通常都用十六進制表示。

用機器指令所寫的程序稱作機器指令程序,機器指令程序也指剛代碼指令所寫的程序。機器指令程序遵循馮·諾依曼原理:用二進制表示數(shù),程序與數(shù)據(jù)都存儲在同樣的存儲器,程序指令一般按存取順序執(zhí)行。

計算機出現(xiàn)初期只有一種機器語言,程序員只能用代碼指令編寫程序,即機器語言程序。用機器語言編寫程序是相當(dāng)艱苦的工作,必須由經(jīng)過嚴(yán)格訓(xùn)練的專業(yè)技術(shù)人員承擔(dān),這是早期計算機之所以不能夠廣泛應(yīng)用的最大障礙之一。

一方面機器語言十分重要,必須了解;另一方面機器代碼指令程序使用又十分困難;因因此唯一能夠替代機器語言的匯編語言就成為計算機科技人員必須掌握的一種計算機語言。

匯編語言

雖然用機器語言編寫程序有許多不便,但程序執(zhí)行效率高。所以,在保留“程序執(zhí)行效率高”的前提下,人們開始著手研究一種能大大改善程序可讀性的編程方法。即選用能反映機器指令功能的單詞或詞組來代替該機器指令的操作碼,選用相應(yīng)的符號表示 CPU 內(nèi)部資源和內(nèi)存等操作數(shù),這就是匯編指令。

例如,匯編指令:

MOV AL,BL 其對應(yīng)的二進制指令為:1101100010001000,十六進制代碼指令則為 D888H,可見記憶機器指令相當(dāng)困難。

而匯編指令中 MOV 源于 Move,表示傳送指令;AL、BL 分別表示 80×86 的 AL 和 BL 寄存器。指令功能是將 BL 寄存器中的內(nèi)容傳送到 AL 寄存器。如此,令人難懂的二進制機器代碼指令或十六進制機器代碼指令就可以用通俗易懂的、具有一定含義的符號指令來表示了,這就是匯編指令的原意。我們稱這些具有一定含義的符號,例如上述指令中的 MOV,為助記符。用助記符、符號地址等組成的符號指令稱為匯編格式指令或匯編指令。

因此,用助記符表示的機器指令稱作匯編指令,用匯編指令編寫的程序稱作匯編指令程序。但匯編指令最終必須翻譯成機器指令才能夠在計算機上執(zhí)行。

匯編語言是匯編指令集、偽指令集及其使用規(guī)則的統(tǒng)稱。能夠一對一地翻譯成機器指令的這種用助記符表示的機器指令稱作匯編指令。偽指令則是出現(xiàn)在匯編語言程序中的一些輔助性的說明,它不對應(yīng)具體的機器指令,而是程序設(shè)計者與匯編過程中的翻譯程序(即匯編)、連接程序,以及執(zhí)行時如何裝入的一種約定。

用匯編語言編寫的程序稱作匯編語言程序,或匯編語言源程序,也簡稱為源程序。匯編語言程序較之機器指令程序容易理解和維護。

匯編語言源程序是一個文本文件,它必須經(jīng)過翻譯才能夠變成可執(zhí)行的機器語言程序,這個翻譯過程稱作匯編。匯編的核心過程是將匯編指令逐條翻譯成機器指令,這正是匯編語言中“匯編”一詞的含義。

80×86 匯編語言源程序擴展名為.asm,經(jīng)過匯編以后生成的浮動地址二進制文件擴展名為.obj,.obj 文件需要經(jīng)過連接才能夠生成可執(zhí)行文件.exe。.exe 是一個可以由操作系統(tǒng)執(zhí)行的機器指令程序。圖 1-2 給出了一個簡單匯編語言程序與其機器指令程序之間的對應(yīng)關(guān)系。

盡管不同的 CPU 有不同的匯編語言,但不同種類的匯編語言都有其共同規(guī)律。因此,學(xué)會一種匯編語言,再學(xué)習(xí)其他匯編語言就相對容易多了。

機器語言與匯編語言

機器語言是計算機唯一能接受和執(zhí)行的語言。一條指令規(guī)定了由軟件工作者要求計算機執(zhí)行的一個基本動作。計算機 CPU 所能懂得的指令的全體,稱作該計算機的指令系統(tǒng)。不同型號或系列的 CPU,其指令系統(tǒng)不同。因為機器語言直接依賴 CPU,所以可移植性差、重用性差。

計算機的指令系統(tǒng)有定長的和不定長的,80×86 是不定長的指令系統(tǒng),一條機器指令依功能不同可能是 l~6 字節(jié)長度。

機器指令的所有字節(jié),按二進制位分成若干字段,不同字段代表不同的含義,但必須有有操作碼字段和操作數(shù)字段。操作碼表明做什么,操作數(shù)表明如何做。操作數(shù)依功能不同,可能沒有,也可能有一個或多個。

二進制代碼指令是機器指令狀態(tài)的直接描述,該狀態(tài)進入 CPU 的譯碼器后,經(jīng)譯碼變成控制器的動作,通過各種邏輯電路,在時鐘脈沖給出的時序信號和邏輯門的作用下完成指令所規(guī)定的操作。即二進制代碼指令或機器指令完全由計算機 CPU 的邏輯電路直接識別,不需要任何翻譯程序。

最早的程序設(shè)計都采用機器語言來編寫。程序設(shè)計者必須將求解的問題細化到每一條指令,其難度可想而知。程序員既要駕馭程序設(shè)計的全局又要深入每一個局部,乃至程序?qū)崿F(xiàn)的每一個細節(jié),即使智力超群的程序員也常常會顧此失彼,屢出差錯,所編寫的程序必須經(jīng)過嚴(yán)格測試,因此開發(fā)周期長。

ASCII 碼的出現(xiàn)為改善機器指令的可讀性和方便記憶提供了可能。既然 ASCII 碼可以表示字符,字符又可以組成單詞和短語,于是用幫助記憶的符號表示的機器指令,即匯編指令和匯編語言就出現(xiàn)了。

匯編語言為機器語言向算法語言,即向高級語言的靠攏邁出了一大步。但它離高級語言還太遠,以至于程序員還不能從分解算法的數(shù)據(jù)、確定運算和控制的指令等繁雜的細化中解脫出來。而偽指令和宏的定義則將匯編語言向算法語言又靠攏了一步,這就是宏匯編。

匯編語言與機器語言相比有很多優(yōu)越性,如編寫容易、修改方便、閱讀簡單、程序清楚等。但在計算機語言系統(tǒng)中,匯編語言仍然被列入“低級語言”的范疇,因為它本身是機器語言,是屬于面向機器的語言。

總結(jié)

以上是生活随笔為你收集整理的计算机语言面向机器的语言,面向机器语言是什么的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。