【計算機(jī)基礎(chǔ)Ep13】王爽《匯編語言(第三版)》知識點梳理(一)
第一章 基礎(chǔ)知識
引導(dǎo):
地位:匯編語言是直接在硬件之上工作的編程語言;
課程范圍:不對硬件系統(tǒng)進(jìn)行全面和深入的研究——
《微機(jī)原理與接口》:PC機(jī)及CPU的物理結(jié)構(gòu)和編程結(jié)構(gòu)的研究(即我們使用的黑皮書大概內(nèi)容);
《組成原理》:計算機(jī)一般的結(jié)構(gòu)、功能、性能的研究(即唐朔飛教材的大概內(nèi)容)。
1.1機(jī)器語言
機(jī)器語言:
定義:機(jī)器指令的集合;
性質(zhì):一列二進(jìn)制數(shù)字。
計算機(jī):
定義:
早期:可以執(zhí)行機(jī)器指令,進(jìn)行運算的機(jī)器;
現(xiàn)在:(有一個芯片完成上面所說的計算機(jī)的功能,這個芯片就是CPU)計算機(jī)指的是由CPU和其他受CPU直接或間接控制的芯片、器件、設(shè)備組成的計算機(jī)系統(tǒng),比如我們常見的PC機(jī)器;
CPU(Central Processing Unit,中央處理單元):一種微處理器;
微處理器:由于硬件設(shè)計和內(nèi)部結(jié)構(gòu)的不同,就需要不同的電平脈沖來控制,使它工作;所以每一種微處理器都有自己的機(jī)器指令集,也就是機(jī)器語言。
機(jī)器語言:
作用:早期的程序設(shè)計均使用機(jī)器語言;
歷史:程序員將用0、1數(shù)字編成的程序代碼打在紙帶或卡片上,1打孔,0不打孔,再將程序通過紙帶機(jī)或卡片機(jī)輸入計算機(jī),進(jìn)行運算;
展示:應(yīng)用8086CPU完成運算s=768+12288-1280的機(jī)器碼
101110000000000000000011
000001010000000000110000
001011010000000000000101;
結(jié)論:晦澀難懂,不易差錯。
1.2匯編語言的產(chǎn)生
匯編語言:
主體:匯編指令;
與機(jī)器語言的差別:指令的表示方法,匯編指令是機(jī)器指令便于記憶的書寫格式;
例子:機(jī)器指令1000100111011000表示把寄存器BX的內(nèi)容送到AX中,匯編指令則寫成mov ax,bx,與人類語言接近,便于閱讀和記憶;
寄存器:CPU中可以存儲數(shù)據(jù)的器件,一個CPU有多個寄存器;
問題:計算機(jī)能讀懂的只有機(jī)器指令,那么如何讓計算機(jī)執(zhí)行程序員用匯編指令編寫的程序呢?——編譯器;
編譯器:能夠?qū)R編指令轉(zhuǎn)換成機(jī)器指令的翻譯程序;
工作過程:程序員用匯編語言寫出源程序,再用匯編編譯器將其編譯為機(jī)器碼,由計算機(jī)最終執(zhí)行。
1.3匯編語言的組成
3類指令:
匯編指令:機(jī)器碼的助記符,有對應(yīng)的機(jī)器碼——匯編語言的核心:決定了匯編語言的特性;
偽指令:沒有對應(yīng)的機(jī)器碼,由編譯器執(zhí)行,計算機(jī)并不執(zhí)行;
其他符號:如+、-、*、/等,由編譯器識別,沒有對應(yīng)的機(jī)器碼。
1.4存儲器
存儲器:
功能:指令和數(shù)據(jù)在存儲器存放,也就是我們平時所說的內(nèi)存;
重要性:在一臺PC機(jī)中內(nèi)存的作用僅次于CPU——磁盤不同于內(nèi)存,磁盤上的數(shù)據(jù)或程序如果不讀到內(nèi)存中,就無法被CPU使用。
1.5指令和數(shù)據(jù)
指令和數(shù)據(jù):
區(qū)別:應(yīng)用上的概念,CPU在工作的時候把有的信息看作指令,有的信息看作數(shù)據(jù),為同樣的信息賦予了不同的意義;
聯(lián)系:在內(nèi)存和磁盤上,指令和數(shù)據(jù)沒有任何區(qū)別;
例子:二進(jìn)制信息1000100111011000,看作數(shù)據(jù)是89D8H,看作指令是mov ax,bx。
1.6存儲單元
存儲單元:
編號:存儲器被劃分為若干個存儲單元,每個存儲單元從0開始順序編號,例如一個存儲器有128個存儲單元,編號從0~127;
存儲量:微型存儲器的存儲單元可以存儲一個Byte,即8bit(一個bit是一個二進(jìn)制位,音譯為比特),一個存儲器有128個存儲單元,它可以存儲128個Byte;
計量:微機(jī)存儲器是以字節(jié)為最小單位來計算的;
容量:對于擁有128個存儲單元的存儲器,我們可以說,它的容量是128個字節(jié);
大容量存儲器單位:1KB=1024B,1MB=1024KB,1GB=1024MB,1TB=1024GB;
磁盤的容量單位同內(nèi)存。
1.7CPU對存儲器的讀寫
CPU要想進(jìn)行數(shù)據(jù)的讀寫,必須和外部器件(標(biāo)準(zhǔn)的說法是芯片)進(jìn)行下面3類信息的交互——
存儲單元的地址(地址信息);
器件的選擇,讀或?qū)懙拿睿?span id="s0sssss00s" class="color-pink-02">控制信息);
讀或?qū)懙臄?shù)據(jù)(數(shù)據(jù)信息)。
總線:
定義:從物理上來講,就是一根根導(dǎo)線的集合;
作用:連接CPU和其他芯片的導(dǎo)線;
原理:電子計算機(jī)能處理、傳輸?shù)男畔⒍际请娦盘?,電信號?dāng)然用導(dǎo)線傳送;
分類:
地址總線;
控制總線;
數(shù)據(jù)總線。
讀取數(shù)據(jù)的過程——
CPU通過地址線將地址信息發(fā)出;
CPU通過控制線發(fā)出內(nèi)存讀命令,選中存儲器芯片,并通知它,將要從中讀取數(shù)據(jù);
存儲器通過數(shù)據(jù)線將存儲單元中數(shù)據(jù)送入CPU。
寫入數(shù)據(jù)的過程——
CPU通過地址線將地址信息發(fā)出;
CPU通過控制線發(fā)出內(nèi)存寫命令,選中存儲器芯片,并通知它,要向其中寫入數(shù)據(jù);
CPU通過數(shù)據(jù)線將數(shù)據(jù)送入存儲單元中。