當前位置:首頁 » 打標機器 » 機器代碼怎麼解碼

機器代碼怎麼解碼

發布時間: 2021-03-10 04:43:02

1. 計算機編譯就是指編碼和解碼兩個過程嗎

在微指令的控制欄位中,每一位代表一個微命令,在設計微指令時,是否發出某個微命令,只要將控制欄位中相應位置成"1"或"0",這樣就可打開或關閉某個控制門,這就是直接控製法.
在6.3節中所講的就是這種方法.但在某些復雜的計算機中,微命令甚至可多達三四百個,這使微指令字長達到難以接受的地步,並要求機器有大容量控制存儲器,為了改進設計出現了以下各種編譯法.
6.4.1 微指令的編譯法(編碼解碼方法)(2)
2.欄位直接編譯法
在計算機中的各個控制門,在任一微周期內,不可能同時被打開,而且大部分是關閉的(相應的控制位為"0").所謂微周期,指的是一條微指令所需的執行時間.如果有若干個(一組)微命令,在每次選擇使用它們的微周期內,只有一個微命令起作用,那麼這若干個微命令是互斥的.
例如,向主存儲器發出的讀命令和寫命令是互斥的;又如在ALU部件中,送往ALU兩個輸入端的數據來源往往不是唯一的,而每個輸入端在任一微周期中只能輸入一個數據,因此控制該輸人門的微命令是互斥的.
選出互斥的微命令,並將這些微命令編成一組,成為微指令字的一個欄位,用二進制編碼來表示, 就是欄位直接編譯法.
6.4.1 微指令的編譯法(編碼解碼方法)(3)
例如,將7個互斥的微命令編成一組,用三位二進制碼分別表示每個微命令,那麼在微指令中,該欄位就從7位減成3位,縮短了微指令長度.而在微指令寄存器的輸出端,為該欄位增加一個解碼器,該解碼器的輸出即為原來的微命令.
6.4.1 微指令的編譯法(編碼解碼方法)(4)
欄位長度與所能表示的微命令數的關系如下:
欄位長度 微命令數
2位 2~3
3位 4~7
4位 8~15
一般每個欄位要留出一個代碼,表示本段不發出任何微命令,因此當欄位長度為3位時,最多隻能表示7個互斥的微命令,通常代碼000表示不發微命令.
6.4.1 微指令的編譯法(編碼解碼方法)(5)
3.欄位間接編譯法
欄位間接編譯法是在欄位直接編譯法的基礎上,進一步縮短微指令字長的一種編譯法.
如果在欄位直接編譯法中,還規定一個欄位的某些微命令,要兼由另一欄位中的某些微命令來解釋,稱為欄位間接編譯法.
本方法進一步減少了指令長度,但很可能會削弱微指令的並行控制能力,因此通常只作為直接編譯法的一種輔助手段.
6.4.1 微指令的編譯法(編碼解碼方法)(6)
欄位A(3位)的微命令還受欄位B控制,當欄位B發出b1微命令時,欄位A發出a1,1,a1,2,…,a1,7中的一個微命令;而當欄位B發出b2微命令時,欄位A發出a2,1,a2,2,…,a2,7中的一個微命令,僅當A為000時例外,此時什麼控制命令都不產生.
6.4.1 微指令的編譯法(編碼解碼方法)(7)
4.常數源欄位E
在微指令中,一般設有一個常數源欄位E就如指令中的直接操作數一樣.E欄位一般僅有幾位,用來給某些部件發送常數,故有時稱為發射欄位.
該常數有時作為操作數送入ALU運算;有時作為計算器初值,用來控制微程序的循環次數等.
6.4.2 微程序流的控制 (1)
當前正在執行的微指令,稱為現行微指令,現行微指令所在的控制存儲器單元的地址稱現行微地址,現行微指令執行完畢後,下一條要執行的微指令稱為後繼微指令,後繼微指令所在的控存單元地址稱為後繼微地址.
所謂微程序流的控制是指當前微指令執行完畢後,怎樣控制產生後繼微指令的微地址.
與程序設計相似,在微程序設計中除了順序執行微程序外還存在轉移功能和微循環程和微子程序等,這將影響下址的形成.
下面介紹幾種常見的產生後繼微指令地址的方法.
6.4.2 微程序流的控制 (2)
(1)以增量方式產生後繼微地址.
在順序執行微指令時,後繼微地址由現行微地址加上一個增量(通常為1)形成的;而在非順序執行時則要產生一個轉移微地址.
機器加電後執行的第一條微指令地址(微程序入口)來自專門的硬體電路,控制實現取令操作,然後由指令操作碼產生後繼微地址.接下去,若順序執行微指令,則將現行微地址主微程序計數器( PC中)+1產生後繼微地址;若遇到轉移類微指令,則由 PC與形成轉移微地址的邏輯電路組合成後繼微地址.
6.4.2 微程序流的控制 (3)
6.4.2 微程序流的控制 (4)
(2)增量與下址欄位結合產生後繼微地址
將微指令的下址欄位分成兩部分:轉移控制欄位BCF和轉移地址欄位BAF,當微程序實現轉移時,將BAF送 PC,否則順序執行下一條微指令( PC+1).
執行微程序條件轉移時,決定轉移與否的硬體條件有好幾種.例如,"運算結果為零","溢出","已完成指定的循環次數"等.
我們假設有八種轉移情況,定義了八個微命令(BCF取3位),在圖中設置計數器CT用來控制循環次數.如在執行乘(或除)法指令時,經常採用循環執行"加,移位"(或減,移位)的方法,指令開始執行時,在CT中置循環次數)每執行一次循環,計數器減1,當計數器為零時結束循環.又考慮到執行微子程序時,要保留返回微地址,因此圖中設置了一個返回寄存器RR.

2. 單片機的機器碼是怎麼定義的

不同的cpu都有自己的指抄令集所以不同的cpu機器碼都不一樣。cpu本身只是取指令-分析指令-執行指令,所以指令的機器碼可以定義的很隨意,只要能和cpu分析指令的硬體符合就行了,當然機器碼是越容易解碼越好了。
你如果有那款單片機的匯編指令集,一般那裡也會有相應指令對應的機器碼。

不知道我說的是不是你的意思

3. 怎樣把匯編語言編譯成機器指令

機器指令?!不太明白你的意思,你是說想把它編譯成可執行文件吧。亦或是想把它轉化為二進制的機器指令?!你要是有能力可以手工翻譯,不過和其他編程語言一樣,匯編語言有編譯器、連接器、和debug。對應的三個文件是:MASM.EXE LINK.EXE DEBUG.EXE這三個小軟體網上都有。你可以下載下來,既然你會匯編語言我覺得這些應該都會的吧,如果找不到我可以用郵件發給你,使用很簡單的,可能調試時需要自己去熟悉各種調試指令,如果想看你的匯編程序的機器指令也可以在DEBUG時用D命令查看內存中的內容,這樣就可以看到指令對應的十六進制數,也就是機器代碼。具體的可以搜索DEBUG使用方法。(不知道我回答的是不是你想要的,呵呵)

4. CPU是怎樣對指令進行解碼

cpu就是中央處理器,英文為central processing unit。cpu是電腦中的核心配件,只有火柴盒那麼大,幾十張紙那麼厚,但它卻是一台計算機的運算核心和控制核心。電腦中所有操作都由cpu負責讀取指令,對指令解碼並執行指令的核心部件。cpu的結構:中央處理器cpu包括運算邏輯部件、寄存器部件和控制部件。中央處理器從存儲器或高速緩沖存儲器中取出指令,放入指令寄存器,並對指令解碼。它把指令分解成一系列的微操作,然後發出各種控制命令,執行微操作系列,從而完成一條指令的執行。指令是計算機規定執行操作的類型和操作數的基本命令。指令是由一個位元組或者多個位元組組成,其中包括操作碼欄位、一個或多個有關操作數地址的欄位以及一些表徵機器狀態的狀態字和特徵碼。有的指令中也直接包含操作數本身。①運算邏輯部件。可以執行定點或浮點的算術運算操作、移位操作以及邏輯操作,也可執行地址的運算和轉換。②寄存器部件。包括通用寄存器、專用寄存器和控制寄存器。通用寄存器又可分定點數和浮點數兩類,它們用來保存指令中的寄存器操作數和操作結果。通用寄存器是中央處理器的重要組成部分 ,大多 數 指令都要訪問到通用寄存器。通用寄存器的寬度決定計算機內部的數據通路寬度,其埠數目往往可影響內部操作的並行性。專用寄存器是為了執行一些特殊操作所需用的寄存器。控制寄存器通常用來指示機器執行的狀態,或者保持某些指針,有處理狀態寄存器、地址轉換目錄的基地址寄存器、特權狀態寄存器、條件碼寄存器、處理異常事故寄存器以及檢錯寄存器等。有的時候,中央處理器cpu中還有一些緩存,用來暫時存放一些數據指令,緩存越大,說明中央處理器cpu的運算速度越快,目前市場上的中高端中央處理器cpu都有2M左右的二級緩存。③控制部件。主要負責對指令解碼,並且發出為完成每條指令所要執行的各個操作的控制信號。其結構有兩種:一種是以微存儲為核心的微程序控制方式;一種是以邏輯硬布線結構為主的控制方式。微存儲中保持微碼,每一個微碼對應於一個最基本的微操作,又稱微指令;各條指令是由不同序列的微碼組成,這種微碼序列構成微程序。中央處理器在對指令解碼以後,即發出一定時序的控制信號,按給定序列的順序以微周期為節拍執行由這些微碼確定的若干個微操作,即可完成某條指令的執行。簡單指令是由(3~5)個微操作組成,復雜指令則要由幾十個微操作甚至幾百個微操作組成。邏輯硬布線控制器 則完全是由隨 機邏輯組成 。 指令解碼後,控制器通過不同的邏輯門的組合,發出不同序列的控制時序信號,直接去執行一條指令中的各個操作。應用 大型、小型和微型計算機的中央處理器的規模和實現方式很不相同,工作速度也變化較大。中央處理器可以由幾塊電路塊甚至由整個機架組成。如果中央處理器的電路集成在一片或少數幾片大規模集成電路晶元上,則稱為微處理器(見微型機)。中央處理器的工作速度與工作主頻和體系結構都有關系。中央處理器的速度一般都在幾個MIPS(每秒執行100萬條指令)以上。有的已經達到幾百 MIPS 。速度最快的中央處理器的電路已採用砷化鎵工藝。在提高速度方面,流水線結構是幾乎所有現代中央處理器設計中都已採用的重要措施。未來,中央處理器工作頻率的提高已逐漸受到物理上的限制,而內部執行性(指利用中央處理器內部的硬體資源)的進一步改進是提高中央處理器工作速度而維持軟體兼容的一個重要方向

5. 數控機床M代碼解碼原理

這個是商業機密,各個系統不一樣。就和走拐點的時候 三菱 ,FANUC 等都不一樣的

6. 機器碼是如何在計算機中運行的

機器碼就是諸如0101010100......的二進制數,這是機器唯一能識別的代碼,所有計算機高級語言,最後都要轉換成二進制代碼機器才能執行。

7. cpu是怎麼讀入指令代碼的是怎麼解碼的又是怎麼把它變成一系列的電信號的呢

如果你是計算機專業的孩紙,這些都是最入門的基礎知識,教材上都有,自己看去。
如果你是普通群眾,這些東西是不需要懂的。實在吃飽了沒事兒干,可以自己網路相關教程了解,搜索關鍵詞就是你的問題。
不要啥東西都來這里提問浪費大家的精力,很多問題,網上早有詳盡的說法,在發問之前自己先搜一下。。。

8. C語言編譯到機器碼的過程求詳細解說,不勝感激

從編碼到生成可執行的binary文件是有好幾個過程的:(默認已完成編碼)
1, 預編譯(預處理), 也就是替換工作, 先把代碼中的宏做替換, 條件編譯等會做處理,為編譯做作準備;
2,編譯,包括了語法的檢查,匯編代碼等中間代碼的生成,代碼優化,obj文件(也算是目標代碼)的生成,已經是有機器碼了;
3.庫的合成,這個不一定有,不是必須的;
4.鏈接, 連接器會按照一定的規則,比如根據連接腳步,把code組織起來,生成elf文件(elf可能不是一個所有通用的格式),這個時候已經可以執行了,裡面的可以執行的機器碼;
5,裁剪, 可以把elf文件中的非必需的段 strip,生成一個更精簡的elf文件;
6,binary的生成,obj命令可以把elf文件轉換成binary文件,binary文件燒錄到存儲器中可以直擊運行。

熱點內容
線切割怎麼導圖 發布:2021-03-15 14:26:06 瀏覽:709
1台皮秒機器多少錢 發布:2021-03-15 14:25:49 瀏覽:623
焊接法蘭如何根據口徑配螺栓 發布:2021-03-15 14:24:39 瀏覽:883
印章雕刻機小型多少錢 發布:2021-03-15 14:22:33 瀏覽:395
切割機三五零木工貝片多少錢 發布:2021-03-15 14:22:30 瀏覽:432
加工盜磚片什麼櫸好 發布:2021-03-15 14:16:57 瀏覽:320
北洋機器局製造的銀元什麼樣 發布:2021-03-15 14:16:52 瀏覽:662
未來小七機器人怎麼更新 發布:2021-03-15 14:16:33 瀏覽:622
rexroth加工中心亂刀怎麼自動調整 發布:2021-03-15 14:15:05 瀏覽:450
機械鍵盤的鍵帽怎麼選 發布:2021-03-15 14:15:02 瀏覽:506