龐新法 PANG Xin-fa
(陜西省委黨??萍冀萄胁浚靼?710061)
(Science and Technology Department,Shaanxi Province Party School of the CPC,Xi'an 710061,China)
匯編語言是計(jì)算機(jī)提供給用戶的最快而又最有效的語言,時(shí)空效率最高,同時(shí)能夠利用計(jì)算機(jī)所有硬件特性并能直接控制硬件。匯編語言編程特點(diǎn)是:①時(shí)空效率高。②用匯編語言能設(shè)計(jì)出高級(jí)語言無法實(shí)現(xiàn)的程序。③匯編語言難學(xué)、難理解、難調(diào)試難維護(hù)等。④可移植性差。
電子數(shù)字計(jì)算機(jī)通過電路實(shí)現(xiàn)數(shù)學(xué)運(yùn)算。打開機(jī)箱,主板上密密麻麻全是線,加電后,該線上要么有電(+5V稱為1),要么沒電(0V稱為0),因此計(jì)算機(jī)只認(rèn)識(shí)0、1兩個(gè)字,計(jì)算機(jī)唯一特點(diǎn)就是速度快、記憶力強(qiáng)。計(jì)算機(jī)所能認(rèn)識(shí)的數(shù)據(jù)是0、1組合構(gòu)成的數(shù)據(jù),稱為二進(jìn)制數(shù)據(jù),計(jì)算機(jī)所能認(rèn)識(shí)的語音是0、1組合構(gòu)成的語音,稱為機(jī)器語言。數(shù)值、文字、聲音、圖像、圖形、視頻、動(dòng)畫等在計(jì)算機(jī)中全用0、1代碼表示。
自然的人喜歡用十進(jìn)制,機(jī)器只認(rèn)識(shí)二進(jìn)制。必須10譯2,2譯10。這樣人機(jī)才可相互交流。①權(quán)值:如期末總評(píng)成績,考試與平時(shí)權(quán)值為7:3,二者重要性不同,考試90分,加權(quán)后為63,平時(shí)80分,加權(quán)后為24,總評(píng)成績87。②以算盤為例,如表1所示。雖然都是5,處的位置不同,權(quán)值不同,一個(gè)代表5000,一個(gè)代表50,合計(jì)是5050。③以二進(jìn)制為例,如表2所示。所以(11010)2=16+8+2=(26)10。④用上述方法,還得有表頭。10進(jìn)制末尾添0乘10、2進(jìn)制末尾添0乘2、16進(jìn)制末尾添0乘16等等。325翻譯成二進(jìn)制,如下所示:
(325)10→1=1→10=2→100=4→1000=8… →100000000=256,325-256=69,還差 69,100000000 的第 6位添 1 為 64=26→101000000,69-64=5,還差 5,101000000的第 2位添 1為 4=22→101000100,5-4=1,還差1,101000100的第 0位添 1 為 1=20→(101 000101)2。
表1
表2
16進(jìn)制,0~9,A~F,16個(gè)狀態(tài),逢16進(jìn)一,24=16個(gè)組合。用4位的二進(jìn)制表示1位的16進(jìn)制。0~9用0000~1001表示,A~F用 1010~1111表示,16譯 2,1位變 4位,2譯16,4位變1位,16進(jìn)制是2進(jìn)制的縮寫,自然的人喜歡10進(jìn)制,機(jī)器只認(rèn)2進(jìn)制,軟件開發(fā)人員,喜歡16進(jìn)制,看見了16進(jìn)制等于看見了2進(jìn)制。如(86)16=(1000 0110)2。
鍵盤上大約有116個(gè)鍵,為了區(qū)分每一個(gè)鍵,必須起名,按鍵上標(biāo)有“A”,說明該鍵的外部名字是A,A是一個(gè)圖形符號(hào),計(jì)算機(jī)不認(rèn)識(shí),在機(jī)內(nèi)必須為該鍵用2進(jìn)制起名(內(nèi)部編碼),你的名字是“張偉”,戶籍部門內(nèi)部名字用身份證號(hào)。116鍵,116個(gè)名字,27=128,所以一個(gè)按鍵的內(nèi)部名字用7位2進(jìn)制代碼表示,美國電子學(xué)會(huì)為A起名(100 0001)2=(41)16=(65)10,該編碼稱為 ASCII碼。只需記住 A=65,a=97,0=48 即可。
表示就是存貯。數(shù)學(xué)上的數(shù)據(jù)如+125,-120,由兩部分構(gòu)成,符號(hào)位(2 個(gè)狀態(tài)“+”,“-”,21=2,只需 1 個(gè) 2 進(jìn)制位,“+”用 0,“-”用 1),數(shù)值位。
數(shù)值位,正數(shù)值與表示一致,負(fù)數(shù)值與表示是二個(gè)概念,用補(bǔ)碼表示。如瓶子容量是10斤,里面裝了3斤水,就說差7斤,值是3,表示是“差7”,在補(bǔ)7斤就10斤。現(xiàn)在是 3:50分,就說“差 10分 4點(diǎn)”,值是 3:50分,表示是“差10分4點(diǎn)”。引入補(bǔ)碼的目的是為了減法變加法,這樣,加、減、乘、除統(tǒng)一是加法。舉例如下:
由此可看出-3用101-3=7表示,-24用102-24=76表示。若為 n 位[x]補(bǔ)碼=10n-[x]真值=2n-[x]真值=2n-1-[x]真值+1=全1-[x]真值+1=[x]反+1,負(fù)數(shù)真值變反+1 是表示。由上述公式可推出[x]真值=2n-[x]補(bǔ)碼,表示變反+1 是真值。
計(jì)算機(jī)內(nèi)部共有三類單元(房子),一類是CPU芯片中有14個(gè)單元(寄存器),較少,為區(qū)分每個(gè)單元,給單元起名。內(nèi)存條中有眾多單元,只能編號(hào)(單元號(hào)),外設(shè)接口板中有較多單元,為其編號(hào)(外設(shè)單元號(hào)、外設(shè)地址、I/O地址、I/O端口)。寄存器,暫存數(shù)據(jù),相當(dāng)于火車站行李寄存處,房間小,離站近,上下火車方便。寄存器少,但在CPU中,存取方便。內(nèi)存條中單元很多,CPU存取時(shí)必須經(jīng)過數(shù)據(jù)總線(高速公路),訪問遙遠(yuǎn)的內(nèi)存,很不方便,編程時(shí)要盡量使用寄存器,以提高程序速度。剛開始,只要記住寄存器名字即可,帶X的寄存器可拆分成高低兩個(gè)8位,其余均為16位,不可拆分。DS、ES、SS、CS稱為段地址寄存器,專門用于存放段地址。就像有些瓶子專用于裝酒,有些瓶子專用于裝醋,不可亂用。只有 BX、BP、SI、DI、SP 可以放地址。標(biāo)志寄存器FLAG:指令A(yù)DD AX,BX加的結(jié)果記錄在AX中,但計(jì)算過程沒有記錄在案,導(dǎo)致程序上下文無關(guān)。相當(dāng)于看病時(shí),有個(gè)病厲,記錄看病過程,每次找不同的醫(yī)生,均對(duì)病情清楚。
內(nèi)存分段,如100H:200H表示第100段的第200個(gè)單元。訪問內(nèi)存的物理地址=100H*24 (16,10H)+200H=1200H。
①100:數(shù)據(jù)100。除此以外,指令中給出的全是地址,知道了地址,就等于知道了數(shù)據(jù)。②[100]:100號(hào)單元,100不是數(shù)據(jù),是地址,100號(hào)單元的內(nèi)容是數(shù)據(jù)。③BX:BX單元。④[BX]:BX所指向的單元,并非BX單元。⑤10[BX]或書寫成 [10+BX]:BX所指向的單元,下10個(gè)單元。⑥[SI][BX]或書寫成[SI+BX]:BX所指向的單元,下SI個(gè)單元。⑦10[SI][BX]或書寫成10[SI+BX]或書寫成[10+SI+BX]:BX所指向的單元,下SI個(gè)單元,再下10個(gè)單元。
指令格式:[名字][:]操作碼目的操作數(shù),源操作數(shù);注解。表示做何種操作的代碼稱為操作碼,參加操作的數(shù)稱為操作數(shù),操作數(shù)無非是常量,名字,表達(dá)式。存放結(jié)果的稱為目的操作數(shù),僅參加運(yùn)算的數(shù)稱為源操作數(shù)。運(yùn)算后,目變?cè)床蛔?。?shù)學(xué)上,2+3,做何操作,+操作,對(duì)誰做,2和3。常用操作碼功能必須記。
字符的組合是單詞,共3類單詞,常量、名字、運(yùn)算符。講清詞法規(guī)則。有些名字系統(tǒng)已用(稱為關(guān)鍵字),用戶不能再用,天下名字多的是。單詞的組合是表達(dá)式(語法成分),表達(dá)式的組合是語句。講清語法規(guī)則、語義規(guī)則。
課程特點(diǎn)在很大程度上影響學(xué)生的學(xué)習(xí)興趣與學(xué)習(xí)效果,如何把匯編語言的基礎(chǔ)知識(shí)以直觀形象、寓教于樂、靈活多樣的形式展示給學(xué)生,促使學(xué)生短時(shí)間內(nèi)準(zhǔn)確理解。本文就授課方法予以淺析。
[1]譚浩強(qiáng).C語言程序設(shè)計(jì)[M].清華大學(xué)出版社,2004.
[2]丁愛萍.C語言程序設(shè)計(jì)實(shí)例教程[M].西安電子科技大學(xué)出版社,2006.
[3]林小茶.C語言程序設(shè)計(jì)[M].中國鐵道出版社,2005.