那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

機器語言是什么_機器語言指令大全

姚小熊27 ? 來源:網絡整理 ? 2018-04-16 10:08 ? 次閱讀

機器語言是什么

機器語言(machinelanguage)是一種指令集的體系。這種指令集,稱機器碼(machinecode),是電腦CPU可直接解讀的數據。機器碼有時也被稱為原生碼(NativeCode),這個名詞比較強調某種編程語言或庫,它與運行平臺相關的部份。

機器語言是用二進制代碼表示的計算機能直接識別和執行的一種機器指令的集合。它是計算機的設計者通過計算機的硬件結構賦予計算機的操作功能。

一種cpu的指令系統,也稱cpu的機器語言。它是該cpu可以識別的一組由1和0序列構成的指令碼。用機器語言編程序,就是從實用的cpu的指令系統中挑選合適的指令,組成一個指令系列。

一條指令就是機器語言的一個語句,它是一組有意義的二進制代碼,指令的基本格式如,操作碼字段和地址碼字段,其中操作碼指明了指令的操作性質及功能,地址碼則給出了操作數或操作數的地址。

用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。手編程序時,程序員得自己處理每條指令和每一數據的存儲分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態。這是一件十分繁瑣的工作。編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍。而且,編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯。除了計算機生產廠家的專業人員外,絕大多數的程序員已經不再去學習機器語言了。

機器語言是什么_機器語言指令大全

機器語言是微處理器理解和使用的,用于控制它的操作二進制代碼。

8086到Pentium的機器語言指令長度可以從1字節到13字節。

盡管機器語言好像是很復雜的,然而它是有規律的。

存在著多至100000種機器語言的指令。這意味著不能把這些種類全部列出來。

范例:

1、指令部份的范例

0000代表加載(LOAD

0001代表儲存(SET)

。。。

2、暫存器部份的范例

0000代表暫存器A

0001代表暫存器B

。。。

3、內存部份的范例

000000000000代表位址為0的內存

000000000001代表位址為1的內存

000000001000代表位址為16的內存

100000000000代表位址為2^11的內存

4、集成范例

0000,0000,000000001000代表LOADA,16

0000,0000,000000000001代表LOADB,1

0000,0001,000000001000代表STOREB,16

0000,0001,000000000001代表STOREB,1

機器語言缺點

1.大量繁雜瑣碎的細節牽制著程序員,使他們不可能有更多的時間和精力去從事創造性的勞動,執行對他們來說更為重要的任務。如確保程序的正確性、高效性。

2.程序員既要駕馭程序設計的全局又要深入每一個局部直到實現的細節,即使智力超群的程序員也常常會顧此失彼,屢出差錯,因而所編出的程序可靠性差,且開發周期長。

3.由于用機器語言進行程序設計的思維和表達方式與人們的習慣大相徑庭,只有經過較長時間職業訓練的程序員才能勝任,使得程序設計曲高和寡。

4.因為它的書面形式全是“密”碼,所以可讀性差,不便于交流與合作。

5.因為它嚴重地依賴于具體的計算機,所以可移植性差,重用性差。

這些弊端造成當時的計算機應用未能迅速得到推廣。

機器語言指令概述

匯編語言指令編寫的匯編語言程序輸入計算機后,計算機并不能識別和執行,必須由機器提供的匯編程序將它翻譯成由機器語言指令組成的程序,才能由計算機執行。通常這種翻譯工作不必由人來干預。本節只簡單介紹一下機器語言指令的構成,以便讀者在實際應用(實時控制)中也可完成類似的轉換工作。

8086/8088的機器語言指令為可變字節的指令,一條指令可以由1~7個字節組成,因此指令格式比較靈活。其格式如下所示:

機器語言是什么_機器語言指令大全

其中,opcode為操作碼字段;d指示操作方向;S表示符號擴展;W指示操作數寬度;mod用來區分是寄存器尋址還是存儲器尋址;reg寄存器編碼;r/m寄存器或存儲器;disp-low位移量低位;disp-high位移量高位;data-low立即數低位;data-high立即數高位。

格式中給出了1~6個字節的情形。如果指令中顯示指定段跨越前綴,則在機器語言指令中使用放在該指令之前的一個字節來表示,其格式如下所示:

機器語言是什么_機器語言指令大全

其中,001和110均為段前綴標志;SEG指定四個段寄存器中的一個,00為ES,01為CS,10為SS,11為DS

1、操作碼的機器語言表示

操作碼一般占用第一個字節的7~2位,但有些指令的操作碼占用第一個字節的7~1位,甚至還可能占用第二個字節的5~3位作為擴展操作碼。

在多數操作碼中,常使用某些位來指示某些信息。例如第一個字節中的W位用來指示該指令是對字節(W=1)還是對字節(W=0)進行操作。在雙操作數指令中,d位指定寄存器是用于目的操作數(d=1)還是用于源操作數(d=0)。另外,在立即尋址方式的指令中,S位表示符號擴展,若立即數為8位,但要求擴展成16位數時,S位為1。S位和W位在立即尋址方式指令中聯用表示:

機器語言是什么_機器語言指令大全

2、尋址方式的機器語言表示

指令中除操作碼占用的位數外,其它位則用來表示操作數或操作數的地址。8086/8088用一個尋址方式字節來表示操作數的尋址方式,它通常是機器指令的第二個字節。

第二個字節中的reg字段表示尋址方式為寄存器方式,在雙操作數指令的情況下,由reg和第一個字節中的W位聯合指定一個寄存器作為兩個操作數中的一個操作數。Reg與W位聯合指定的寄存器如表6-4-1所示。

機器語言是什么_機器語言指令大全
機器語言是什么_機器語言指令大全

第二個字節中的mod字段與r/m字段相結合以確定另一個操作數的尋址方式。其中:

Mod=00時為無位移量字節的存儲器尋址方式。由r/m字段指定確切的尋址方式,其中當r/m=110時指定為直接尋址方式,此時指令中跟有16位位移量D16,用來指出操作數的偏移地址。

Mod=01時為帶一個位移量字節的存儲器尋址方式。由r/m字段指定確切的尋址方式。其中位移量字節為一個帶符號數,因此它的范圍是-128~+127。當用這個位移量D8計算存儲器地址時,它將被符號擴展成16位。

Mod=10時為帶兩個位移量字節的存儲器尋址方式。由r/m字段指定確切的尋址方式。第一個偏移量字節是偏移量的低8位,第二個偏移量字節是偏移量的高8位。這個16位的位移量也是一個帶符號數,因此它的范圍是-32768~+32767。Mod=11時為寄存器尋址方式。r/m字段表示寄存器,也是與第一個字節的W位一起確定一個寄存器。Mod字段與r/m字段聯合使用確定尋址方式由表6-4-2給出。

機器語言是什么_機器語言指令大全

機器語言指令

1.compiledmachinelanguageinstruction

編譯的機器語言指令

2.Aphraseoftenassociatedwithamacroinstruction,whereonesourcelanguageinstructionisconvertedtoseveralmachinelanguageinstructions.

通常與宏指令有關的一種用語,即把一條源語言指令轉換成若干條機器語言指令。

3.asinglecomputerinstructionthatresultsinaseriesofinstructionsinmachinelanguage.

一個單一的計算機指令可引起一系列的機器語言指令。

4.Areportpreparedbyaprocessorwhichshowsthecodingasoriginallywritten,anycommentsthatmayhavebeenwritten,andthemachinelanguageinstructionsproduced.

處理機作成的一種報告,其上表示出原寫入的編碼、注釋以及產生的機器語言指令。

5.Asingleinstructioninprogramminglanguagethatresultsinaseriesofinstructionsinmachinelanguage.

宏指令計算機編程語言中可以在機器語言中形成一系列指令的命令

6.Assembler:Aprogamminglanguageinwhichonemnemonicsourcestatementiscodedforeachmachine-levelinstruction.

匯編語言:一種編程語言,每一條助記符源語句都對應一條機器指令。

7.Anassemblerlanguageprogrammerwritesonemnemonicinstructionforeachmachine-levelinstruction.

匯編語言程序設計員為每條機器指令寫一條助記符指令。

8.machine-independentcommandlanguage

獨立于機器的命令語言

9.Aprogramthattranslatesinstructionswritteninahighlevelprogramminglanguageintomachinelanguage.

一種把用高級編程語言編寫的指令翻譯成機器語言的程序。

10.Aprogramminglanguagewhoseinstructionsareexpressedinsymbolsconvenienttohumansratherthaninmachinelanguage.

不用機器語言而用對人方便的符號表示各種指令的一種編程語言。

11.Aprogramthattranslatesaninstructionintoamachinelanguageandexecutesitbeforeproceedingtothenextinstruction.

解釋程序將指令翻譯為機器語言并在執行下一個指令之前完成此指令的程序

12.(computerscience)aprogramthatdecodesinstructionswritteninahigherorderlanguageandproducesamachinelanguageprogram.

(計算機科學上)用更高命令語言所寫的解碼指令程序來產出機器語言程序。

13.Otherprogramsthentranslatetheinstructionsintomachinelanguageforthecomputertouse.

接著將程序翻譯成指令成為機器語言,給計算機使用。

14.Theprocesswherebyadigitalcomputertranslatestheinstructionsofaprogramwritteninahigh-levellanguageintotheirmachinelanguageequivalents.

數字計算機借此把高級語言編寫的程序中的指令翻譯成與其等價的機器語言程序的處理過程。

15.Assemblylanguageisactuallyacommand-basedredivsentationoftheactualinstructionsthatyourcomputer‘sprocessorruns.

匯編語言實際上是你計算機處理器實際運行的指令的命令形式表示法。

16.Acomputer-orientedlanguagewhoseinstructionsconsistonlyofcomputerinstructions.

一種面向計算機的語言,其指令只由計算機指令組成。

17.Abasicorfundamentalunit,oftenreferringtothelowestofamachineinstructionorlowestunitoflanguagetranslation.

一種基本單位或基礎單位,常常指機器指令的最低一級或語言翻譯的最低的單位。

18.Asoftwaredevelopmenttoolthattranslateshuman-readableassemblylanguageprogramsintomachine-languageinstructionsthattheprocessorcanunderstandandexecute.

一個能把人可讀的匯編語言程序轉換到處理器可理解和運行的機器指令的軟件開發工具。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 指令
    +關注

    關注

    1

    文章

    611

    瀏覽量

    35812
  • 機器語言
    +關注

    關注

    0

    文章

    35

    瀏覽量

    10774
收藏 人收藏

    評論

    相關推薦

    c語言匯編語言機器語言的轉化

    匯編語言經過匯編程序可以翻譯成及期望語言,C語言是不是必須先轉換為匯編語言,然后才能生成機器語言?還是C
    發表于 04-14 16:53

    匯編語言機器語言

    機器語言是計算機直接認識的語言,在電路中有高低電平表示,在邏輯中用0和1表示(0表示低或者開關的斷開,1表示高或者開關的閉合)機器語言是最早的機器運行的
    發表于 03-13 17:22

    C語言為什么不能直接轉換為機器語言呢?

    單片機只能識別機器語言。匯編把程序轉換為機器語言,C語言把程序轉換為匯編語言,那么為什么C語言不直接轉換為
    發表于 04-12 16:51

    機器語言如何改變單片機程序感性認知

    高級語言被編譯器變成最后的機器語言機器碼被下載軟件下載進單片機的flash,相關處理寄存器根據系統時鐘一拍一拍工作,讀取flash里的代碼。 代碼實際上是flash存儲單元的電位狀態,進而被理解為
    發表于 04-02 01:03

    什么是匯編語言

    (Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。匯編語言機器語言易于讀寫、調
    發表于 07-19 06:05

    AVR單片機匯編指令系統相關資料分享

    AVR單片機指令系統計算機的指令系統是一套控制計算機操作的代碼,稱之為機器語言。計算機只能識別和執行機器語言指令。為了便于人們理解、記憶和
    發表于 11-23 06:58

    C語言的編譯步驟

    嵌入式C語言開發入門——程序編譯計算機語言發展過程C語言編譯步驟GCC編譯命令程序執行計算機語言發展過程機器語言二進制數據匯編
    發表于 12-15 08:21

    機器語言的預處理與編譯功能怎樣

    什么是機器語言呢?機器語言的預處理與編譯功能怎樣?
    發表于 01-19 06:41

    MCS-51系列單片機指令系統

    MCS-51系列單片機指令系統:指令是指揮計算機執行某種操作的命令。一條指令可用兩種語言形式表示,即機器語言和匯編
    發表于 03-14 15:28 ?2次下載
    MCS-51系列單片機<b class='flag-5'>指令</b>系統

    高級語言和匯編語言_機器語言的區別

    本文首先介紹了高級語言的優缺點、匯編語言的優缺點及使用匯編語言的理由,其次介紹了機器語言的優缺點,最后闡述了高級語言和匯編
    的頭像 發表于 04-16 10:28 ?3w次閱讀

    面向機器語言有哪些

    本文開始介紹了機器語言原理,其次介紹了面向機器語言的概念與分類,最后介紹了機器語言的發展。
    的頭像 發表于 04-16 10:29 ?1.2w次閱讀
    面向<b class='flag-5'>機器語言</b>有哪些

    微機系統指令機器碼表示方法

     一、機器語言指令的編碼目的和特點   匯編語言源程序:   用匯編語言 (即主要由指令系統組成的
    發表于 10-17 16:38 ?9次下載
    微機系統<b class='flag-5'>指令</b>的<b class='flag-5'>機器</b>碼表示方法

    計算機的機器語言和匯編語言與高級語言的詳細資料介紹

    計算機語言通常是一個能完整、準確和規則地表達人們的意圖,并用以指揮或控制計算機工作的“符號系統”。計算機語言通常分為三類:即機器語言、匯編語言和高級
    的頭像 發表于 02-06 16:11 ?5929次閱讀

    基于使用PERSEUS-3計算機自制機器語言編程

    2007年,我開發了一種名為PERSEUS-3的計算機,以克服1980年自制的機器語言計算機遭受的挫折。其功能如下。
    的頭像 發表于 05-01 10:03 ?1970次閱讀

    匯編語言的產生 匯編語言的組成

    機器語言**是機器指令的集合。機器指令展開來講就是一臺機器可以正確執行的命令。
    的頭像 發表于 09-20 14:52 ?1517次閱讀
    匯編<b class='flag-5'>語言</b>的產生 匯編<b class='flag-5'>語言</b>的組成
    新津县| 百家乐的如何玩| 百家乐长胜攻略| 百家乐官网赌法| 百家乐真人游戏开户| 大发888下载| 百家乐官网投注软件有用吗| 香港百家乐赌场娱乐网规则| 打百家乐官网纯打庄的方法| 明升备用| 澳门百家乐官网必胜看| bet365注册哪家好 | 百家乐官网开户送10彩金| 大发888娱乐场存款| 百家乐官网电投软件| 银川市| 下载百家乐官网的玩法技巧和规则 | 澳门百家乐娱乐城开户| 网上真钱赌博| 线上百家乐官网赌法| 交口县| 马尼拉百家乐的玩法技巧和规则| 百家乐官网平台下载| 社旗县| 大发888游戏加速| 海尔百家乐的玩法技巧和规则| 网上百家乐开户送现金| 百家乐官网游戏的玩法| 全讯网bbin888.com| 百家乐网址是多少| 网络百家乐官网输了很多钱| 百家乐官网正网开户| 古浪县| 大发888注册送58下载| 东方太阳城二手房| 百家乐赌博凯时娱乐| 凯旋门百家乐娱乐城| 百家乐官网游戏厅| 百家乐官网小游戏开发| 网上百家乐官网的技巧| 百家乐官网路纸表格|