語言翻譯成組合語言 收下這十點C語言入門須知

2021-10-14 21:10:07 字數 1563 閱讀 1461

一提到語言這個詞,人們自然想到的是像英語、漢語等這樣的自然語言,因為它是人和人相互交流資訊不可缺少的工具。大家聽到我們之間交流的就是漢語,英語。比如一些單詞是英語,主要還是用漢語在交流。

而今天,計算機遍布了我們生活的每乙個角落,除了人和人之間的相互交流之外,我們必須和計算機交流。用什麼樣的方式和計算機做最直接的交流呢?人們自然想到的是最古老也最方便的方式——語言

指令是對計算機進行程式控制的最小單位

所有的指令的集合稱為計算機的指令系統

程式是為了完成意向特定任務而用某種語言編寫的一組指令序列

計算機是乙個忠實的僕人,時刻等候著主人的命令。如何才能使計算機聽話呢?當然是用計算機聽得懂的語言去命令它了。計算機的大腦或者說心臟就是cpu,它控制著整個計算機的運作。每種cpu,都有自己的指令系統。這個指令系統,就是該cpu的機器語言。機器語言是一組由0和1系列組成的指令碼,這些指令碼,是cpu製作廠商規定出來的,然後發布出來,請程式設計師遵守。比如下面是某cpu指令系統中的兩條指令:

1000000 加 1001000 減

要讓計算機幹活,就得用這樣的語言去命令它。這樣的命令,不是一條兩條,而是上百條。而且不同型號的計算機其機器語言是不相通的,按照一種計算機的機器指令編制的程式,不能在另一種計算機上執行。

機器語言程式設計是不是很令人煩惱呢,終於出現了組合語言,就是一些識別符號取代0與1。一門人類可以比較輕鬆認識的程式語言。只是這門語言計算機並不認識,所以人類還不能用這門語言命令計算機做事情。如同上文提到過的中國人和美國人交流一樣,如何才能讓中國人說的話美國人明白呢?

聰明的同學一定想到了:翻譯!是,乙個既懂漢語又懂英語的人,不就可以將中文翻譯給美國人聽麼?

所以,有一類專門的程式,既認識機器語言,又認識組合語言,也就是編譯器,將識別符號換成0與1,知道怎麼把組合語言翻譯成機器語言。於是,人類和機器間的交流,終於又暢通了,而且人類可以比較輕鬆的編寫程式了。也就是編譯器,將識別符號換成0與1.

組合語言和機器語言都是面向機器的,機器不同,語言也不同。既然有辦法讓組合語言翻譯成機器語言,難道就不能把其他更人性化的語言翻譯成機器語言?2023年,fortran語言出現了,其後相繼出現了其他的類似語言。這批語言,使程式設計師擺脫了計算機硬體的限制,把主要精力放在了程式設計上,不再關注低層的計算機硬體。這類語言,稱為高階語言。同樣的,高階語言要被計算機執行,也需要乙個翻譯程式將其翻譯成機器語言,這就是編譯程式,簡稱編譯器。

這類高階語言解決問題的方法是分析出解決問題所需要的步驟,把程式看作是資料被加工的過程。基於這類方法的程式語言成為面向過程的語言。c語言就是這種面向過程的程式語言。

語言翻譯成組合語言 處理器 指令集和組合語言

處理器架構和處理器指令集的關係式什麼?是否指令集決定了處理器的架構?mips屬於處理器架構還是還是指令集的一種?組合語言的種類和處理器架構的關係?要設計處理器,首先就需要有指令集,規定處理器相應操作,通過指令集去控制處理器實現相應功能。但處理器是一堆硬體電路,只能識別二進位制資料,所以指令集是由一堆...

組合語言跳轉翻譯為c語言if else語句

將條件表示式和語句從c語言翻譯成機器 最常用的方式是結合有條件和無條件跳轉 這裡只討論有條件跳轉 對於大多數情況 彙編 就是c語言的直接翻譯 而c語言中的goto語句類似於彙編中的無條件跳轉所以先看一下 if else 由goto語句完成 int absdiff int x,int y 返回兩數差的...

從組合語言翻譯到c語言中應該注意的問題

我們在寫序號產生器的時候,經常會從組合語言翻譯到 c語言 我們先看看乙個比較短和簡單的函式 反編譯如下 熱鍵 f5 可以看到產生的 c 比較合理,但是不完美。看上去有點亂,這是應為反編譯不能執行型別恢復。顯然,a1引數是指向乙個結構體的指標。讓我們增加一些資料型別看看發生什麼。我們開啟 struct...