路士兵
摘 要:該文首先探討了匯編語言的概念,詳細(xì)闡述了匯編語言所包含的內(nèi)容和發(fā)展過程。接著筆者又深入分析了匯編語言的特點(diǎn)問題。最后,結(jié)合自身多年工作研究經(jīng)驗(yàn),筆者對匯編語言的學(xué)習(xí)方法進(jìn)行了觀點(diǎn)性和理論性的論述分析。
關(guān)鍵詞:匯編語言 特點(diǎn) 學(xué)習(xí)方法
中圖分類號:TP312 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2014)07(b)-0216-01
1 匯編語言概念性分析
首先,關(guān)于匯編語言,通過機(jī)器語言進(jìn)行程序的編寫具有非常高的要求,同時,也有很多不便的地方,但是,編寫出來的程序具有很好的執(zhí)行效率,CPU要按程序員的要求進(jìn)行操作,不會存在多余的額外操作。因此,在保證高效率的執(zhí)行程序的情況下,就開始對能改善程序的編程方法進(jìn)行了研究。為了使機(jī)器的指令的可讀性得到改善,可以選擇一部分能把機(jī)器指令功能的詞匯進(jìn)行反映,對于機(jī)器指令是不是二進(jìn)制的編碼沒有太多的關(guān)注。同時,也把CPU內(nèi)部的每一種資源進(jìn)行符號化,運(yùn)用這樣的符號名也就是對具體物理資源的引用。這樣的話,一些不易理解的二進(jìn)制機(jī)器指令就會變得簡單易懂,通過符號指令表現(xiàn)出來,所以,初步形成了匯編語言。如今,我們把這些具有含義的符號作為助憶符號,并進(jìn)行組合形成匯編格式指令。匯編指令集、偽指令集以及使用它們的規(guī)則都叫匯編語言。在進(jìn)行設(shè)計(jì)程序的時候需要的一種輔助性的說明指令就是偽指令。只要是通過匯編語言進(jìn)行編寫的程序都叫匯編語言程序,或者是匯編語言源程序,在一定的環(huán)境之下,也可以叫做源程序。匯編語言程序與機(jī)器指令編寫的程序相比起來要容易一些,無論是理解起來還是維護(hù)起來,都簡便了很多。
其次,關(guān)于匯編程序,用匯編語言編寫的程序大大提高了程序的可讀性,但失去了CPU能直接識別的特性。例如用匯編語言書寫的指令:MOV AX, BX,CPU不會知道這幾個字符所表達(dá)出來的功能,但程序員一看就知道:要求CPU把寄存器BX的值傳送給寄存器AX。把機(jī)器指令符號化增加了程序的可讀性,但引起了如何讓CPU知道程序員的用意,并按照其要求完成相應(yīng)操作的問題。解決該問題就需要一個翻譯程序,它能把匯編語言編寫的源程序翻譯成CPU能識別的機(jī)器指令序列。這里,我們稱該翻譯程序?yàn)閰R編程序。
2 匯編語言特點(diǎn)分析
匯編語言在不斷的發(fā)展,也出現(xiàn)了很多更為高級的語言,有很多人對C++以及C#等匯編語言并不是非常了解,所以,也讓他們覺得匯編語言不再具有存在的意義,然而,匯編語言卻發(fā)揮著非常重要的作用。匯編語言面向處理器的程序設(shè)計(jì)語言是直接的,具有的特點(diǎn)以下:首先,機(jī)器的相關(guān)性,這是一種低級的語言,并且是面向機(jī)器的,一般是為系列的計(jì)算機(jī)或特定的計(jì)算機(jī)而進(jìn)行的專門的設(shè)計(jì)。由于機(jī)器指令是通過符號來表示的,所以,機(jī)器不一樣,就會出現(xiàn)不一樣的匯編語言。面向機(jī)器使用匯編語言就能非常好的把機(jī)器的特性發(fā)揮聘為,使得程序的質(zhì)量得到提高。其次,高速度和高效率。匯編語言保持了機(jī)器語言的優(yōu)點(diǎn),具有直接和簡捷的特點(diǎn),可有效地訪問、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤、存儲器、CPU、I/O端口等,且占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語言。最后,編寫和調(diào)試的復(fù)雜性。因?yàn)閷τ布M(jìn)行的是直接的控制,并且非復(fù)雜性的任務(wù)也離不開匯編語言,所以,在設(shè)計(jì)程序的時候要做到全面,把所有的可能存在的問題都要考慮進(jìn)去,對每一種軟件以及硬件的資源進(jìn)行合理的調(diào)配與使用。就會使程序員的負(fù)擔(dān)得到減輕,同樣,在進(jìn)行調(diào)試程序的時候,如果程序出現(xiàn)問題,是不易發(fā)現(xiàn)的。
3 新時期計(jì)算機(jī)匯編語言學(xué)習(xí)方法分析
首先,在學(xué)習(xí)匯編語言的時候若能把之前學(xué)過的其它的高級語言的知識聯(lián)系起來,就會達(dá)到非常好的效果。例如C語言程序的運(yùn)行邏輯結(jié)構(gòu)有順序(按語句依次執(zhí)行)、分支結(jié)構(gòu)(IF...THEN...ELSE...),循環(huán)結(jié)構(gòu)(FOR...NEXT)三種結(jié)構(gòu),也通過C語言了解并掌握了什么是子程序,什么是調(diào)用。事實(shí)上,匯編語言中有關(guān)程序結(jié)構(gòu),子程序等等的知識都是跟C語言十分相似的,只是在編程時用到的語言不同:匯編語言完全面向機(jī)器,需要指明數(shù)據(jù)在寄存器、內(nèi)存中的流向。 其次,在進(jìn)行匯編語言的學(xué)習(xí)時,第一要學(xué)習(xí)的就是指令系統(tǒng),如果能掌握并靈活運(yùn)用指令系統(tǒng)中的每個助記符以及格式,那么,就能完成多數(shù)工作了。指令系統(tǒng)對于CPU來講起著決定性的作用,也是在進(jìn)行匯編語言的程序設(shè)計(jì)時最為基本的因素。若對匯編指令的功能還有其它的相關(guān)規(guī)定不熟悉的話,是不會對匯編語言進(jìn)行熟練操作的。指令具有非常繁雜的種類,但是,格式都是統(tǒng)一的,一般方括號里的內(nèi)容都是可以選擇的項(xiàng),指令的功能是由指令助記符決定的,并與一條二進(jìn)制編碼的機(jī)器指令相對應(yīng)。一般情況下,指令決定了指令的個數(shù),操作數(shù)是不定的,可以是一個或者多個,也可以沒有,在這些指令中,有的是顯示出來的,有些是隱含的。如果指令包含操作數(shù)時,就要遵守書寫的格式,一是在指令助記符與操作數(shù)間要有分隔符,例如加上空格,二是如果操作數(shù)多的話,操作數(shù)間要用逗號進(jìn)行分隔。在進(jìn)行匯編程度編寫的時候,對于易出錯的地方要多加關(guān)注,把匯編程序的每一種環(huán)節(jié)都要掌握好。
一套完整的匯編的程序離不開程序結(jié)構(gòu)以及子程序,除此之外,對于DOS系統(tǒng)功能的調(diào)用以及宏匯編也要掌握。子程序與宏匯編是不一樣的,個人是這樣理解的,子程序是調(diào)用,宏是替換,學(xué)習(xí)匯編語言的時候,學(xué)習(xí)與掌握指令的功能是非常重要的,并且要對這些指令進(jìn)行有效合理的使用,對使用的規(guī)則一定要了解。匯編語言進(jìn)行編程的時候有以下三點(diǎn)規(guī)劃:一是對指令操作數(shù)要求尋址的方式,二是指令對標(biāo)志位產(chǎn)生的影響以及標(biāo)志位對指令產(chǎn)生的影響,三是指令執(zhí)行的時間,對于可以完成相同功能的指令,在執(zhí)行時間方面要選用時間較短的指令。另外,要想把匯編語言學(xué)習(xí),還有一個環(huán)節(jié)是不可缺少的,就是實(shí)驗(yàn)。一般情況下,書上的程序都能看懂,但是,在親手編寫的時候,就不知道該從哪里下手了。通過實(shí)驗(yàn)就能加深印象。
4 結(jié)語
通過以上的論述可以總結(jié),在計(jì)算機(jī)中只要是有關(guān)硬件輸入與輸出或者在控制方面的程序,還有在單機(jī)控制、儀表、儀器以及家用電器中有關(guān)控制的程序,很多都是用匯編語言進(jìn)行編寫的。通過匯編語言,讓我們對計(jì)算機(jī)的工作過程有了更進(jìn)一步的了解,除此之外,在微型計(jì)算機(jī)以及接口的相關(guān)技術(shù),還有操作系統(tǒng)與控制技術(shù),單機(jī)的儀表、儀器以及控制方面都是使用控制方面的程序,很多都是通過匯編語言進(jìn)行編寫的。所以,在很多領(lǐng)域都離不開匯編語言,并且也發(fā)揮著非常重要的作用,對匯編語言的用處進(jìn)行準(zhǔn)確的理解并認(rèn)真的學(xué)習(xí),對于我們更好的工作與生活能起到很大的幫助作用。對于編程人員的技術(shù)的提升以及對新語言的接受也會起到很大的促進(jìn)作用。
參考文獻(xiàn)
[1] 陳小藝.計(jì)算機(jī)匯編語言發(fā)展分析[J].匯編語言,2013(2).
[2] 孫子健.淺談計(jì)算機(jī)匯編語言學(xué)習(xí)方法[J].匯編語言,2013(11).
[3] 周益民.計(jì)算機(jī)匯編語言學(xué)習(xí)心得[J].河北大學(xué)學(xué)報(bào),2013(2).
[4] 陳依依.計(jì)算機(jī)匯編語言特點(diǎn)分析[J].山東大學(xué)學(xué)報(bào),2013(5).endprint