精選分類 書庫 完本 排行 原創專區
欣可小說 > 曆史 > 程式設計語言處理係統 > 機器語言

程式設計語言處理係統 機器語言

作者:池昌海 分類:曆史 更新時間:2026-04-29 09:20:01

{

\"code\": 200,

\"title\": \"\",

\"content\": \"機器語言是直接用二進製代碼指令表達的計算機語言,指令是用0和1組成的一串代碼,它們有一定的位數,並分成若乾段,各段的編碼錶示不同的含義,例如某台計算機字長為16位,即有16個二進製數組成一條指令或其它資訊。16個0和1可組成各種排列組合,通過線路變成電信號,讓計算機執行各種不同的操作。\\n\\n一條指令就是機器語言的一個語句,它是一組有意義的二進製代碼,指令的基\\n\\n指令係統本格式如:操作碼欄位地址碼\\n\\n欄位其中操作碼指明瞭指令的操作性質及功能,地址碼則給出了操作數或操作數的地址。\\n\\n各計算機公司設計生產的計算機,其指令的數量與功能、指令格式、尋址方式、數據格式都有差彆,即使是一些常用的基本指令,如算術邏輯運算指令、轉移指令等也是各不相同的。因此,儘管各種型號計算機的高級語言基本相同,但將高級語言程式(例如Fortran語言程式)編譯成機器語言後,其差彆也是很大的。因此將用機器語言表示的程式移植到其他機器上去幾乎是不可能的。從計算機的發展過程已經看到,由於構成計算機的基本硬體發展迅速,計算機的更新換代是很快的,這就存在軟件如何跟上的問題。大家知道,一台新機器推出交付使用時,僅有少量係統軟件(如操作係統等)可提交用戶,大量軟件是不斷充實的,尤其是應用程式,有相當一部分是用戶在使用機器時不斷產生的,這就是所謂第三方提供的軟件。\\n\\n為了緩解新機器的推出與原有應用程式的繼續使用之間的矛盾,1964年在設計IBM360計算機時所采用的係列機思想較好地解決了這一問題。從此以後,各個計算機公司生產的同一係列的計算機儘管其硬體實現方法可以不同,但指令係統、數據格式、I\\/O係統等保持相同,因而軟件完全相容(在此基礎上,產生了相容機)。當研製該係列計算機的新型號或高檔產品時,儘管指令係統可以有較大的擴充,但仍保留了原來的全部指令,保持軟件向上相容的特點,即低檔機或舊機型上的軟件不加修改即可在比它高檔的新機器上運行,以保護用戶在軟件上的投資。\\n\\nCISC(複雜指令係統)和RISC(精簡指令係統)\\n\\n指令格式\\n\\n計算機的指令格式與機器的字長、存儲器的容量及指令的功能都有很大的關係。從便於程式設計、增加基本\\n\\n指令係統\\n\\n操作並行性、提高指令功能的角度來看,指令中應包含多種資訊。但在有些指\\n\\n指令係統\\n\\n令中,由於部分資訊可能無用,這將浪費指令所占的存儲空間,並增加了訪存次數,也許反而會影響速度。因此,如何合理、科學地設計指令格式,使指令既能給出足夠的資訊,又使其長度儘可能地與機器的字長相匹配,以節省存儲空間,縮短取指時間,提高機器的效能,這是指令格式設計中的一個重要問題。\\n\\n計算機是通過執行指令來處理各種數據的。為了指出數據的來源、操作結果的去向及所執行的操作,一條指令必須包含下列資訊:\\n\\n(1)操作碼。它具體說明瞭操作的性質及功能。一台計算機可能有幾十條至幾百條指令,每一條指令都有一個相應的操作碼,計算機通過識彆該操作碼來完成不同的操作。\\n\\n(2)操作數的地址。CPU通過該地址就可以取得所需的操作數。\\n\\n(3)操作結果的存儲地址。把對操作數的處理所產生的結果儲存在該地址中,以便再次使用。\\n\\n(4)下條指令的地址。執行程式時,大多數指令按順序依次從主存中取出執行,隻有在遇到轉移指令時,程式的執行順序纔會改變。為了壓縮指令的長度,可以用一個程式計數器(ProgramCounter,PC)存放指令地址。每執行一條指令,PC的指令地址就自動 1(設該指令隻占一個主存單元),指出將要執行的下一條指令的地址。當遇到執行轉移指令時,則用轉移地址修改PC的內容。由於使用了PC,指令中就不必明顯地給出下一條將要執行指令的地址。\\n\\n一條指令實際上包括兩種資訊即操作碼和地址碼。操作碼(OperationCode,OP)用來表示該指令所要完\\n\\n指令係統\\n\\n成的操作(如加、減、乘、除、數據傳送等),其長度取決於指令係統中的指令條數。\\n\\n指令係統地址碼用來描述該指令的\\n\\n操作對象,它或者直接給出操作數,或者指出操作數的存儲器地址或暫存器地址(即暫存器名)。\\n\\n指令包括操作碼域和地址域兩部分。根據地址域所涉及的地址數量,常見的指令格式有以下幾種。\\n\\n①三地址指令:一般地址域中A1、A2分彆確定第一、第二操作數地址,A3確定結果地址。下一條指令的地址通常由程式計數器按順序給出。\\n\\n②二地址指令:地址域中A1確定第一操作數地址,A2同時確定第二操作數地址和結果地址。\\n\\n③單地址指令:地址域中A確定第一操作數地址。固定使用某個暫存器存放第二操作數和操作結果。因而在指令中隱含了它們的地址。\\n\\n④零地址指令:在堆棧型計算機中,操作數一般存放在下推堆棧頂的兩個單元中,結果又放入棧頂,地址均被隱含,因而大多數指令隻有操作碼而冇有地址域。\\n\\n⑤可變地址數指令:地址域所涉及的地址的數量隨操作定義而改變。如有的計算機的指令中的地址數可少至0個,多至6個。\\n\\n尋址方式\\n\\n根據指令內容確定操作數地址的過程稱為尋址。完善的尋址方式可為用戶組織和使用數據提供方便。\\n\\n指令係統\\n\\n指令係統①直接尋址:指令地址域中表示的是操作數地址。\\n\\n②間接尋址:指令地址域中表示的是操作數地址的地址即指令地址碼對應的存儲單元所給出的是地址A,操作數據存放在地址A指示的主存單元內。有的計算機的指令可以多次間接尋址,如A指示的主存單元內存放的是另一地址B,而操作數據存放在B指示的主存單元內,稱為多重間接尋址。\\n\\n③立即尋址:指令地址域中表示的是操作數本身。\\n\\n④變址尋址:指令地址域中表示的是變址暫存器號i和位移值D。將指定的變址暫存器內容E與位移值D相加,其和E D為操作數地址。許多計算機具有雙變址功能,即將兩個變址暫存器內容與位移值相加,得操作數地址。變址尋址有利於數組操作和程式共用。同時,位移值長度可短於地址長度,因而指令長度可以縮短。\\n\\n⑤相對尋址:指令地址域中表示的是位移值D。程式計數器內容(即本條指令的地址)K與位移值D相加,得操作數地址K D。當程式在主存儲器浮動時,相對尋址能保持原有程式功能。\\n\\n此外,還有自增尋址、自減尋址、組合尋址等尋址方式。尋址方式可由操作碼確定,也可在地址域中設標誌,指明尋址方式。\\n\\n種類\\n\\n常見指令按功能可劃分爲:\\n\\n指令係統\\n\\n①數據處理指令:包括算術運算指令、邏輯運算指令、移位指令、比較指令等。\\n\\n指令係統②數據傳送指令:包括寄存\\n\\n器之間、暫存器與主存儲器之間的傳送指令等。\\n\\n③程式控製指令:包括條件轉移指令、無條件轉移指令、轉子程式指令等。\\n\\n④輸入-輸出指令:包括各種外圍設備的讀、寫指令等。有的計算機將輸入-輸出指令包含在數據傳送指令類中。\\n\\n⑤狀態管理指令:包括諸如實現置存儲保護、中斷處理等功能的管理指令。\\n\\n隨著計算機係統結構的發展,有些計算機還不斷引入新指令。如“測並置”指令是為在多機係統和多道程式中防止重入公用子程式而設置的。指令先測試標誌位以判斷該子程式是否正在使用。如未被使用,則轉入子程式並置該標誌位,以防其他進程重入。後來又出現功能更強的信號(PV操作)指令。有的計算機還設置“執行”指令。“執行“指令執行由地址域所確定的存儲單元中的指令。其目的是避免用程式直接修改程式中的指令。這對程式的檢查和流水線等技術的應用均有好處。有的計算機采用堆棧實現程式的調用指令和返回指令。調用時將返回地址和各種狀態、參數壓入堆棧頂部,這樣就能較好地實現子程式的巢狀和遞歸調用,並可使子程式具有可重入性。另外,一些計算機使不少複雜的操作固定化,形成諸如多項式求值、隊列插項、隊列撤項和各種翻譯、編輯等指令。\\n\\n向量指令和標量指令:有些大型機和巨型機設置功能齊全的向量運算指令係統。向量指令的基本操作對象是向量,即有序排列的一組數。若指令為向量操作,則由指令確定向量操作數的地址(主存儲器起始地址或向量暫存器號),並直接或隱含地指定如增量、向量長度等其他向量參數。向量指令規定處理機按同一操作處理向量中的所有分量,可有效地提高計算機的運算速度。不具備向量處理功能,隻對單個量即標量進行操作的指令稱為標量指令。\\n\\n特權指令和用戶指令:在多用戶環境中,某些指令的不恰當使用會引起機器的係統性混亂。如置存儲保護、中斷處理、輸入輸出等這類指令,均稱為特權指令,不允許用戶直接使用。為此,處理機一般設置特權和用戶兩種狀態,或稱管(理)態和目(的)態。在特權狀態下,程式可使用包括特權指令在內的全部指令。在用戶狀態下,隻允許使用非特權指令,或稱用戶指令。用戶如使用特權指令則會發生違章中斷。如用戶需要申請操作係統進行某些服務,如輸入-輸出等,可使用“廣義指令”,或稱為“進監督”、“訪管”等的指令。\\n\\n特點\\n\\n指令係統的效能決定了計算機的基本功能,它的設計直接關係到計算機的硬體結構和用戶的需要。一個完善\\n\\n指令係統\\n\\n的指令係統應滿足如下四方麵的要求:\\n\\n指令係統完備性:指用組合語言編寫各種程式\\n\\n時,指令係統直接提供的指令足夠使用,而不必用軟件來實現。完備性要求指令係統豐富、功能齊全、使用方便。\\n\\n有效性:是指利用該指令係統所編寫的程式能夠高效率地運行。高效率主要表現在程式占據存儲空間小、執行速度快。\\n\\n規整性:包括指令係統的對稱性、勻齊性、指令格式和數據格式的一致性。對稱性是指:在指令係統中所有的暫存器和存儲器單元都可同等對待,所有的指令都可使用各種尋址方式;勻齊性是指:一種操作性質的指令可以支援各種數據類型;指令格式和數據格式的一致性是指:指令長度和數據長度有一定的關係,以方便處理和存取。\\n\\n相容性:至少要能做到“向上相容”,即低檔機上運行的軟件可以在高檔機上運行。\\n\\n發展過程\\n\\n回顧計算機的發展曆史,指令係統的發展經曆了從簡單到複雜的演變過程。早在20世紀50-60年代,計算機大多數采用分立元件的晶體管或電子管組成,其體積龐大,價格也很昂貴,因此計算機的硬體結構比較簡單,所支援的指令係統也隻有十幾至幾十條最基本的指令,而且尋址方式簡單。到60年代中期,隨著整合電路的出現,計算機的功耗、體積、價格等不斷下降,硬體功能不斷增強,指令係統也越來越豐富。在70年代,高級語言己成為大、中、小型機的主要程式設計語言,計算機應用日益普及。由於軟件的發展超過了軟件設計理論的發展,複雜的軟件係統設計一直冇有很好的理論指導,導致軟件質量無法保證,從而出現了所謂的“軟件危機”。人們認為,縮小機器指令係統與高級語言語義差距,為高級語言提供很多的支援,是緩解軟件危機有效和可行的辦法。計算機設計者們利用當時已經成熟的微程式技術和飛速發展的VLSI技術,增設各種各樣的複雜的、麵向高級語言的指令,使指令係統越來越龐大。這是幾十年來人們在設計計算機時,保證和提高指令係統有效性方麵傳統的想法和作法。按這種傳統方法設計的計算機係統稱為複雜指令係統計算機(ComplexSetInstructionComputer),簡稱CISC.\\n\\nRISC是一種計算機體繫結構的設計思想,是近代計算機體繫結構發展史中的一個裡程碑。然而,直到現在,RISC還冇有一個確切的定義。90年代初,IEEE的MichaelSlater對於RISC的定義做瞭如下描述:RISC處理器所設計的指令係統應使流水線處理能高效率執行,並使優化編譯器能生成優化代碼。\\n\\n1.RISC為使流水線高效率執行,應具有下述特征:(1)簡單而統一格式的指令譯碼;(2)大部分指令可以單週期執行完成;(3)隻有LAD和STORE指令可以訪問存儲器;(4)簡單的尋址方式;(5)采用延遲轉移技術;(6)采用LOAD延遲技術。\\n\\n2.RISC為使優化編譯器便於生成優化代碼,應具有下述特征:\\n\\n(1)三地址指令格式\\n\\n(2)較多的暫存器\\n\\n(3)對稱的指令格式。\\n\\n減少指令平均執行週期數是RISC思想的精華。\\n\\n\"

}

目錄
設置
設置
閱讀主題
字體風格
雅黑 宋體 楷書 卡通
字體風格
適中 偏大 超大
儲存設置
恢複默認
手機
手機閱讀
掃碼獲取鏈接,使用瀏覽器打開
書架同步,隨時隨地,手機閱讀
收藏
聽書
聽書
發聲
男聲 女生 逍遙 軟萌
語速
適中 超快
音量
適中
開始播放
推薦
反饋
章節報錯
當前章節
報錯內容
提交
加入收藏 < 上一章 章節列表 下一章 > 錯誤舉報