問題1:什麼是機器語言?
計算機能識別的語言,即010101...。想與計算機打交道要了解他的方式。舉例如下表:
加0100 0000
減0100 1000
乘1111 0111 1110 0000
除1111 0111 1111 0000
機器語言對於人來說太陌生,不方便理解記憶和操作(要記大量的0和1)。 在機器語言的基礎上進行一定的抽象,便於人們理解
問題2:什麼是組合語言?
在機器語言的基礎上進行抽象,用指令表示我們要做的事情。編譯器再將我們的指令轉換成機器語言。
加:inc eax
---->經過編譯器
0100 0000
減:dec eax
0100 1000
乘:mul eax
1111 0111 1110 0000
除:div eax
1111 0111 1111 0000
3、c語言
組合語言雖然進行了一定抽象,但是仍然不符合我們人類的思維習慣,理解困難。於是發展出了高階語言
加:a+b
--->經過c語言的編譯器
0100 0000
減:a-b
0100 1000
乘:a*b
1111 0111 1110 0000
除:a/b
1111 0111 1111 0000
高階語言的發展和強大,本質上是編譯器的發展和強大。編譯器替我們做了更多的事情。編譯器越是強大,人寫**就越簡單,越是符合人的思維習慣。
4、c語言和c++語言的關係
c和c++其實本質上沒有什麼區別,知識編譯器做的事情越來越多越來越強大了。
c語言是學好c++的基礎!
站在c編譯器的角度上去理解語言。
5、為什麼學習彙編?
程式設計師鄙視鏈。
理解彙編的人掌握的才是真正的本質。乙個不懂彙編的c程式設計師絕對稱不上是高手,充其量就是熟練而已。隨便幾個問題就搞不定
比如說,返回值,返回值存哪兒?返回值大於4個位元組的值存哪兒?返回值大於4個位元組不用指標存哪兒?
但是懂彙編的人知道。
乙個不懂彙編的c c++程式設計師,是不會懂暴破的。如果想從事外掛程式反外掛程式,病毒反病毒或安全相關的工作,彙編是基礎,也是必須要掌握的。
正向開發工程師,懂彙編的話可以比同事做的更好。別人搞不定的問題你能搞定,別人除錯不了的程式你能除錯。
6、學習環境
vc6,為什麼vc6,因為越是新版的編輯器替我們做的事情越多,不利於我們學習細節。
還一點,凡是搞底層的人,開發環境都是vc6。
彙編(1)初識彙編
7.記憶體位址空間 8.主機板 9.介面卡 10.各類儲存器晶元 組合語言是直接在硬體之上工作的程式語言,首先要了解硬體系統的結構,才能有效的應用組合語言對其程式設計 計算機能讀懂的只有機器指令,什麼是機器指令?例1 指令 01010000 push ax 例2 s 768 12288 1280 機...
彙編系列8 彙編環境搭建
學習的彙編用在什麼地方?初期彙編要學到什麼程度?在什麼環境下學習彙編,學習的是那種彙編?1 學習彙編 不是為了寫 為了理解程式是怎麼執行的。切到彙編介面看原理本質,所有複雜的概念在彙編面前都是浮雲。學彙編痛苦幾天,受益無窮,節省很多其他的痛苦時間。彙編是高手的必經之路。如果從事的是正常的應用開發,不...
彙編 習題1
糾錯 sp 2040h ax 12d4h bx 36f4h 讓al置0的方法 mov al,0 xor al,al 最快,不用操作記憶體 and al,00h sub al,al 兩種方法實現將 al 乘以10值送ax的功能 mov ax,0028h mov cl,10 mul cl cbwshl ...