機器語言
機器語言(機器語言)是用數(shù)字形式表示的機器基本指令集,還是用符號操作碼表示的基本指令集。一般來說,它由機器可以執(zhí)行的所有指令和它操作的數(shù)據(jù)組成。其功能可以通過相應(yīng)計算機的基本指令集來實現(xiàn)(也稱作指令系統(tǒng))描述一下,其中每條指令都會指導計算機執(zhí)行一個基本操作。包括數(shù)據(jù)處理操作(如算術(shù)運算、邏輯運算、字符處理等),控制操作(如判斷、轉(zhuǎn)移、中斷、改變機器狀態(tài)等)和傳輸操作(如輸入、輸出、數(shù)據(jù)移動等)在計算機中,實現(xiàn)操作的指令和被操作的對象要用二進制代碼的形式表示,指令由操作碼和地址碼兩部分組成。操作碼表示要實現(xiàn)的基本操作,地址表示要實現(xiàn)的對象在計算機中的存儲位置,要實現(xiàn)的對象可以是整數(shù)、實數(shù)、布爾值、字符串等。因為它們都是以二進制數(shù)字序列的形式存儲在計算機中,為了區(qū)分它們的類型,通常在操作碼中進行設(shè)置“標志”字段來加以標識。這不同于在高級語言中使用類型描述來標識對象的類型機器語言的主要特點是與具體機器相關(guān),運行效率高于高級語言,但用戶使用起來比較困難,繁瑣,耗時,容易出錯。
語言指令 編輯本段
機器語言指令是一種二進制代碼,由操作碼和操作數(shù)組成。操作碼指定指令的操作,操作碼是指令中的關(guān)鍵字,不能默認。操作數(shù)表示指令的操作數(shù)。計算機指令格式與機器字長、記憶的容量與教學的功能有很大關(guān)系。從便于程序設(shè)計、增加基本操作的并行性、從提高說明書功能的角度來看,說明書應(yīng)該包含多種信息。但在某些指令中,有些信息可能是無用的,會浪費指令占用的存儲空間,增加訪問次數(shù),影響速度。因此,如何合理、科學地設(shè)計指令格式,使指令既能給出足夠的信息,又能使其長度盡可能與機器的字長相匹配,從而節(jié)省存儲空間,縮短取值時間,提高機器性能,是一個重要的問題。
計算機通過執(zhí)行指令來處理各種數(shù)據(jù)。指出數(shù)據(jù)的來源、在操作結(jié)果和操作執(zhí)行的地方,指令必須包含以下信息:
1)操作碼。它規(guī)定了操作的性質(zhì)和功能。一臺計算機可能有幾十到幾百條指令,每條指令都有相應(yīng)的操作碼計算機可以通過識別操作碼來完成不同的操作。
2)操作數(shù)的地址。CPU可以通過這個地址獲得所需的操作數(shù)。
3)操作結(jié)果的存儲地址。將操作數(shù)處理的結(jié)果保存在此地址中,以便重復使用。
4)下條指令的地址。執(zhí)行程序時,大部分指令都是按順序從主存中取出來執(zhí)行的,只有遇到分支指令時,程序的執(zhí)行順序才會改變。為了減少指令的長度,可以使用程序計數(shù)器(程序計數(shù)器,個人電腦)存放指令地址。每次執(zhí)行一條指令,PC機的指令地址自動為1(讓這條指令只占用一個主存單元),指示要執(zhí)行的下一條指令的地址。當遇到執(zhí)行分支指令時,用分支地址修改PC的內(nèi)容。因為使用PC,所以不需要在指令中明確給出下一條要執(zhí)行的指令的地址。
一條指令實際上包括兩種信息,即操作碼和地址碼。操作碼(行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號,行動代號)用于表示指令要完成的操作(如加、減、乘、除、數(shù)據(jù)傳送等)它的長度取決于指令系統(tǒng)中指令的數(shù)量。地址碼用來描述指令的操作對象,要么直接給出操作數(shù),要么表示操作數(shù)的內(nèi)存地址或寄存器地址(即寄存器名)
指令包括兩部分操作碼字段和地址字段。根據(jù)地址域涉及的地址數(shù)量,常見的指令格式如下。
①三地址指令:通用地址域中的A1、A2分別確定第一和第二、第二個操作數(shù)地址A3決定結(jié)果地址。下一條指令的地址通常由程序計數(shù)器按順序給出。
②二地址指令:在地址域中,A1確定第一個操作數(shù)地址,A2同時確定第二個操作數(shù)地址和結(jié)果地址。
③單地址指令:地址域中A 確定第一個操作數(shù)的地址。固定使用寄存器存儲第二個操作數(shù)和運算結(jié)果。因此它們的地址隱含在指令中。
④零地址指令:在棧式計算機中,操作數(shù)一般存儲在下推到棧頂?shù)膬蓚€單元中,結(jié)果放在棧頂,地址都是隱藏的,所以大多數(shù)指令只有操作碼,沒有地址字段。
⑤可變地址號指令:地址字段中包含的地址數(shù)量因操作定義而異。例如,一些計算機的指令中的地址數(shù)量少則 0,多則6。
技術(shù)應(yīng)用 編輯本段
指令是機器語言中的語句,是一組有意義的二進制代碼。各種計算機公司設(shè)計和生產(chǎn)的計算機指令的數(shù)量和功能、指令格式、尋址方式、數(shù)據(jù)格式不同。從計算機的發(fā)展過程中可以看出,由于計算機的基礎(chǔ)硬件發(fā)展很快,計算機更新?lián)Q代很快,所以存在一個軟件如何跟上硬件的問題。一臺新機推出交付,只有少量的系統(tǒng)軟件(如操作系統(tǒng)等)可以提交給用戶,大量的軟件是不斷豐富的,尤其是應(yīng)用,有相當一部分是用戶在使用機器時不斷產(chǎn)生的。為了緩解原應(yīng)用程序不能 盡管各計算機公司生產(chǎn)的同一系列計算機的硬件實現(xiàn)方法可能有所不同,但指令系統(tǒng)、數(shù)據(jù)格式、I/o系統(tǒng)等保持不變,所以軟件完全兼容。在開發(fā)該系列計算機的新型號時,雖然指令系統(tǒng)可以大幅度擴展,但仍然保留了原有的所有指令,使軟件向上兼容,即舊型號上的軟件無需修改就可以在新機上運行。
說到這里,大家都明白為什么電腦是電腦,電腦是電腦了再聰明,本質(zhì)也不過是這些二進制代碼運算的結(jié)果。然而,二進制代碼太難用了,所以后來基于它開發(fā)了匯編語言,但匯編仍然不能用看起來并不直觀,所以最終出現(xiàn)了一種用于現(xiàn)代編程的高級語言。這是計算機編程語言的發(fā)展。有了編程語言,就假設(shè)這些機器可以被我使用。It 實際上沒那么簡單。首先,每做一件事都要重復很多操作程序,工作量很大。其次,我們都看到了,使用計算機的人大多不是計算機專業(yè)的,更不要說編程了,要抵制復雜的操作步驟。所以我們也需要一個操作系統(tǒng),把復雜的操作留給自己,把簡單的操作呈現(xiàn)給用戶。
機器語言程序兼容性。機器語言是由硬件實現(xiàn)的機器指令。要實現(xiàn)用機器語言編寫的程序的兼容性,對計算機體系結(jié)構(gòu)有非常嚴格的要求需要兼容的兩臺電腦的架構(gòu)和操作系統(tǒng)的用戶程序界面要完全一樣;即使略有不同,也可以通過軟件仿真或硬件仿真實現(xiàn)兼容。但是,這些方法會明顯降低用戶程序的運行速度。
產(chǎn)品缺點 編輯本段
1.大量瑣碎的細節(jié)束縛了程序員,使他們無法有更多的時間和精力從事創(chuàng)造性的工作,執(zhí)行對他們更重要的任務(wù)。比如保證程序的正確性、高效性。
2.程序員不僅要掌握程序設(shè)計的全局,還要深入到每一個部分,直到實現(xiàn)細節(jié)即使是智力超群的程序員,也經(jīng)常會忽略一件事,反復出錯,所以編譯出來的程序可靠性差,開發(fā)周期長。
3.因為用機器語言編程的思維和表達與人有很大不同 的習慣,只有經(jīng)過長期訓練的程序員才能勝任,這就使得編程有高有低。
4.因為它的書面形式充滿了'密'代碼,所以可讀性差,不便于交流和合作。
5.因為它嚴重依賴于特定的計算機,所以不具有可移植性和可重用性。
弱通用性 編輯本段
各種計算機公司設(shè)計和生產(chǎn)的計算機指令的數(shù)量和功能、指令格式、尋址方式、數(shù)據(jù)格式不一樣,即使是一些常用的基本指令,比如算術(shù)和邏輯運算指令、轉(zhuǎn)賬指令等等也不一樣。所以,雖然各種類型的計算機的高級語言基本相同,但是把高級語言程序編譯成機器語言后,差別也很大。所以用機器語言表達的程序移植到其他機器上幾乎是不可能的。從計算機的發(fā)展過程中看到,由于計算機的基礎(chǔ)硬件發(fā)展很快,計算機的更新?lián)Q代很快,所以就存在一個軟件如何跟上的問題。
附件列表
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。
如果您認為本詞條還有待完善,請 編輯
上一篇 HTML組件 下一篇 程序計數(shù)器